[cmor] 01/01: New upstream 3.2.3

Alastair McKinstry mckinstry at moszumanska.debian.org
Thu Apr 20 10:37:14 UTC 2017


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

mckinstry pushed a commit to tag upstream/3.2.3
in repository cmor.

commit 8220f2e7cd324e5c6c0e796e76f8afc4833f3112
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Thu Apr 20 11:36:38 2017 +0100

    New upstream 3.2.3
---
 INSTALL                                            |     4 +-
 Lib/pywrapper.py                                   |     6 +-
 {scripts => LibCV/PrePARE}/PrePARE.py              |    76 +-
 LibCV/PrePARE/__init__.py                          |     1 +
 LibCV/__init__.py                                  |     2 +-
 LibCV/cmor_const.py                                |     1 +
 LibCV/pywrapper.py                                 |    56 +-
 Makefile.in                                        |   201 +-
 README.md                                          |     7 +-
 RELEASE-NOTES                                      |     1 +
 Src/_cmormodule.c                                  |    41 +-
 Src/_controlvocabulary.c                           |    93 +-
 Src/cmor.c                                         |   847 +-
 Src/cmor_CV.c                                      |  1167 ++-
 Src/cmor_axes.c                                    |     8 +-
 Src/cmor_grids.c                                   |   457 +-
 Src/cmor_tables.c                                  |    97 +-
 Src/cmor_variables.c                               |   113 +-
 Test/_cmor_stub.py                                 |     2 +
 Test/all_tests.py                                  |     1 +
 Test/check_results.py                              |    58 +-
 Test/cmor_speed_and_compression.py                 |   197 +-
 Test/cmor_speed_and_compression_01.py              |    86 +-
 Test/cmor_speed_and_compression_02.py              |   259 +-
 Test/cmor_speed_and_compression_03.py              |   163 +-
 Test/common_user_input.json                        |    24 +-
 ...mon_user_input.json => common_user_input2.json} |     4 +-
 ...r_input.json => common_user_inputNOBOUNDS.json} |     4 +-
 ...user_input.json => common_user_input_NOID.json} |     6 +-
 ...on_user_input.json => common_user_input_a.json} |     4 +-
 Test/common_user_input_b.json                      |    73 +
 Test/in_files.py                                   |    56 +-
 Test/jamie_hybrid_height.py                        |    59 +-
 Test/jamie_positive.py                             |    46 +-
 Test/nc2asc.py                                     |    89 +-
 Test/out_files.py                                  |   180 +-
 Test/speed_test_table_A                            |     5 +-
 Test/test_checker_works.py                         |  2723 +++--
 Test/test_chunking.py                              |    64 +
 Test/test_compression.py                           |    61 +-
 Test/test_dimensionless.f90                        |     4 +-
 Test/test_doc.py                                   |    40 +-
 Test/test_grid_stub_jamie.py                       |   143 +-
 Test/test_lon_gt_360.py                            |    54 +-
 Test/test_lon_thro_360.py                          |    64 +-
 Test/test_non_monotonic_climo_bonds_ok.py          |    62 +-
 Test/test_python_1D_var.py                         |    14 +-
 Test/test_python_2Gb_file.py                       |    81 +-
 Test/test_python_2Gb_slice.py                      |    59 +-
 Test/test_python_3hr.py                            |    37 -
 Test/test_python_CMIP6_CV_HISTORY.py               |     6 +-
 Test/test_python_CMIP6_CV_baddirectory.py          |     6 +-
 Test/test_python_CMIP6_CV_badgridgr.py             |    10 +-
 Test/test_python_CMIP6_CV_badgridlabel.py          |    13 +-
 Test/test_python_CMIP6_CV_badgridresolution.py     |    11 +-
 Test/test_python_CMIP6_CV_badgridresolution2.py    |    98 -
 Test/test_python_CMIP6_CV_badinstitution.py        |    14 +-
 Test/test_python_CMIP6_CV_badinstitutionID.json    |     2 +-
 Test/test_python_CMIP6_CV_badinstitutionID.py      |    28 +-
 .../test_python_CMIP6_CV_badinstitutionIDNotSet.py |    22 +-
 Test/test_python_CMIP6_CV_badsource.py             |    20 +-
 Test/test_python_CMIP6_CV_badsourceid.py           |    17 +-
 Test/test_python_CMIP6_CV_badsourcetype.py         |    26 +-
 .../test_python_CMIP6_CV_badsourcetypeCHEMAER.json |     9 +-
 Test/test_python_CMIP6_CV_badsourcetypeCHEMAER.py  |    28 +-
 Test/test_python_CMIP6_CV_badsourcetypeRequired.py |    29 +-
 Test/test_python_CMIP6_CV_badvariant.py            |    17 +-
 Test/test_python_CMIP6_CV_externalvariables.py     |    22 +-
 Test/test_python_CMIP6_CV_forcemultipleparent.py   |   151 +
 ...on.py => test_python_CMIP6_CV_forcenoparent.py} |    26 +-
 ...tion.py => test_python_CMIP6_CV_forceparent.py} |    35 +-
 Test/test_python_CMIP6_CV_furtherinfourl.py        |    74 +-
 Test/test_python_CMIP6_CV_fxtable.py               |    23 +-
 Test/test_python_CMIP6_CV_longrealizationindex.py  |    18 +-
 Test/test_python_CMIP6_CV_nomipera.py              |    19 +-
 ...ion.py => test_python_CMIP6_CV_parentmipera.py} |    32 +-
 ...n.py => test_python_CMIP6_CV_parentsourceid.py} |    31 +-
 ....py => test_python_CMIP6_CV_parenttimeunits.py} |    36 +-
 ... => test_python_CMIP6_CV_parentvariantlabel.py} |    32 +-
 ...=> test_python_CMIP6_CV_sub_experimentIDbad.py} |    33 +-
 ...y => test_python_CMIP6_CV_sub_experiment_id.py} |    33 +-
 ...y => test_python_CMIP6_CV_sub_experimentbad.py} |    34 +-
 ...> test_python_CMIP6_CV_sub_experimentnotset.py} |    36 +-
 Test/test_python_CMIP6_CV_trackingNoprefix.py      |    13 +-
 Test/test_python_CMIP6_CV_trackingprefix.py        |    48 +-
 Test/test_python_CMIP6_driving.py                  |    11 +-
 Test/test_python_CMIP6_experimentID.py             |    11 +-
 Test/test_python_CMIP6_projections.py              |   112 +
 Test/test_python_CMIP6_wrong_activity.py           |    11 +-
 Test/test_python_YYYMMDDHH_exp_fmt.py              |    42 +-
 Test/test_python_alastair_1.py                     |    99 +-
 Test/test_python_appending.py                      |    94 +-
 Test/test_python_bad_date.py                       |   111 +-
 Test/test_python_bentley_01.py                     |    81 +-
 Test/test_python_bounds_request.py                 |    65 +-
 Test/test_python_cfmip_site_axis_test.py           |   135 +-
 Test/test_python_clim_bounds.py                    |    70 +-
 Test/test_python_clim_bounds_02.py                 |    93 +-
 Test/test_python_clim_bounds_03.py                 |    99 +-
 Test/test_python_clim_bounds_04.py                 |    99 +-
 Test/test_python_common.py                         |   228 +-
 Test/test_python_direct_calls.py                   |   213 +-
 Test/test_python_free_wrapping_issue.py            |   131 +-
 Test/test_python_grid_and_ocn_sigma.py             |   225 +-
 Test/test_python_index_coord.py                    |    70 +-
 Test/test_python_jamie.py                          |    40 +-
 Test/test_python_jamie_10.py                       |    52 +-
 Test/test_python_jamie_11.py                       |   156 -
 Test/test_python_jamie_12.py                       |    55 +-
 Test/test_python_jamie_2.py                        |    39 +-
 Test/test_python_jamie_3.py                        |    36 +-
 Test/test_python_jamie_3hr.py                      |    58 +-
 Test/test_python_jamie_4.py                        |    36 +-
 Test/test_python_jamie_6.py                        |   247 +-
 Test/test_python_jamie_7.py                        |   101 +-
 Test/test_python_jamie_8.py                        |   101 +-
 Test/test_python_jamie_9.py                        |    54 +-
 Test/test_python_jamie_site_surface.py             |    53 +-
 Test/test_python_joerg_1.py                        |    92 +-
 Test/test_python_joerg_10.py                       |   121 +-
 Test/test_python_joerg_11.py                       |    89 +-
 Test/test_python_joerg_12.py                       |    91 +-
 Test/test_python_joerg_2.py                        |    66 +-
 Test/test_python_joerg_3.py                        |   215 +-
 Test/test_python_joerg_4.py                        |   106 +-
 Test/test_python_joerg_5.py                        |    22 +-
 Test/test_python_joerg_6.py                        |    19 +-
 Test/test_python_joerg_7.py                        |    65 +-
 Test/test_python_joerg_8.py                        |    89 +-
 Test/test_python_joerg_9.py                        |   138 +-
 Test/test_python_joerg_tim2_clim.py                |    71 +-
 Test/test_python_joerg_tim2_clim_02.py             |    57 +-
 Test/test_python_max_variables.py                  |    94 +-
 Test/test_python_max_variables_2.py                |   113 +-
 Test/test_python_memory_check.py                   |    84 +-
 Test/test_python_new_tables.py                     |    52 +-
 Test/test_python_obs4MIPs.py                       |    34 +-
 Test/test_python_open_close_cmor_multiple.py       |   120 +-
 Test/test_python_polar_stereo.py                   |    94 +-
 Test/test_python_region.py                         |    44 +-
 Test/test_python_reverted_lats.py                  |   107 +-
 .../test_python_singleton_anywhere_in_table_def.py |   137 +-
 Test/test_python_singleton_string.py               |   115 +-
 Test/test_python_stephanie_6hrPlev_minutes.py      |    68 +-
 Test/test_python_toomany_tables.py                 |   123 +
 Test/test_python_user_interface_00.py              |   162 +-
 Test/test_python_user_interface_01.py              |    99 +-
 Test/test_python_user_interface_03.py              |    93 +-
 Test/test_site_ts.py                               |    57 +-
 Test/test_sophie.f90                               |     6 +-
 Test/test_time_gap_multi_write.py                  |    84 +-
 Test/test_time_gap_single_write1.py                |    77 +-
 Test/test_time_gap_single_write2.py                |    76 +-
 TestTables/CMIP5_3hr                               |   814 --
 TestTables/CMIP5_6hrLev                            |   612 --
 TestTables/CMIP5_Amon                              |  2387 -----
 TestTables/CMIP5_Lmon                              |  1665 ---
 TestTables/CMIP5_Omon                              |  4658 ---------
 TestTables/CMIP5_cf3hr                             |  2736 -----
 TestTables/CMIP5_cfMon                             |  2756 -----
 TestTables/CMIP5_cfSites                           |  2365 -----
 TestTables/CMIP5_day                               |  1274 ---
 TestTables/CMIP5_fx                                |   665 --
 TestTables/CMIP5_grids                             |   319 -
 TestTables/CMIP6_3hr.json                          |    38 +-
 TestTables/CMIP6_6hrLev.json                       |    78 +-
 TestTables/CMIP6_6hrPlev.json                      |   214 +-
 .../{CMIP6_6hrPlevpt.json => CMIP6_6hrPlevPt.json} |   266 +-
 .../{CMIP6_aerdaily.json => CMIP6_AERday.json}     |    84 +-
 .../{CMIP6_aerfixed.json => CMIP6_AERfx.json}      |    35 +-
 .../{CMIP6_aerhourly.json => CMIP6_AERhr.json}     |    30 +-
 .../{CMIP6_aermonthly.json => CMIP6_AERmon.json}   |   856 +-
 TestTables/CMIP6_AERmonZ.json                      |   307 +
 TestTables/CMIP6_Amon.json                         |   158 +-
 TestTables/CMIP6_AmonAdj.json                      |    86 -
 TestTables/CMIP6_Amon_json_hfls                    |     6 +-
 TestTables/{CMIP6_cf3hr.json => CMIP6_CF3hr.json}  |   224 +-
 TestTables/{CMIP6_cfDay.json => CMIP6_CFday.json}  |    54 +-
 TestTables/{CMIP6_cfMon.json => CMIP6_CFmon.json}  |    24 +-
 TestTables/{CMIP6_Amon.json => CMIP6_CFsubhr.json} |   986 +-
 .../{CMIP6_cfOff.json => CMIP6_CFsubhrOff.json}    |    12 +-
 TestTables/CMIP6_CORDEX_day.json                   |     1 -
 TestTables/CMIP6_CV.json                           | 10116 +++++++++++--------
 TestTables/CMIP6_CV_minimal.json                   |     8 -
 TestTables/{CMIP6_em1hr.json => CMIP6_E1hr.json}   |    84 +-
 ...P6_em1hrclimmon.json => CMIP6_E1hrClimMon.json} |    10 +-
 TestTables/CMIP6_E3hr.json                         |   341 +
 TestTables/{CMIP6_em3hr.json => CMIP6_E3hrPt.json} |   664 +-
 TestTables/CMIP6_E6hrZ.json                        |    52 +
 TestTables/{CMIP6_emDay.json => CMIP6_Eday.json}   |  1029 +-
 TestTables/{CMIP6_emDayZ.json => CMIP6_EdayZ.json} |    65 +-
 TestTables/CMIP6_Efx.json                          |   256 +
 TestTables/{CMIP6_emMon.json => CMIP6_Emon.json}   |  1401 +--
 TestTables/{CMIP6_emMonZ.json => CMIP6_EmonZ.json} |   488 +-
 .../{CMIP6_emSubhr.json => CMIP6_Esubhr.json}      |    44 +-
 TestTables/{CMIP6_emYr.json => CMIP6_Eyr.json}     |   116 +-
 .../{CMIP6_LIfxgre.json => CMIP6_IfxAnt.json}      |    28 +-
 .../{CMIP6_LIfxant.json => CMIP6_IfxGre.json}      |    28 +-
 .../{CMIP6_LImongre.json => CMIP6_ImonAnt.json}    |   158 +-
 .../{CMIP6_LImonant.json => CMIP6_ImonGre.json}    |   158 +-
 .../{CMIP6_LIyrant.json => CMIP6_IyrAnt.json}      |   132 +-
 .../{CMIP6_LIyrgre.json => CMIP6_IyrGre.json}      |   132 +-
 TestTables/CMIP6_LImon.json                        |    70 +-
 TestTables/CMIP6_Lmon.json                         |    92 +-
 TestTables/CMIP6_Oclim.json                        |    22 +-
 TestTables/CMIP6_Oday.json                         |    39 +-
 TestTables/CMIP6_Odec.json                         |   426 +
 TestTables/CMIP6_Ofx.json                          |   103 +-
 TestTables/CMIP6_Omon.json                         |  3923 ++++---
 TestTables/CMIP6_Omonbad.json                      |     4 +-
 TestTables/CMIP6_Oyr.json                          |   402 +-
 TestTables/CMIP6_SIday.json                        |   109 +-
 TestTables/CMIP6_SImon.json                        |   279 +-
 TestTables/CMIP6_aerannual.json                    |     1 -
 TestTables/CMIP6_badOmon.json                      |  5825 -----------
 TestTables/CMIP6_cf3hr_0.json                      |     6 +-
 TestTables/CMIP6_cf3hr_1.json                      |     6 +-
 TestTables/CMIP6_cf3hr_2.json                      |     6 +-
 TestTables/CMIP6_cfSites.json                      |   647 --
 TestTables/CMIP6_chunking.json                     |    39 +
 TestTables/CMIP6_configure.json                    |     5 -
 TestTables/CMIP6_coordinate.json                   |   308 +-
 ...nate.json => CMIP6_coordinateTESTNOBOUNDS.json} |    12 +-
 TestTables/CMIP6_day.json                          |   243 +-
 TestTables/CMIP6_em3hrpt.json                      |   375 -
 TestTables/CMIP6_emDaypt.json                      |    52 -
 TestTables/CMIP6_emFx.json                         |   171 -
 TestTables/CMIP6_emMonpt.json                      |    35 -
 TestTables/CMIP6_excerpts.json                     |   295 -
 TestTables/CMIP6_expt_list_042716-1.csv            |     1 -
 TestTables/CMIP6_expt_list_062116.csv              |     1 -
 TestTables/CMIP6_fx.json                           |    90 +-
 TestTables/CMIP6_grids.json                        |    10 +-
 TestTables/md5s                                    |     1 -
 {Test => TestTables}/python_test_table_A           |    13 +-
 configure                                          |    18 +-
 configure.ac                                       |     2 +-
 include/cdTime/cfortran.h                          |   136 +-
 include/cmor.h                                     |    47 +-
 include/cmor_func_def.h                            |    26 +-
 include/cmor_locale.h                              |     2 +-
 run_tests.py                                       |     2 +-
 run_tests2.py                                      |    40 +
 scripts/conda_upload.sh                            |    36 +
 scripts/createCMIP6CV.py                           |    36 +-
 setup.py.in                                        |    18 +-
 246 files changed, 23293 insertions(+), 44761 deletions(-)

diff --git a/INSTALL b/INSTALL
index 3aa02c3..8442240 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,6 @@
 INSTALLATION INSTRUCTIONS  
 ------------------------- 
-Climate Model Output Rewriter (CMOR) version 3.2.1 installation instructions.
+Climate Model Output Rewriter (CMOR) version 3.2.3 installation instructions.
 
  
 DOWNLOAD 
@@ -13,7 +13,7 @@ cd CMOR
 
 INSTALLATION
 ------------ 
-CMOR 3.2.1 requires external packages that need to be installed first. 
+CMOR 3.2.3 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! 
diff --git a/Lib/pywrapper.py b/Lib/pywrapper.py
index fff7545..b01da29 100644
--- a/Lib/pywrapper.py
+++ b/Lib/pywrapper.py
@@ -197,11 +197,11 @@ def set_grid_mapping(grid_id,mapping_name,parameter_names,parameter_values=None,
         raise Exception, "mapping name must be a string"
 
     if isinstance(parameter_names,dict):
-        pnams = []
+        pnms = []
         pvals = []
         punit = []
         for k in parameter_names.keys():
-            pnams.append(k)
+            pnms.append(k)
             val = parameter_names[k]
             if isinstance(val,dict):
                 ks = val.keys()
@@ -219,7 +219,7 @@ def set_grid_mapping(grid_id,mapping_name,parameter_names,parameter_values=None,
                         pvals.append(float(v))
                     except:
                         pass
-                if len(pvals)!=len(punits) or len(pvals)!=len(pnams):
+                if len(pvals)!=len(punit) or len(pvals)!=len(pnms):
                     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
diff --git a/scripts/PrePARE.py b/LibCV/PrePARE/PrePARE.py
similarity index 76%
rename from scripts/PrePARE.py
rename to LibCV/PrePARE/PrePARE.py
index 944f597..393f881 100644
--- a/scripts/PrePARE.py
+++ b/LibCV/PrePARE/PrePARE.py
@@ -1,3 +1,4 @@
+#!/user/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Please first complete the following steps:
@@ -15,7 +16,6 @@ Created on Fri Feb 19 11:33:52 2016
 
 @author: Denis Nadeau LLNL
 '''
-
 import cmip6_cv
 import cdms2
 import argparse
@@ -129,9 +129,9 @@ class checkCMIP6(object):
             # -------------------------------------------------------------------
             # find variable that contains a "history" (should only be one)
             # -------------------------------------------------------------------
-            self.var = [var for var in self.variables if 'history' in self.infile.listattribute(var)]
+            self.var = [self.infile.variable_id]
 
-        if((self.var == []) or (len(self.var) > 1)):
+        if((self.var == []) or (len(self.var) > 1)): 
             print bcolors.FAIL
             print "!!!!!!!!!!!!!!!!!!!!!!!!!"
             print "! Error:  The input file does not have an history attribute and the CMIP6 variable could not be found"
@@ -170,13 +170,19 @@ class checkCMIP6(object):
         cmip6_cv.set_cur_dataset_attribute(cmip6_cv.CMOR_AXIS_ENTRY_FILE, "CMIP6_coordinate.json") 
         cmip6_cv.set_cur_dataset_attribute(cmip6_cv.CMOR_FORMULA_VAR_FILE, "CMIP6_formula_terms.json")
 
-
         # -------------------------------------------------------------------
         # Create alist of all Global Attributes and set "dataset"
         # -------------------------------------------------------------------
         self.dictGbl = {key: self.infile.getglobal(key) for key in self.attributes}
         ierr = [cmip6_cv.set_cur_dataset_attribute(key, value) for key, value in self.dictGbl.iteritems()]
+        if(self.dictGbl["sub_experiment_id"] not in ["none"]):
+            member_id = self.dictGbl["sub_experiment_id"] + '-' +self.dictGbl["variant_label"]
+        else:
+            member_id = self.dictGbl["variant_label"]
+        cmip6_cv.set_cur_dataset_attribute(cmip6_cv.GLOBAL_ATT_MEMBER_ID, member_id)
 
+        self.setDoubleValue('branch_time_in_parent')
+        self.setDoubleValue('branch_time_in_child')
         # -------------------------------------------------------------------
         # Create a dictionnary of attributes for var
         # -------------------------------------------------------------------
@@ -184,11 +190,23 @@ class checkCMIP6(object):
                                     [(key, value) for key in self.keys
                                         if self.infile.getattribute(self.var[0], key) is not None
                                         for value in [self.infile.getattribute(self.var[0], key)]])
+        try:
+           self.calendar = self.infile.getAxis('time').calendar
+           self.timeunits = self.infile.getAxis('time').units
+        except:
+           self.calendar = "gregorian"
+           self.timeunits = "days since ?"
         # -------------------------------------------------------------------
         # Load CMIP6 table into memory
         # -------------------------------------------------------------------
         self.table_id = cmip6_cv.load_table(self.cmip6_table)
 
+    def setDoubleValue(self, attribute):
+        if( cmip6_cv.has_cur_dataset_attribute(attribute) ):
+            if(isinstance(self.dictGbl[attribute],numpy.ndarray) and type(self.dictGbl[attribute][0]) == numpy.float64):
+                self.dictGbl[attribute] = self.dictGbl[attribute][0]
+                cmip6_cv.set_cur_dataset_attribute(attribute,self.dictGbl[attribute])
+
     def ControlVocab(self):
         '''
             Check CMIP6 global attributes against Control Vocabulary file.
@@ -209,7 +227,55 @@ class checkCMIP6(object):
         cmip6_cv.check_grids(self.table_id)
         cmip6_cv.check_ISOTime()
         cmip6_cv.check_furtherinfourl(self.table_id)
-        varid = cmip6_cv.setup_variable(self.var[0], 'm', 1e20)
+        cmip6_cv.check_parentExpID(self.table_id)
+        cmip6_cv.check_subExpID(self.table_id)
+        try:
+            startimebnds = self.infile['time_bnds'][0][0]
+            endtimebnds  = self.infile['time_bnds'][-1][1]
+        except:
+            startimebnds = 0
+            endtimebnds  = 0
+        try:
+            startime = self.infile['time'][0]
+            endtime  = self.infile['time'][-1]
+        except:
+            startime = 0
+            endtime  = 0
+        varunits = self.infile[self.var[0]].units
+        varmissing = self.infile[self.var[0]]._FillValue[0]
+        varid = cmip6_cv.setup_variable(self.var[0], varunits, varmissing, startime, endtime, 
+                startimebnds, endtimebnds)
+        fn = os.path.basename(self.infile.id)
+        cmip6_cv.check_filename(self.table_id, varid, self.calendar, self.timeunits, fn)
+
+        if not isinstance(self.dictGbl['realization_index'], numpy.ndarray):
+            print bcolors.FAIL
+            print "====================================================================================="
+            print "realization_index is not an integer: ", type(self.dictGbl['realization_index'])
+            print "====================================================================================="
+            print bcolors.ENDC
+            cmip6_cv.set_CV_Error()
+        if not isinstance(self.dictGbl['initialization_index'], numpy.ndarray):
+            print bcolors.FAIL
+            print "====================================================================================="
+            print "initialization_index is not an integer: ", type(self.dictGbl['initialization_index'])
+            print "====================================================================================="
+            print bcolors.ENDC
+            cmip6_cv.set_CV_Error()
+        if not isinstance(self.dictGbl['physics_index'], numpy.ndarray):
+            print bcolors.FAIL
+            print "====================================================================================="
+            print "physics_index is not an integer: ", type(self.dictGbl['physics_index'])
+            print "====================================================================================="
+            print bcolors.ENDC
+            cmip6_cv.set_CV_Error()
+        if not isinstance(self.dictGbl['forcing_index'], numpy.ndarray):
+            print bcolors.FAIL
+            print "====================================================================================="
+            print "forcing_index is not an integer: ", type(self.dictGbl['forcing_index'])
+            print "====================================================================================="
+            print bcolors.ENDC
+            cmip6_cv.set_CV_Error()
 
         prepLIST =  cmip6_cv.list_variable_attributes(varid)
         for key in prepLIST:
diff --git a/LibCV/PrePARE/__init__.py b/LibCV/PrePARE/__init__.py
new file mode 100644
index 0000000..5855e2a
--- /dev/null
+++ b/LibCV/PrePARE/__init__.py
@@ -0,0 +1 @@
+from PrePARE import main
diff --git a/LibCV/__init__.py b/LibCV/__init__.py
index 4254844..fe85109 100644
--- a/LibCV/__init__.py
+++ b/LibCV/__init__.py
@@ -1,4 +1,4 @@
 from cmor_const import *
 
-from pywrapper import setup, load_table, set_table, close, set_cur_dataset_attribute, get_cur_dataset_attribute, has_cur_dataset_attribute, set_variable_attribute, list_variable_attributes, get_variable_attribute, has_variable_attribute, check_institution, check_sourceID, check_experiment, check_grids, check_requiredattributes, check_ISOTime, check_furtherinfourl, get_CV_Error, setup_variable, set_CV_Error
+from pywrapper import setup, load_table, set_table, close, set_cur_dataset_attribute, get_cur_dataset_attribute, has_cur_dataset_attribute, set_variable_attribute, list_variable_attributes, get_variable_attribute, has_variable_attribute, check_institution, check_sourceID, check_experiment, check_grids, check_requiredattributes, check_ISOTime, check_furtherinfourl, get_CV_Error, setup_variable, set_CV_Error, check_parentExpID, check_subExpID, check_filename
 
diff --git a/LibCV/cmor_const.py b/LibCV/cmor_const.py
index 1dc5b2a..c865082 100644
--- a/LibCV/cmor_const.py
+++ b/LibCV/cmor_const.py
@@ -30,6 +30,7 @@ CMOR_DEFAULT_FURTHERURL_TEMPLATE
 FILE_PATH_TEMPLATE
 FILE_NAME_TEMPLATE
 GLOBAL_ATT_FURTHERINFOURLTMPL
+GLOBAL_ATT_MEMBER_ID
 CMOR_AXIS_ENTRY_FILE
 CMOR_FORMULA_VAR_FILE
 """
diff --git a/LibCV/pywrapper.py b/LibCV/pywrapper.py
index 9b4ef71..d6df766 100644
--- a/LibCV/pywrapper.py
+++ b/LibCV/pywrapper.py
@@ -143,7 +143,7 @@ def set_cur_dataset_attribute(name, value):
 def has_cur_dataset_attribute(name):
     """determines if the current cmor dataset has an attribute
     Usage:
-      cmor.het_cur_dataset_attribute(name)
+      cmor.has_cur_dataset_attribute(name)
     Where:
       name: is the name of the attribute
     Returns True if the dataset has the attribute, False otherwise
@@ -256,6 +256,21 @@ def check_sourceID(table_id):
     return(ierr)
 
 
+def check_filename(table_id, var_name, calendar, timeunits, infile):
+    '''
+      Validate filename with timestamp for current variable and file
+
+      Usage:
+        cmip6_cv.check_filename(table_id, var_id)
+      Where:
+        table_id is the table id returned by load_table()
+        var_name is the variable name 
+      Return 0 on success
+    '''
+    ierr = _cmip6_cv.check_filename(table_id, var_name, 
+                                    calendar, timeunits, infile)
+    return(ierr)
+
 def check_experiment(table_id):
     '''
       Validate Experiment and Experiement_id against Control Vocabulary file.
@@ -300,6 +315,37 @@ def check_requiredattributes(table_id):
     return(ierr)
 
 
+def check_subExpID(table_id):
+    '''
+      Validate that sub_experiment ind sub_experiment_id are set to appropriate value
+      as defined in the CV file.
+
+      Usage:
+        cmip6_cv.check_subExpID(table_id)
+      Where:
+        table_id is the table id returned by load_table()
+      Return 0 on success
+    '''
+    ierr = _cmip6_cv.check_subExpID(table_id)
+    return(ierr)
+
+def check_parentExpID(table_id):
+    '''
+      Validate that parent_experiement is set to appropriate value
+      if parent is set to "no parent" validate that other related 
+      attributes are set to "no parent"
+
+      if parent is set to any string, validate all related attributes.
+
+      Usage:
+        cmip6_cv.check_parentExpID(table_id)
+      Where:
+        table_id is the table id returned by load_table()
+      Return 0 on success
+    '''
+    ierr = _cmip6_cv.check_parentExpID(table_id)
+    return(ierr)
+
 def check_ISOTime():
     '''
       Validate that creation attribute contains time
@@ -313,7 +359,7 @@ def check_ISOTime():
     return(ierr)
 
 
-def setup_variable(name, units, missing):
+def setup_variable(name, units, missing, startime, endtime, startimebnds, endtimebnds):
     '''
     Create variable  attributes from the table loaded by load_table.
     
@@ -323,10 +369,14 @@ def setup_variable(name, units, missing):
         name is the variable name to validate
         units are the variable units
         missing is the missing value for this variable.
+        startime: time value for first part of timestap -- time[0]
+        endtime: time value for last part of timestap -- time[-1]
+        startimebnds: time bound value for first part of timestap -- time_bnds[0]
+        endtimebnds: time bound value for last part of timestap -- time_bnds[-1]
     return: variable_id on success
            -1 on failure
     '''
-    ierr = _cmip6_cv.setup_variable(name, units, missing)
+    ierr = _cmip6_cv.setup_variable(name, units, missing, startime, endtime, startimebnds, endtimebnds)
     return(ierr)
 def get_CV_Error():
     '''
diff --git a/Makefile.in b/Makefile.in
index 01d2777..25259f6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -49,6 +49,7 @@ INCFILES=@INCFILES@
 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} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${UUIDFLAGS} ${ZFLAGS}
+UNAME := $(shell uname)
 
 all:    cmor
 	@echo
@@ -136,9 +137,12 @@ 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@ @USERCFLAGS@ @CPPFLAGS@  Test/ipcc_test_code.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @LDFLAGS@  -o ipcc_test_code  @VERB@; ./ipcc_test_code @VERB@
-	@rm -f test_grid ; @CC@ @CFLAGS@ @USERCFLAGS@ @CPPFLAGS@  Test/test_grid.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o test_grid @LDFLAGS@ @VERB@; ./test_grid @VERB@;
-	@rm -f test_lots_of_variables ; @CC@ @CFLAGS@ @USERCFLAGS@ @CPPFLAGS@  Test/test_lots_of_variables.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @LDFLAGS@ -o test_lots_of_variables @VERB@; ./test_lots_of_variables @VERB@;
-	@rm -f test_cat_unique ; @CC@ @CFLAGS@ @USERCFLAGS@ @CPPFLAGS@  Test/test_unit_cat_unique.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @LDFLAGS@ -o test_unit_cat_unique @VERB@; ./test_unit_cat_unique @VERB@;
+	rm -f test_grid ; @CC@ @CFLAGS@ @USERCFLAGS@ @CPPFLAGS@  Test/test_grid.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o test_grid @LDFLAGS@ @VERB@; ./test_grid @VERB@;
+	rm -f test_cat_unique ; @CC@ @CFLAGS@ @USERCFLAGS@ @CPPFLAGS@  Test/test_unit_cat_unique.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @LDFLAGS@ -o test_unit_cat_unique @VERB@; ./test_unit_cat_unique @VERB@;
+ifeq ($(UNAME), Linux)
+	rm -f test_lots_of_variables ; @CC@ @CFLAGS@ @USERCFLAGS@ @CPPFLAGS@  Test/test_lots_of_variables.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @LDFLAGS@ -o test_lots_of_variables @VERB@; ./test_lots_of_variables @VERB@;
+# do something Linux-y
+endif
 python:
 	@echo "Building Python interface"
 	@${PYTHONEXEC} setup.py install @CDATPREFIX@
@@ -146,64 +150,67 @@ 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/test_python_CMIP6_projections.py make test_a_python
+	env TEST_NAME=Test/test_python_toomany_tables.py make test_a_python
+	env TEST_NAME=Test/test_chunking.py make test_a_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_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_jamie_7.py make test_a_python
-	@env TEST_NAME=Test/test_python_jamie_8.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_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_jamie_7.py make test_a_python
+	env TEST_NAME=Test/test_python_jamie_8.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_joerg_4.py make test_a_python
-	@env TEST_NAME=Test/test_python_joerg_5.py make test_a_python
-	@env TEST_NAME=Test/test_python_joerg_6.py make test_a_python
-	@env TEST_NAME=Test/test_python_joerg_7.py make test_a_python
-	@env TEST_NAME=Test/test_python_joerg_8.py make test_a_python
+	env TEST_NAME=Test/test_python_joerg_5.py make test_a_python
+	env TEST_NAME=Test/test_python_joerg_6.py make test_a_python
+	env TEST_NAME=Test/test_python_joerg_7.py make test_a_python
+	env TEST_NAME=Test/test_python_joerg_8.py make test_a_python
 #	@env TEST_NAME=Test/test_python_joerg_9.py make test_a_python
-	@env TEST_NAME=Test/test_python_joerg_10.py make test_a_python
-	@env TEST_NAME=Test/test_python_joerg_11.py make test_a_python
-	@env TEST_NAME=Test/test_python_joerg_12.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
-	@env TEST_NAME=Test/jamie_hybrid_height.py make test_a_python
-	@env TEST_NAME=Test/jamie_positive.py make test_a_python
-	@env TEST_NAME=Test/test_python_1D_var.py make test_a_python
-	@env TEST_NAME=Test/test_python_2Gb_file.py make test_a_python
-	@env TEST_NAME=Test/test_python_2Gb_slice.py make test_a_python
-	@env TEST_NAME=Test/test_python_3hr.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_joerg_10.py make test_a_python
+	env TEST_NAME=Test/test_python_joerg_11.py make test_a_python
+	env TEST_NAME=Test/test_python_joerg_12.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
+	env TEST_NAME=Test/jamie_hybrid_height.py make test_a_python
+	env TEST_NAME=Test/jamie_positive.py make test_a_python
+	env TEST_NAME=Test/test_python_1D_var.py make test_a_python
+	env TEST_NAME=Test/test_python_2Gb_file.py make test_a_python
+	env TEST_NAME=Test/test_python_2Gb_slice.py make test_a_python
+	env TEST_NAME=Test/test_python_3hr.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_alastair_1.py make test_a_python
-	@env TEST_NAME=Test/test_python_cfmip_site_axis_test.py make test_a_python
-	@env TEST_NAME=Test/test_python_fx.py make test_a_python
-	@env TEST_NAME=Test/test_python_grid_and_ocn_sigma.py make test_a_python
-	@env TEST_NAME=Test/test_python_jamie_site_surface.py make test_a_python
-	@env TEST_NAME=Test/test_python_max_variables.py make test_a_python
-	@env TEST_NAME=Test/test_python_max_variables_2.py make test_a_python
-	@env TEST_NAME=Test/test_python_reverted_lats.py make test_a_python
-	@env TEST_NAME=Test/test_lon_gt_360.py make test_a_python
-	@env TEST_NAME=Test/test_lon_thro_360.py make test_a_python
-	@env TEST_NAME=Test/test_python_jamie_11.py make test_a_python
-	@env TEST_NAME=Test/test_python_joerg_tim2_clim_02.py make test_a_python
-	@env TEST_NAME=Test/test_site_ts.py make test_a_python
-	@env TEST_NAME=Test/test_python_free_wrapping_issue.py make test_a_python
+	env TEST_NAME=Test/test_python_cfmip_site_axis_test.py make test_a_python
+#	env TEST_NAME=Test/test_python_fx.py make test_a_python
+	env TEST_NAME=Test/test_python_grid_and_ocn_sigma.py make test_a_python
+	env TEST_NAME=Test/test_python_jamie_site_surface.py make test_a_python
+	env TEST_NAME=Test/test_python_max_variables.py make test_a_python
+	env TEST_NAME=Test/test_python_max_variables_2.py make test_a_python
+	env TEST_NAME=Test/test_python_reverted_lats.py make test_a_python
+	env TEST_NAME=Test/test_lon_gt_360.py make test_a_python
+	env TEST_NAME=Test/test_lon_thro_360.py make test_a_python
+	env TEST_NAME=Test/test_python_jamie_11.py make test_a_python
+	env TEST_NAME=Test/test_python_joerg_tim2_clim_02.py make test_a_python
+	env TEST_NAME=Test/test_site_ts.py make test_a_python
+	env TEST_NAME=Test/test_python_free_wrapping_issue.py make test_a_python
 
 test_case:
 	@echo "${OK_COLOR}Testing: "${TEST_NAME}" with input file: ${INPUT_FILE}${NO_COLOR}"
@@ -258,47 +265,49 @@ test_fortran_old_cmor_tables: cmor
 	@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_cmor_grid_time_varying" INPUT_FILE="Test/alejandro.txt" make test_case
-	@env TEST_NAME="test_cmor_grid_time_varying" INPUT_FILE="Test/alejandro_1.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="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_cmor_grid_time_varying" INPUT_FILE="Test/alejandro.txt" make test_case
+	env TEST_NAME="test_cmor_grid_time_varying" INPUT_FILE="Test/alejandro_1.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="test_singleton_5D_tas" 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
-	@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
+	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_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
+ifeq ($(UNAME), Linux)
+	env TEST_NAME="test_lots_of_variables" INPUT_FILE="Test/noinput" make test_case
+endif
 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
diff --git a/README.md b/README.md
index da3ea30..3ce9b33 100644
--- a/README.md
+++ b/README.md
@@ -4,8 +4,9 @@ Climate Model Output Rewriter
 CMOR 3.2 documentation can be found here: http://cmor.llnl.gov
 
 
-[![DOI](https://zenodo.org/badge/10127138.svg)](https://zenodo.org/badge/latestdoi/10127138)
-[![stable version](http://img.shields.io/badge/stable version-3.2.1-brightgreen.svg)](https://github.com/PCMDI/cmor/releases/tag/3.2.1)
-![platforms](http://img.shields.io/badge/platforms-linux | osx-lightgrey.svg)
+
+[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.556207.svg)](https://doi.org/10.5281/zenodo.556207)
+[![stable version](https://img.shields.io/badge/stable%20version-3.2.3-brightgreen.svg)](https://github.com/PCMDI/cmor/releases/tag/3.2.3)
+![platforms](https://img.shields.io/badge/platforms-linux%20|%20osx-lightgrey.svg)
 [![Anaconda-Server Badge](https://anaconda.org/pcmdi/cmor/badges/installer/conda.svg)](https://conda.anaconda.org/pcmdi)
 [![Anaconda-Server Badge](https://anaconda.org/pcmdi/cmor/badges/downloads.svg)](https://anaconda.org/pcmdi)
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index b27f89c..e1e9e3c 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -1,3 +1,4 @@
+2017-02-22 : Release 3.2.2
 2016-11-23 : Release 3.2.0
 2016-09-08 : Release 3.1.2
 2016-06-14 : Release 3.1.0
diff --git a/Src/_cmormodule.c b/Src/_cmormodule.c
index c630ad4..c6d454f 100644
--- a/Src/_cmormodule.c
+++ b/Src/_cmormodule.c
@@ -1,4 +1,5 @@
 #include <Python.h>
+#define NPY_NO_DEPRECATED_API  NPY_1_10_API_VERSION
 #include "numpy/arrayobject.h"
 #include "cmor.h"
 
@@ -419,14 +420,14 @@ static PyObject *PyCMOR_axis( PyObject * self, PyObject * args ) {
 							      NPY_NOTYPE,
 							      1, 0 );
 
-	if( coords->nd != 1 ) {
+	if( PyArray_NDIM(coords) != 1 ) {
 	    printf
 		( "ok we need to pass contiguous flattened arrays only!\n" );
 	    return NULL;
 	}
 
 	if( type != 'c' ) {
-	    coord_vals = ( void * ) coords->data;
+	    coord_vals = ( void * ) PyArray_DATA(coords);
 	    n = cell_bounds_ndim;
 	} else {
 	    tmpstr =
@@ -453,12 +454,12 @@ static PyObject *PyCMOR_axis( PyObject * self, PyObject * args ) {
 	    ( PyArrayObject * ) PyArray_ContiguousFromObject( bounds_obj,
 							      NPY_NOTYPE,
 							      1, 0 );
-	if( bounds->nd != 1 ) {
+	if( PyArray_NDIM(bounds) != 1 ) {
 	    printf
 		( "ok we need to pass contiguous flattened arrays only!\n" );
 	    return NULL;
 	}
-	cell_bounds = ( void * ) bounds->data;
+	cell_bounds = ( void * ) PyArray_DATA(bounds);
     }
 
     ierr =
@@ -541,11 +542,11 @@ static PyObject *PyCMOR_variable( PyObject * self, PyObject * args ) {
 							  NPY_NOTYPE,
 							  1, 0 );
 
-    if( axes->nd != 1 ) {
+    if( PyArray_NDIM(axes) != 1 ) {
 	printf( "ok we need to pass contiguous flattened arrays only!\n" );
 	return NULL;
     }
-    axes_ids = ( int * ) axes->data;
+    axes_ids = ( int * ) PyArray_DATA(axes);
 
     if( missing_obj == Py_None ) {
 	pass_missing = NULL;
@@ -613,7 +614,7 @@ static PyObject *PyCMOR_zfactor( PyObject * self, PyObject * args ) {
 		( PyArrayObject * ) PyArray_ContiguousFromObject( axes_obj,
 								  NPY_NOTYPE,
 								  1, 0 );
-	    axes_ids = ( void * ) axes->data;
+	    axes_ids = ( void * ) PyArray_DATA(axes);
 	} else {
 	    itmp = ( int ) PyInt_AsLong( axes_obj );
 	    axes_ids = &itmp;
@@ -628,7 +629,7 @@ static PyObject *PyCMOR_zfactor( PyObject * self, PyObject * args ) {
 	    ( PyArrayObject * ) PyArray_ContiguousFromObject( values_obj,
 							      NPY_NOTYPE,
 							      1, 0 );
-	values = ( void * ) values_array->data;
+	values = ( void * ) PyArray_DATA(values_array);
     }
 
     if( bounds_obj == Py_None ) {
@@ -638,7 +639,7 @@ static PyObject *PyCMOR_zfactor( PyObject * self, PyObject * args ) {
 	    ( PyArrayObject * ) PyArray_ContiguousFromObject( bounds_obj,
 							      NPY_NOTYPE,
 							      1, 0 );
-	bounds = ( void * ) bounds_array->data;
+	bounds = ( void * ) PyArray_DATA(bounds_array);
     }
 
     ierr =
@@ -685,7 +686,7 @@ static PyObject *PyCMOR_grid_mapping( PyObject * self, PyObject * args ) {
 	( PyArrayObject * ) PyArray_ContiguousFromObject( param_val_obj,
 							  NPY_NOTYPE,
 							  1, 0 );
-    param_val = param_val_arr->data;
+    param_val = PyArray_DATA(param_val_arr);
 
     n = PyList_Size( param_nm_obj );
     for( i = 0; i < n; i++ ) {
@@ -749,7 +750,7 @@ static PyObject *PyCMOR_write( PyObject * self, PyObject * args ) {
 	( PyArrayObject * ) PyArray_ContiguousFromObject( data_obj,
 							  NPY_NOTYPE,
 							  1, 0 );
-    data = data_array->data;
+    data = PyArray_DATA(data_array);
 
     if( times_obj == Py_None ) {
 	times = NULL;
@@ -759,7 +760,7 @@ static PyObject *PyCMOR_write( PyObject * self, PyObject * args ) {
 		( PyArrayObject * )
 		PyArray_ContiguousFromObject( times_obj, NPY_NOTYPE, 1,
 					      0 );
-	    times = ( void * ) times_array->data;
+	    times = ( void * ) PyArray_DATA(times_array);
 	} else {
 	    itime = ( double ) PyFloat_AsDouble( times_obj );
 	    times = &itime;
@@ -773,7 +774,7 @@ static PyObject *PyCMOR_write( PyObject * self, PyObject * args ) {
 	    ( PyArrayObject * )
 	    PyArray_ContiguousFromObject( times_bnds_obj, NPY_NOTYPE,
 					  1, 0 );
-	times_bnds = ( void * ) times_bnds_array->data;
+	times_bnds = ( void * ) PyArray_DATA(times_bnds_array);
     }
 
     if( ref_obj == Py_None ) {
@@ -911,8 +912,8 @@ static PyObject *PyCMOR_grid( PyObject * self, PyObject * args ) {
     signal(signal_to_catch, signal_handler);
     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;
+    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;
@@ -929,7 +930,7 @@ static PyObject *PyCMOR_grid( PyObject * self, PyObject * args ) {
 	( PyArrayObject * ) PyArray_ContiguousFromObject( axes_obj,
 							  NPY_NOTYPE,
 							  1, 0 );
-    axes = ( void * ) axes_arr->data;
+    axes = ( void * ) PyArray_DATA(axes_arr);
 
     if( lat_obj == Py_None ) {
 	lat = NULL;
@@ -938,7 +939,7 @@ static PyObject *PyCMOR_grid( PyObject * self, PyObject * args ) {
 	    ( PyArrayObject * ) PyArray_ContiguousFromObject( lat_obj,
 							      NPY_NOTYPE,
 							      1, 0 );
-	lat = ( void * ) lat_arr->data;
+	lat = ( void * ) PyArray_DATA(lat_arr);
     }
 
     if( lon_obj == Py_None ) {
@@ -948,7 +949,7 @@ static PyObject *PyCMOR_grid( PyObject * self, PyObject * args ) {
 	    ( PyArrayObject * ) PyArray_ContiguousFromObject( lon_obj,
 							      NPY_NOTYPE,
 							      1, 0 );
-	lon = ( void * ) lon_arr->data;
+	lon = ( void * ) PyArray_DATA(lon_arr);
     }
 
     if( blat_obj == Py_None ) {
@@ -958,7 +959,7 @@ static PyObject *PyCMOR_grid( PyObject * self, PyObject * args ) {
 	    ( PyArrayObject * ) PyArray_ContiguousFromObject( blat_obj,
 							      NPY_NOTYPE,
 							      1, 0 );
-	blat = ( void * ) blat_arr->data;
+	blat = ( void * ) PyArray_DATA(blat_arr);
     }
     if( blon_obj == Py_None ) {
 	blon = NULL;
@@ -967,7 +968,7 @@ static PyObject *PyCMOR_grid( PyObject * self, PyObject * args ) {
 	    ( PyArrayObject * ) PyArray_ContiguousFromObject( blon_obj,
 							      NPY_NOTYPE,
 							      1, 0 );
-	blon = ( void * ) blon_arr->data;
+	blon = ( void * ) PyArray_DATA(blon_arr);
     }
 
     ierr =
diff --git a/Src/_controlvocabulary.c b/Src/_controlvocabulary.c
index 8100b92..2179722 100644
--- a/Src/_controlvocabulary.c
+++ b/Src/_controlvocabulary.c
@@ -1,8 +1,73 @@
 #include <Python.h>
+#define NPY_NO_DEPRECATED_API  NPY_1_10_API_VERSION
+
 #include "numpy/arrayobject.h"
 #include "cmor.h"
 
-extern int cmor_CV_variable(int *, char *, char *, float *);
+extern int cmor_CV_variable(int *, char *, char *, float *,
+        float, float, float, float);
+
+/************************************************************************/
+/*                       PyCV_checkFilename                             */
+/************************************************************************/
+static PyObject *PyCV_checkFilename( PyObject * self, PyObject * args ) {
+    int ntable;
+    int varid;
+    char *szInTimeCalendar;
+    char *szInTimeUnits;
+    char *infile;
+    int nTimeCalLen;
+    int nTimeUnitsLen;
+    int ninfile;
+    cmor_is_setup();
+
+
+    if( !PyArg_ParseTuple( args, "iis#s#s#", &ntable, &varid,
+            &szInTimeCalendar, &nTimeCalLen,
+            &szInTimeUnits, &nTimeUnitsLen,
+            &infile, &ninfile) ) {
+        return(Py_BuildValue( "i", -1 ));
+    }
+
+    cmor_CV_checkFilename(cmor_tables[ntable].CV, varid,
+            szInTimeCalendar,
+            szInTimeUnits,
+            infile);
+
+    return( Py_BuildValue( "i", 0 ) );
+}
+
+/************************************************************************/
+/*                       PyCV_checkSubExpID                             */
+/************************************************************************/
+static PyObject *PyCV_checkSubExpID( PyObject * self, PyObject * args ) {
+    int nVarRefTblID;
+    cmor_is_setup();
+
+    if( !PyArg_ParseTuple( args, "i", &nVarRefTblID) ) {
+        return(Py_BuildValue( "i", -1 ));
+    }
+
+    cmor_CV_checkSubExpID(cmor_tables[nVarRefTblID].CV);
+
+    return( Py_BuildValue( "i", 0 ) );
+}
+
+/************************************************************************/
+/*                     PyCV_checkParentExpID                            */
+/************************************************************************/
+static PyObject *PyCV_checkParentExpID( PyObject * self, PyObject * args ) {
+    int nVarRefTblID;
+    cmor_is_setup();
+
+    if( !PyArg_ParseTuple( args, "i", &nVarRefTblID) ) {
+        return(Py_BuildValue( "i", -1 ));
+    }
+
+    cmor_CV_checkParentExpID(cmor_tables[nVarRefTblID].CV);
+
+    return( Py_BuildValue( "i", 0 ) );
+}
 
 /************************************************************************/
 /*                     PyCV_setInstitution()                            */
@@ -225,9 +290,9 @@ static PyObject* PyCMOR_get_variable_attribute_list(PyObject* self,
     char type;
     int i;
 
-    if( !PyArg_ParseTuple( args, "i", &var_id ) )
-	return NULL;
-
+    if (!PyArg_ParseTuple(args, "i", &var_id)) {
+        return NULL;
+    }
 	index = cmor_vars[var_id].nattributes;
 	if( index == -1 ) return NULL;
 
@@ -290,8 +355,8 @@ static PyObject *PyCMOR_get_variable_attribute( PyObject * self,
     ierr = cmor_get_variable_attribute( var_id, name, ( void * ) value );
     if( ierr != 0 )
 	return NULL;
-    if((strcmp(name, "_FillValue") == 0) ||
-            (strcmp(name, "missing_values") == 0)) {
+    if((strcmp(name, VARIABLE_ATT_FILLVAL) == 0) ||
+            (strcmp(name, VARIABLE_ATT_MISSINGVALUES) == 0)) {
         ierr = cmor_get_variable_attribute( var_id, name, &fValue );
         return(Py_BuildValue("f", fValue));
     }
@@ -462,6 +527,8 @@ static PyObject *PyCMOR_getincvalues( PyObject * self, PyObject * args ) {
         return( Py_BuildValue( "s", CV_CHECK_ERROR ));
     } else if( strcmp( att_name, "GLOBAL_ATT_FURTHERINFOURLTMPL" ) == 0 ) {
         return( Py_BuildValue( "s", GLOBAL_ATT_FURTHERINFOURLTMPL ));
+    } else if( strcmp( att_name, "GLOBAL_ATT_MEMBER_ID" ) == 0 ) {
+        return( Py_BuildValue( "s", GLOBAL_ATT_MEMBER_ID ));
     } else if( strcmp( att_name, "CMOR_AXIS_ENTRY_FILE" ) == 0 ) {
         return( Py_BuildValue( "s", CMOR_AXIS_ENTRY_FILE ));
     } else if( strcmp( att_name, "CMOR_FORMULA_VAR_FILE" ) == 0 ) {
@@ -480,13 +547,20 @@ static PyObject *PyCV_setup_variable( PyObject * self, PyObject * args ) {
     char *name;
     char *units;
     float missing;
+    float startime;
+    float endtime;
+    float startimebnds;
+    float endtimebnds;
+
     int var_id;
 
-    if( !PyArg_ParseTuple( args, "ssf", &name, &units,  &missing ) ){
+    if( !PyArg_ParseTuple( args, "ssfffff", &name, &units,  &missing,
+            &startime, &endtime, &startimebnds, &endtimebnds) ){
         return( Py_BuildValue( "i", -1 ) );
     }
 
-    cmor_CV_variable( &var_id, name, units, &missing );
+    cmor_CV_variable( &var_id, name, units, &missing, startime, endtime,
+            startimebnds, endtimebnds);
 
     return( Py_BuildValue( "i", var_id) );
 
@@ -532,11 +606,14 @@ static PyMethodDef MyExtractMethods[] = {
 	{"list_variable_attributes",  PyCMOR_get_variable_attribute_list,
 		    METH_VARARGS},
     {"set_institution",           PyCV_setInstitution, METH_VARARGS },
+    {"check_parentExpID",         PyCV_checkParentExpID, METH_VARARGS },
+    {"check_subExpID",            PyCV_checkSubExpID, METH_VARARGS },
     {"check_sourceID",            PyCV_checkSourceID, METH_VARARGS },
     {"check_grids",               PyCV_checkGrids, METH_VARARGS },
     {"check_experiment",          PyCV_checkExperiment, METH_VARARGS},
     {"check_furtherinfourl",      PyCV_checkFurtherInfoURL, METH_VARARGS },
     {"check_gblattributes",       PyCV_GblAttributes, METH_VARARGS },
+    {"check_filename",            PyCV_checkFilename, METH_VARARGS },
     {"check_ISOTime",             PyCV_checkISOTime, METH_VARARGS },
     {"getCMOR_defaults_include",  PyCMOR_getincvalues, METH_VARARGS},
     {"setup_variable",            PyCV_setup_variable, METH_VARARGS},
diff --git a/Src/cmor.c b/Src/cmor.c
index 14d003b..c7dd58b 100644
--- a/Src/cmor.c
+++ b/Src/cmor.c
@@ -210,16 +210,17 @@ void cmor_cat_unique_string( char *dest, char *src ) {
 /*             cmor_check_forcing_validity()                              */
 /*                                                                        */
 /**************************************************************************/
-void cmor_check_forcing_validity( int table_id, char *value ) {
+int 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;
 
+
     cmor_add_traceback("cmor_check_forcing_validity");
     if( cmor_tables[table_id].nforcings == 0 ) {
         cmor_pop_traceback();
-	return;
+	return(0);
     }
     strcpy( astr, value );
     found = 0;
@@ -237,7 +238,7 @@ void cmor_check_forcing_validity( int table_id, char *value ) {
     cmor_convert_string_to_list( astr, 'c', ( void ** ) &bstr, &n );
     if( n == 0 ){
         cmor_pop_traceback();
-	return;
+	return(0);
     }
     for( i = 0; i < n; i++ ) {
 	found = 0;
@@ -258,7 +259,9 @@ void cmor_check_forcing_validity( int table_id, char *value ) {
 		strncat( msg, ",", CMOR_MAX_STRING - strlen( msg ) );
 	    }
 	    msg[strlen( msg ) - 1] = '\0';
-	    cmor_handle_error( msg, CMOR_CRITICAL );
+	    cmor_handle_error( msg, CMOR_NORMAL );
+	    cmor_pop_traceback();
+	    return(-1);
 	}
     }
 /* -------------------------------------------------------------------- */
@@ -269,7 +272,7 @@ void cmor_check_forcing_validity( int table_id, char *value ) {
     }
     free( bstr );
     cmor_pop_traceback();
-    return;
+    return(0);
 }
 
 /**************************************************************************/
@@ -519,89 +522,88 @@ int cmor_have_NetCDF41min( void ) {
 /************************************************************************/
 /*                         cmor_handle_error()                          */
 /************************************************************************/
-void cmor_handle_error( char error_msg[CMOR_MAX_STRING], int level ) {
+void cmor_handle_error(char error_msg[CMOR_MAX_STRING], int level) {
     int i;
     char msg[CMOR_MAX_STRING];
     extern FILE *output_logfile;
 
-    if( output_logfile == NULL )
-	output_logfile = stderr;
+    if (output_logfile == NULL)
+        output_logfile = stderr;
 
     msg[0] = '\0';
-    if( CMOR_VERBOSITY != CMOR_QUIET ) {
-	fprintf( output_logfile, "\n" );
+    if (CMOR_VERBOSITY != CMOR_QUIET) {
+        fprintf(output_logfile, "\n");
     }
-    if( level == CMOR_WARNING ) {
-	cmor_nwarnings++;
-	if( CMOR_VERBOSITY != CMOR_QUIET ) {
-	    
+    if (level == CMOR_WARNING) {
+        cmor_nwarnings++;
+        if (CMOR_VERBOSITY != CMOR_QUIET) {
+
 #ifdef COLOREDOUTPUT
-	    fprintf( output_logfile, "%c[%d;%d;%dm", 0X1B, 2, 34, 47 );
+            fprintf(output_logfile, "%c[%d;%d;%dm", 0X1B, 2, 34, 47);
 #endif
-	    
-	    fprintf( output_logfile, "C Traceback:\nIn function: %s",
-		     cmor_traceback_info );
-	    
+
+            fprintf(output_logfile, "C Traceback:\nIn function: %s",
+                    cmor_traceback_info);
+
 #ifdef COLOREDOUTPUT
-	    fprintf( output_logfile, "%c[%dm", 0X1B, 0 );
+            fprintf(output_logfile, "%c[%dm", 0X1B, 0);
 #endif
-	    
-	    fprintf( output_logfile, "\n\n" );
-	    
+
+            fprintf(output_logfile, "\n\n");
+
 #ifdef COLOREDOUTPUT
-	    fprintf( output_logfile, "%c[%d;%d;%dm", 0X1B, 1, 34, 47 );
+            fprintf(output_logfile, "%c[%d;%d;%dm", 0X1B, 1, 34, 47);
 #endif
-	    
-	    snprintf( msg, CMOR_MAX_STRING, "! Warning: %s", error_msg );
-	}
+
+            snprintf(msg, CMOR_MAX_STRING, "! Warning: %s", error_msg);
+        }
     } else {
-	cmor_nerrors++;
-	
+        cmor_nerrors++;
+
 #ifdef COLOREDOUTPUT
-	fprintf( output_logfile, "%c[%d;%d;%dm", 0X1B, 2, 31, 47 );
+        fprintf(output_logfile, "%c[%d;%d;%dm", 0X1B, 2, 31, 47);
 #endif
-	
-	fprintf( output_logfile, "C Traceback:\n! In function: %s",
-		 cmor_traceback_info );
+
+        fprintf(output_logfile, "C Traceback:\n! In function: %s",
+                cmor_traceback_info);
 
 #ifdef COLOREDOUTPUT
-	fprintf( output_logfile, "%c[%dm", 0X1B, 0 );
+        fprintf(output_logfile, "%c[%dm", 0X1B, 0);
 #endif
 
-	fprintf( output_logfile, "\n\n" );
+        fprintf(output_logfile, "\n\n");
 
 #ifdef COLOREDOUTPUT
-	fprintf( output_logfile, "%c[%d;%d;%dm", 0X1B, 1, 31, 47 );
+        fprintf(output_logfile, "%c[%d;%d;%dm", 0X1B, 1, 31, 47);
 #endif
 
-	snprintf( msg, CMOR_MAX_STRING, "! Error: %s", error_msg );
+        snprintf(msg, CMOR_MAX_STRING, "! Error: %s", error_msg);
     }
-    if( CMOR_VERBOSITY != CMOR_QUIET || level != CMOR_WARNING ) {
-	for( i = 0; i < 25; i++ ) {
-	    fprintf( output_logfile, "!" );
-	}
-	fprintf( output_logfile, "\n" );
-	fprintf( output_logfile, "!\n" );
-	fprintf( output_logfile, "%s\n", msg );
-	fprintf( output_logfile, "!\n" );
-	
-	for( i = 0; i < 25; i++ )
-	    fprintf( output_logfile, "!" );
-	
+    if (CMOR_VERBOSITY != CMOR_QUIET || level != CMOR_WARNING) {
+        for (i = 0; i < 25; i++) {
+            fprintf(output_logfile, "!");
+        }
+        fprintf(output_logfile, "\n");
+        fprintf(output_logfile, "!\n");
+        fprintf(output_logfile, "%s\n", msg);
+        fprintf(output_logfile, "!\n");
+
+        for (i = 0; i < 25; i++)
+            fprintf(output_logfile, "!");
+
 #ifdef COLOREDOUTPUT
-	fprintf( output_logfile, "%c[%dm", 0X1B, 0 );
+        fprintf(output_logfile, "%c[%dm", 0X1B, 0);
 #endif
-	
-	fprintf( output_logfile, "\n\n" );
+
+        fprintf(output_logfile, "\n\n");
     }
 
-    CV_ERROR=1;
-    if( level == CMOR_NOT_SETUP) {
+    CV_ERROR = 1;
+    if (level == CMOR_NOT_SETUP) {
         exit(1);
 
     }
-    if( ( CMOR_MODE == CMOR_EXIT_ON_WARNING )
-	|| ( level == CMOR_CRITICAL ) ) {
+    if ((CMOR_MODE == CMOR_EXIT_ON_WARNING) || (level == CMOR_CRITICAL)) {
         kill(getpid(), SIGTERM);
     }
 }
@@ -758,6 +760,38 @@ int cmor_setup( char *path,
     cmor_nerrors = 0;
     cmor_nwarnings = 0;
 
+    // Define mode
+    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;
+
+    }
+    // Define verbosity
+    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 (logfile == NULL) {
         output_logfile = NULL;
     } else {
@@ -785,7 +819,7 @@ int cmor_setup( char *path,
             rename(tmplogfile, msg);
 
             snprintf(msg2, CMOR_MAX_STRING,
-                    "Logfile %s already existed. Renamed to: %s", tmplogfile,
+                    "Logfile %s already exist.\n! Renamed to: %s", tmplogfile,
                     msg);
             output_logfile = NULL;
             output_logfile = fopen(tmplogfile, "w");
@@ -807,35 +841,7 @@ int cmor_setup( char *path,
         }
     }
 
-    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;
@@ -1161,6 +1167,9 @@ json_object *cmor_open_inpathFile(char *szFilename ) {
         free(buffer);
         buffer=NULL;
     }
+    if( table_file != NULL ) {
+        fclose(table_file);
+    }
     return(oJSON);
 }
 
@@ -1719,7 +1728,6 @@ int cmor_define_zfactors_vars( int var_id, int ncid, int *nc_dim,
     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;
@@ -2014,62 +2022,6 @@ int cmor_define_zfactors_vars( int var_id, int ncid, int *nc_dim,
 				}
 
 /* -------------------------------------------------------------------- */
-/*      Compression stuff                                               */
-/* -------------------------------------------------------------------- */
-
-				if ((CMOR_NETCDF_MODE != CMOR_REPLACE_3)
-						&& (CMOR_NETCDF_MODE != CMOR_PRESERVE_3)
-						&& (CMOR_NETCDF_MODE != CMOR_APPEND_3)) {
-					int nTableID = cmor_vars[l].ref_table_id;
-
-					ics = cmor_tables[nTableID].vars[nTableID].shuffle;
-					icd = cmor_tables[nTableID].vars[nTableID].deflate;
-					icdl = cmor_tables[nTableID].vars[nTableID].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: %s) defining\n! "
-										"compression parameters\n! "
-										"for zfactor variable %s for\n! "
-										"variable '%s' (table %s)", ierr,
-								nc_strerror(ierr), cmor_vars[l].id,
-								cmor_vars[var_id].id,
-								cmor_tables[cmor_vars[var_id].ref_table_id].szTable_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))) {
-						int ndims = cmor_vars[var_id].ndims;
-						size_t nc_chunking[ndims];
-
-						for (n = 0; n < cmor_vars[var_id].ndims; n++) {
-							nc_chunking[n] = 1;
-						}
-						ierr = nc_def_var_chunking(ncid,
-								nc_zfactors[lnzfactors],
-								NC_CHUNKED, &nc_chunking[0]);
-						if (ierr != NC_NOERR) {
-							snprintf(msg, CMOR_MAX_STRING,
-									"NetCDF Error (%i: %s) defining chunking\n! "
-											"parameters for variable '%s' (table: %s)",
-									ierr, nc_strerror(ierr),
-									cmor_vars[var_id].id,
-									cmor_tables[cmor_vars[var_id].ref_table_id].szTable_id);
-							cmor_handle_error(msg, CMOR_CRITICAL);
-						}
-					}
-				}
-
-/* -------------------------------------------------------------------- */
 /*      Creates attribute related to that variable                      */
 /* -------------------------------------------------------------------- */
 				for (k = 0; k < cmor_vars[l].nattributes; k++) {
@@ -2397,6 +2349,8 @@ int cmor_validateFilename(char *outname, int var_id) {
                             "or use CMOR_REPLACE or CMOR_APPEND for\n! "
                             "CMOR_NETCDF_MODE value in cmor_setup", outname);
             cmor_handle_error(msg, CMOR_CRITICAL);
+            ierr = fclose(fperr);
+            fperr=NULL;
         }
         ierr = nc_create(outname, NC_NOCLOBBER | cmode, &ncid);
     } else if ((CMOR_NETCDF_MODE == CMOR_APPEND_4)
@@ -2416,6 +2370,7 @@ int cmor_validateFilename(char *outname, int var_id) {
         } else { /*ok it was there already */
 
             ierr = fclose(fperr);
+            fperr=NULL;
             ierr = nc_open(outname, NC_WRITE, &ncid);
 
             if (ierr != NC_NOERR) {
@@ -2536,30 +2491,33 @@ int cmor_validateFilename(char *outname, int var_id) {
 /************************************************************************/
 /*                      cmor_setGblAttr()                               */
 /************************************************************************/
-void cmor_setGblAttr(int var_id) {
+int cmor_setGblAttr(int var_id) {
     struct tm *ptr;
     time_t lt;
     char msg[CMOR_MAX_STRING];
     char ctmp[CMOR_MAX_STRING];
     char ctmp2[CMOR_MAX_STRING];
     char words[CMOR_MAX_STRING];
+    char trimword[CMOR_MAX_STRING];
+    char *szToken;
     int i;
     int n_matches = 10;
     regmatch_t m[n_matches];
     regex_t regex;
-    char *ret;
     int numchar;
     int nVarRefTblID;
     int rc;
+    int ierr=0;
 
     cmor_add_traceback("cmor_setGblAttr");
     nVarRefTblID = cmor_vars[var_id].ref_table_id;
 
     if( cmor_has_cur_dataset_attribute( GLOBAL_ATT_FORCING ) == 0 ) {
         cmor_get_cur_dataset_attribute( GLOBAL_ATT_FORCING, ctmp2 );
-        cmor_check_forcing_validity( nVarRefTblID,
+        ierr += cmor_check_forcing_validity( nVarRefTblID,
                                      ctmp2 );
     }
+
 /* -------------------------------------------------------------------- */
 /*  Defined "product" from Table if not defined by users                */
 /* -------------------------------------------------------------------- */
@@ -2672,9 +2630,15 @@ void cmor_setGblAttr(int var_id) {
 /* -------------------------------------------------------------------- */
 /*      first check if the variable itself has a realm                  */
 /* -------------------------------------------------------------------- */
-    if (cmor_tables[nVarRefTblID].vars[nVarRefTblID].realm[0] != '\0') {
-        cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_REALM,
-                cmor_tables[nVarRefTblID].vars[nVarRefTblID].realm, 0);
+    if (cmor_tables[nVarRefTblID].vars[var_id].realm[0] != '\0') {
+        szToken = strtok(cmor_tables[nVarRefTblID].vars[var_id].realm, " ");
+        if( szToken != NULL){
+            cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_REALM,
+                    szToken, 0);
+        } else {
+            cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_REALM,
+                    cmor_tables[nVarRefTblID].vars[var_id].realm, 0);
+        }
     } else {
 /* -------------------------------------------------------------------- */
 /*      ok it didn't so we're using the value from the table            */
@@ -2686,79 +2650,86 @@ void cmor_setGblAttr(int var_id) {
 /* -------------------------------------------------------------------- */
 /*     Create external_variables                                        */
 /* -------------------------------------------------------------------- */
-	if (cmor_has_variable_attribute(var_id, VARIABLE_ATT_CELLMEASURES) == 0) {
-		cmor_get_variable_attribute(var_id, VARIABLE_ATT_CELLMEASURES, ctmp);
+    if (cmor_has_variable_attribute(var_id, VARIABLE_ATT_CELLMEASURES) == 0) {
+        cmor_get_variable_attribute(var_id, VARIABLE_ATT_CELLMEASURES, ctmp);
 
 /* -------------------------------------------------------------------- */
 /*     If CELLMEASURE is set to @OPT we don't do anything               */
 /* -------------------------------------------------------------------- */
-		if( (strcmp(ctmp, "@OPT") == 0) || (strcmp(ctmp, "--OPT") == 0) ){
-			cmor_set_variable_attribute(var_id,
-			        VARIABLE_ATT_CELLMEASURES, 'c', "");
-		}
-		else {
+        if ((strcmp(ctmp, "@OPT") == 0) || (strcmp(ctmp, "--OPT") == 0)
+                || (strcmp(ctmp, "--MODEL") == 0)) {
+            cmor_set_variable_attribute(var_id,
+            VARIABLE_ATT_CELLMEASURES, 'c', "");
+        } else {
 /* -------------------------------------------------------------------- */
 /*     Extract 2 words after "area:" or "volume:" if exist.             */
 /* -------------------------------------------------------------------- */
-			regcomp(&regex, EXTERNAL_VARIABLE_REGEX, REG_EXTENDED);
+            regcomp(&regex, EXTERNAL_VARIABLE_REGEX, REG_EXTENDED);
 
-			rc = regexec(&regex, ctmp, n_matches, m, 0);
-			if (rc == REG_NOMATCH) {
-				snprintf(msg, CMOR_MAX_STRING,
-						"Your table (%s) does not contains CELL_MEASURES\n! "
-								"that matches 'area: <text> volume: <text>\n! "
-								"CMOR cannot build the 'external_variable' attribute.\n! "
-								"Check the following variable: '%s'.\n!",
-						cmor_tables[nVarRefTblID].szTable_id,
-						cmor_vars[var_id].id);
-				cmor_handle_error(msg, CMOR_CRITICAL);
-				regfree(&regex);
-				return;
+            rc = regexec(&regex, ctmp, n_matches, m, 0);
+            if (rc == REG_NOMATCH) {
+                snprintf(msg, CMOR_MAX_STRING,
+                        "Your table (%s) does not contains CELL_MEASURES\n! "
+                                "that matches 'area: <text> volume: <text>\n! "
+                                "CMOR cannot build the 'external_variable' attribute.\n! "
+                                "Check the following variable: '%s'.\n!",
+                        cmor_tables[nVarRefTblID].szTable_id,
+                        cmor_vars[var_id].id);
+                cmor_handle_error(msg, CMOR_CRITICAL);
+                regfree(&regex);
+                return (-1);
 
-			}
-			words[0] = '\0';
-			ctmp2[0] = '\0';
-			for (i = 0; i < n_matches; i++) {
-				numchar = (int) m[i].rm_eo - (int) m[i].rm_so;
+            }
+            words[0] = '\0';
+            ctmp2[0] = '\0';
+            for (i = 0; i < n_matches; i++) {
+                numchar = (int) m[i].rm_eo - (int) m[i].rm_so;
 /* -------------------------------------------------------------------- */
 /*     If rm_so is negative, there is not more matches.                 */
 /* -------------------------------------------------------------------- */
-				if (((int) m[i].rm_so < 0) || (numchar == 0)) {
-					break;
-				}
+                if (((int) m[i].rm_so < 0) || (numchar == 0)) {
+                    break;
+                }
 
-				strncpy(words, ctmp + m[i].rm_so, numchar);
-				words[numchar] = '\0';
-				ret = strstr(words, ":");
+                strncpy(words, ctmp + m[i].rm_so, numchar);
+                words[numchar] = '\0';
+                if(strstr(words, ":") != 0) {
+                    continue;
+                }
+                cmor_trim_string(words, trimword);
+                if((strcmp(trimword, AREA) != 0) && (strcmp(trimword, VOLUME) != 0)
+                        && (strlen(trimword) != strlen(ctmp))) {
 /* -------------------------------------------------------------------- */
-/*      Rejects all line with ":" in it                                 */
+/*      Rejects all word area and volume.                               */
 /* -------------------------------------------------------------------- */
-				if (ret == NULL) {
-					if (ctmp2[0] == '\0') {
-						strncat(ctmp2, words, numchar);
-					} else {
-						strcat(ctmp2, " ");
-						strncat(ctmp2, words, numchar);
-					}
-				}
-			}
-			cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_EXTERNAL_VAR,
-					ctmp2, 0);
-			regfree(&regex);
-		}
-	}
+                    if (ctmp2[0] == '\0') {
+                        strncat(ctmp2, trimword, numchar);
+                    } else {
+                        strcat(ctmp2, " ");
+                        strncat(ctmp2, trimword, numchar);
+                    }
+                }
+                    }
+            cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_EXTERNAL_VAR,
+                    ctmp2, 0);
+            regfree(&regex);
+        }
+    }
     if( cmor_has_cur_dataset_attribute(GLOBAL_ATT_INSTITUTION_ID) == 0) {
-        cmor_CV_setInstitution(cmor_tables[nVarRefTblID].CV);
+        ierr += cmor_CV_setInstitution(cmor_tables[nVarRefTblID].CV);
     }
 
     if( cmor_has_cur_dataset_attribute(GLOBAL_IS_CMIP6) == 0) {
-        cmor_CV_checkSourceID(cmor_tables[nVarRefTblID].CV);
-        cmor_CV_checkExperiment(cmor_tables[nVarRefTblID].CV);
-        cmor_CV_checkGrids(cmor_tables[nVarRefTblID].CV);
-        cmor_CV_checkFurtherInfoURL(var_id);
-    }
-    cmor_CV_checkGblAttributes(cmor_tables[nVarRefTblID].CV);
-    cmor_CV_checkISOTime(GLOBAL_ATT_CREATION_DATE);
+        ierr += cmor_CV_checkSourceID(cmor_tables[nVarRefTblID].CV);
+        ierr += cmor_CV_checkExperiment(cmor_tables[nVarRefTblID].CV);
+        ierr += cmor_CV_checkGrids(cmor_tables[nVarRefTblID].CV);
+        ierr += cmor_CV_checkFurtherInfoURL(nVarRefTblID);
+        ierr += cmor_CV_checkParentExpID(cmor_tables[nVarRefTblID].CV);
+        ierr += cmor_CV_checkSubExpID(cmor_tables[nVarRefTblID].CV);
+    }
+    ierr += cmor_CV_checkGblAttributes(cmor_tables[nVarRefTblID].CV);
+    ierr += cmor_CV_checkISOTime(GLOBAL_ATT_CREATION_DATE);
+    return(ierr);
 }
 /************************************************************************/
 /*                      cmor_writeGblAttr()                             */
@@ -3217,60 +3188,6 @@ void cmor_define_dimensions(int var_id, int ncid,
             }
 
 
-/* -------------------------------------------------------------------- */
-/*      Compression stuff                                               */
-/* -------------------------------------------------------------------- */
-            if ((CMOR_NETCDF_MODE != CMOR_REPLACE_3) &&
-                    (CMOR_NETCDF_MODE != CMOR_PRESERVE_3) &&
-                    (CMOR_NETCDF_MODE != CMOR_APPEND_3)) {
-
-                cmor_var_t *pVar;
-
-                pVar = &cmor_vars[var_id];
-
-                ics = pVar->shuffle;
-                icd = pVar->deflate;
-                icdl = pVar->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: %s) defining compression\n! "
-                                    "parameters for dimension %s for variable\n! "
-                                    "'%s' (table: %s)", ierr, nc_strerror(ierr),
-                            pAxis->id, cmor_vars[var_id].id,
-                            cmor_tables[nVarRefTblID].szTable_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[pVar->grid_id].istimevarying
-                                == 1))) {
-                    int ndims = pVar->ndims;
-                    size_t nc_chunking[ndims];
-
-                    for (n = 0; n < pVar->ndims; n++) {
-                        nc_chunking[n] = 1;
-                    }
-                    ierr = nc_def_var_chunking(ncid, nc_vars[i],
-                                NC_CHUNKED, &nc_chunking[0]);
-                    if (ierr != NC_NOERR) {
-                        snprintf(msg, CMOR_MAX_STRING,
-                                "NetCDF Error (%i: %s) defining chunking\n! "
-                                "parameters for variable '%s' (table: %s)",
-                                ierr, nc_strerror(ierr), pVar->id,
-                                cmor_tables[pVar->ref_table_id].szTable_id);
-                        cmor_handle_error(msg, CMOR_CRITICAL);
-                    }
-                }
-            }
-
             nc_vars_af[i] = nc_vars[i];
             if (ncid != ncafid) {
                 ierr = nc_def_var(ncafid, pAxis->id, j, 1, &nc_dim_af[i],
@@ -3286,60 +3203,6 @@ void cmor_define_dimensions(int var_id, int ncid,
                     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)) {
-                    cmor_var_t *pVar;
-
-                    pVar = &cmor_vars[var_id];
-
-                    ics = pVar->shuffle;
-                    icd = pVar->deflate;
-                    icdl = pVar->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: %s) defining compression\n! "
-                                        "parameters for dimension %s for\n! "
-                                        "variable '%s' (table: %s)", ierr,
-                                nc_strerror(ierr), pAxis->id,
-                                cmor_vars[var_id].id,
-                                cmor_tables[nVarRefTblID].szTable_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[pVar->grid_id].istimevarying
-                                    == 1))) {
-                        int ndims = pVar->ndims;
-                        size_t nc_chunking[ndims];
-
-                        for(n= 0; n < pVar->ndims; n++) {
-                            nc_chunking[n] = 1;
-                        }
-                        ierr = nc_def_var_chunking(ncafid, nc_vars_af[i],
-                                NC_CHUNKED, &nc_chunking[0]);
-                        if (ierr != NC_NOERR) {
-                            snprintf(msg, CMOR_MAX_STRING,
-                                    "NetCDF Error (%i: %s) defining chunking\n! "
-                                    "parameters for variable '%s' (table: %s)",
-                                    ierr, nc_strerror(ierr), pVar->id,
-                                    cmor_tables[pVar->ref_table_id].szTable_id);
-                            cmor_handle_error(msg, CMOR_CRITICAL);
-                        }
-                    }
-                }
             }
 
         } else {
@@ -3724,7 +3587,7 @@ int cmor_grids_def(int var_id, int nGridID, int ncafid, int *nc_dim_af,
     int m;
     char msg[CMOR_MAX_STRING];
     double tmps[2];
-    int i,j,k,l,n;
+    int i,j,k,l;
     int nc_dims_associated[CMOR_MAX_AXES];
     int nVarRefTblID = cmor_vars[var_id].ref_table_id;
     int m2[5];
@@ -3988,31 +3851,6 @@ int cmor_grids_def(int var_id, int nGridID, int ncafid, int *nc_dim_af,
                                 cmor_tables[nVarRefTblID].szTable_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[j].grid_id].istimevarying == 1))) {
-                        int ndims = cmor_vars[j].ndims;
-                        size_t nc_chunking[ndims];
-
-                        for (n = 0; n < cmor_vars[j].ndims; n++) {
-                            nc_chunking[n] = 1;
-                        }
-                        ierr = nc_def_var_chunking(ncafid, nc_associated_vars[i],
-                        NC_CHUNKED, &nc_chunking[0]);
-                        if (ierr != NC_NOERR) {
-                            snprintf(msg, CMOR_MAX_STRING,
-                                    "NetCDF Error (%i: %s) defining chunking\n! "
-                                            "parameters for variable '%s' (table: %s)",
-                                    ierr, nc_strerror(ierr), cmor_vars[j].id,
-                                    cmor_tables[nVarRefTblID].szTable_id);
-                            cmor_handle_error(msg, CMOR_CRITICAL);
-                        }
-                    }
                 }
             }
         }
@@ -4160,12 +3998,8 @@ int cmor_write( int var_id, void *data, char type,
 
 
 
-    ierr = cmor_addVersion();
-    ierr = cmor_addRIPF(ctmp);
-    if(ierr) {
-        cmor_pop_traceback(  );
-        return(ierr);
-    }
+    ierr += cmor_addVersion();
+    ierr += cmor_addRIPF(ctmp);
 
 /* -------------------------------------------------------------------- */
 /*    Make sure that variable_id is set Global Attributes and for       */
@@ -4180,7 +4014,7 @@ int cmor_write( int var_id, void *data, char type,
 /*      here we check that the variable actually has all                */
 /*      the required attributes set                                     */
 /* -------------------------------------------------------------------- */
-    cmor_has_required_variable_attributes( var_id );
+    ierr += cmor_has_required_variable_attributes( var_id );
 
 /* -------------------------------------------------------------------- */
 /*  Do we have associated variables (z_factors)?                        */
@@ -4207,7 +4041,7 @@ int cmor_write( int var_id, void *data, char type,
 	}
 
 
-       cmor_setGblAttr(var_id);
+    ierr += cmor_setGblAttr(var_id);
 
 /* -------------------------------------------------------------------- */
 /*      Figures out path                                                */
@@ -4228,11 +4062,17 @@ int cmor_write( int var_id, void *data, char type,
         }
 
 	if( CMOR_CREATE_SUBDIRECTORIES == 1 ) {
-	    cmor_CreateFromTemplate(nVarRefTblID, szPathTemplate, outname, "/");
+	    ierr += cmor_CreateFromTemplate(nVarRefTblID, szPathTemplate, outname, "/");
 	} else {
-	    cmor_CreateFromTemplate( nVarRefTblID, szPathTemplate, msg, "/");
+	    ierr += cmor_CreateFromTemplate( nVarRefTblID, szPathTemplate, msg, "/");
 	}
 
+    if( ierr != 0 ) {
+        sprintf( ctmp,
+                "Cannot continue until you fix the errors listed above: %d", ierr);
+        cmor_handle_error( ctmp, CMOR_CRITICAL );
+    }
+
 	ierr = cmor_mkdir(outname);
         if( (ierr != 0) && (errno != EEXIST ) ) {
             sprintf( ctmp,
@@ -4266,10 +4106,13 @@ int cmor_write( int var_id, void *data, char type,
 	        cmor_current_dataset.file_template,
 	        outname, "_");
 
+
 	strcat(outpath, outname);
 	strncpy(outname, outpath, CMOR_MAX_STRING);
 	strncpytrim(cmor_vars[var_id].base_path, outname, CMOR_MAX_STRING);
-
+    strcat(outname, "XXXXXX");
+    ierr = mkstemp(outname);
+    unlink(outname);
 /* -------------------------------------------------------------------- */
 /*      Add Process ID and a random number to filename                  */
 /* -------------------------------------------------------------------- */
@@ -4285,7 +4128,6 @@ int cmor_write( int var_id, void *data, char type,
 /*      Decides NetCDF mode                                             */
 /* -------------------------------------------------------------------- */
 	ncid = cmor_validateFilename(outname, var_id);
-
 /* -------------------------------------------------------------------- */
 /*      we closed and reopened the same test, in case we                */
 /*      were appending, in which case all declaration have              */
@@ -4343,7 +4185,7 @@ int cmor_write( int var_id, void *data, char type,
                 zfactors, nc_zfactors,nc_dim_af, &nzfactors);
 
 /* -------------------------------------------------------------------- */
-/*      Store the dimension id for reuse when writting                  */
+/*      Store the dimension id for reuse when writing                   */
 /*      over multiple call to cmor_write                                */
 /* -------------------------------------------------------------------- */
 	cmor_vars[var_id].time_nc_id = nc_vars[0];
@@ -4493,6 +4335,7 @@ void cmor_create_var_attributes(int var_id, int ncid, int ncafid,
     int nelts;
     int *int_list = NULL;
     int ics, icd, icdl;
+    int bChunk;
     cmor_add_traceback("cmor_create_var_attributes");
 /* -------------------------------------------------------------------- */
 /*      Creates attributes related to that variable                     */
@@ -4576,8 +4419,12 @@ void cmor_create_var_attributes(int var_id, int ncid, int ncafid,
 #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))) {
+		size_t nc_dim_chunking[cmor_vars[var_id].ndims];
+		bChunk = cmor_set_chunking(var_id, nVarRefTblID,
+				nc_dim_chunking);
+		if (bChunk != -1
+				&& (!((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) {
@@ -5064,10 +4911,10 @@ void cmor_create_var_attributes(int var_id, int ncid, int ncafid,
         int nRefAxTableID;
         int nRefAxisID;
 
+        j = cmor_vars[var_id].singleton_ids[i];
         nRefAxTableID = cmor_axes[j].ref_table_id;
         nRefAxisID = cmor_axes[j].ref_axis_id;
 
-        j = cmor_vars[var_id].singleton_ids[i];
         if (j != -1) {
             if (cmor_tables[nRefAxTableID].axes[nRefAxisID].type == 'c') {
                 ierr = nc_put_var_text(ncid, nc_singletons[i],
@@ -5206,7 +5053,7 @@ int cmor_CreateFromTemplate(int nVarRefTblID, char *template,
         szToken = strtok(NULL, "><");
     }
 /* -------------------------------------------------------------------- */
-/*     If the last character is the sepator delete it.                  */
+/*     If the last character is the separator delete it.                */
 /* -------------------------------------------------------------------- */
     if( strcmp( &szJoin[ strlen( szJoin ) - 1 ], separator ) == 0 ) {
         szJoin[ strlen( szJoin ) - 1 ] = '\0';
@@ -5247,6 +5094,9 @@ int cmor_addRIPF(char *variant) {
     int forcing_index;
     int reti;
     regex_t regex;
+    int ierr=0;
+    char szValue[CMOR_MAX_STRING];
+    char szVariant[CMOR_MAX_STRING];
 
     char msg[CMOR_MAX_STRING];
 
@@ -5264,9 +5114,8 @@ int cmor_addRIPF(char *variant) {
                     "Your realization_index \"%s\" is invalid. \n! "
                     "It cannot contains more than 4 digits. \n! ",
                     tmp );
-            cmor_handle_error( msg, CMOR_CRITICAL );
-            cmor_pop_traceback(  );
-            return(-1);
+            cmor_handle_error( msg, CMOR_NORMAL );
+            ierr+=-1;
 
         }
         reti = regexec(&regex, tmp , 0, NULL, 0);
@@ -5275,9 +5124,8 @@ int cmor_addRIPF(char *variant) {
                     "Your realization_index \"%s\" is invalid. \n! "
                     "It must contain only characters between 0 and 9 \n!",
                     tmp );
-            cmor_handle_error( msg, CMOR_CRITICAL );
-            cmor_pop_traceback(  );
-            return(-1);
+            cmor_handle_error( msg, CMOR_NORMAL );
+            ierr+=-1;
         }
 
         sscanf(tmp, "%d", &realization_index);
@@ -5294,9 +5142,8 @@ int cmor_addRIPF(char *variant) {
                     "Your initialization_index \"%s\" is invalid. \n! "
                     "It cannot contains more than 4 digits. \n! ",
                     tmp );
-            cmor_handle_error( msg, CMOR_CRITICAL );
-            cmor_pop_traceback(  );
-            return(-1);
+            cmor_handle_error( msg, CMOR_NORMAL );
+            ierr+=-1;
 
         }
         reti = regexec(&regex, tmp , 0, NULL, 0);
@@ -5305,9 +5152,9 @@ int cmor_addRIPF(char *variant) {
                     "Your initialization_index \"%s\" is invalid. \n! "
                     "It must contain only characters between 0 and 9 \n!",
                     tmp );
-            cmor_handle_error( msg, CMOR_CRITICAL );
-            cmor_pop_traceback(  );
-            return(-1);
+            cmor_handle_error( msg, CMOR_NORMAL );
+            ierr+=-1;
+
         }
         sscanf(tmp, "%d", &initialization_index);
         snprintf(tmp, CMOR_MAX_STRING, "i%d", initialization_index);
@@ -5324,9 +5171,9 @@ int cmor_addRIPF(char *variant) {
                     "Your physics_index \"%s\" is invalid. \n! "
                     "It cannot contains more than 4 digits. \n! ",
                     tmp );
-            cmor_handle_error( msg, CMOR_CRITICAL );
-            cmor_pop_traceback(  );
-            return(-1);
+            cmor_handle_error( msg, CMOR_NORMAL );
+            ierr+=-1;
+
 
         }
         reti = regexec(&regex, tmp , 0, NULL, 0);
@@ -5335,9 +5182,9 @@ int cmor_addRIPF(char *variant) {
                     "Your physics_index \"%s\" is invalid. \n! "
                     "It must contain only characters between 0 and 9 \n!",
                     tmp );
-            cmor_handle_error( msg, CMOR_CRITICAL );
-            cmor_pop_traceback(  );
-            return(-1);
+            cmor_handle_error( msg, CMOR_NORMAL );
+            ierr+=-1;
+
         }
         sscanf(tmp, "%d", &physics_index);
         snprintf(tmp, CMOR_MAX_STRING, "p%d", physics_index);
@@ -5353,9 +5200,9 @@ int cmor_addRIPF(char *variant) {
                     "Your forcing_index \"%s\" is invalid. \n! "
                     "It cannot contains more than 4 digits. \n! ",
                     tmp );
-            cmor_handle_error( msg, CMOR_CRITICAL );
-            cmor_pop_traceback(  );
-            return(-1);
+            cmor_handle_error( msg, CMOR_NORMAL );
+            ierr+=-1;
+
 
         }
         reti = regexec(&regex, tmp , 0, NULL, 0);
@@ -5364,9 +5211,9 @@ int cmor_addRIPF(char *variant) {
                     "Your forcing_index \"%s\" is invalid. \n! "
                     "It must contain only characters between 0 and 9 \n!",
                     tmp );
-            cmor_handle_error( msg, CMOR_CRITICAL );
-            cmor_pop_traceback(  );
-            return(-1);
+            cmor_handle_error( msg, CMOR_NORMAL );
+            ierr+=-1;
+
         }
         sscanf(tmp, "%d", &forcing_index);
 
@@ -5374,9 +5221,26 @@ int cmor_addRIPF(char *variant) {
         strncat(variant, tmp, CMOR_MAX_STRING - strlen(variant));
     }
     cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_VARIANT_LABEL, variant, 1);
+    cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_MEMBER_ID, variant, 1);
+
+    // append sub_experiment_id
+    if (cmor_has_cur_dataset_attribute(GLOBAL_ATT_SUB_EXPT_ID) ==0) {
+        cmor_get_cur_dataset_attribute(GLOBAL_ATT_SUB_EXPT_ID, szValue);
+        cmor_get_cur_dataset_attribute(GLOBAL_ATT_MEMBER_ID, szVariant);
+        if (strcmp(szValue, NONE) != 0) {
+            // not already in variant
+            if(strstr(szVariant, szValue) == NULL) {
+                strcat(szValue, "-");
+                strcat(szValue, szVariant);
+                cmor_set_cur_dataset_attribute_internal(
+                        GLOBAL_ATT_MEMBER_ID, szValue, 1);
+            }
+        }
+    }
+
     regfree(&regex);
     cmor_pop_traceback();
-    return(0);
+    return(ierr);
 
 }
 
@@ -5515,7 +5379,6 @@ int cmor_close_variable( int var_id, char *file_name, int *preserve ) {
 /* -------------------------------------------------------------------- */
 	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]].
@@ -5770,37 +5633,37 @@ int cmor_close_variable( int var_id, char *file_name, int *preserve ) {
 /* -------------------------------------------------------------------- */
 /*      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,\n! "
-		             "remove file or use CMOR_REPLACE or\n! "
-		             "CMOR_APPEND for CMOR_NETCDF_MODE value\n! "
-		             "in cmor_setup for convenience the file\n! "
-		             "you were trying to write has been saved\n! "
-		             "at: %s.copy",
-			      outname, outname );
-		} else {
-		    snprintf( msg, CMOR_MAX_STRING,
-			      "Output file ( %s ) already exists,\n! "
-		              "remove file or use CMOR_REPLACE or\n! "
-		              "CMOR_APPEND for CMOR_NETCDF_MODE value in\n! "
-		              "cmor_setup.",
-			      outname );
-		}
-		cmor_handle_error( msg, CMOR_CRITICAL );
-	    }
-	}
+            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,\n! "
+                                    "remove file or use CMOR_REPLACE or\n! "
+                                    "CMOR_APPEND for CMOR_NETCDF_MODE value\n! "
+                                    "in cmor_setup for convenience the file\n! "
+                                    "you were trying to write has been saved\n! "
+                                    "at: %s.copy", outname, outname);
+                } else {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "Output file ( %s ) already exists,\n! "
+                                    "remove file or use CMOR_REPLACE or\n! "
+                                    "CMOR_APPEND for CMOR_NETCDF_MODE value in\n! "
+                                    "cmor_setup.", outname);
+                }
+                ierr = fclose(fperr);
+                fperr=NULL;
+                cmor_handle_error(msg, CMOR_CRITICAL);
+            }
+        }
 	ierr = rename( cmor_vars[var_id].current_path, outname );
 	if( ierr != 0 ) {
 	    snprintf( msg, CMOR_MAX_STRING,
 		      "could not rename temporary file: %s to final file\n"
 	              "name: %s",
 		      cmor_vars[var_id].current_path, outname );
-	    // cmor_handle_error( msg, CMOR_CRITICAL );
+	     cmor_handle_error( msg, CMOR_CRITICAL );
 	}
 	if( file_name != NULL ) {
 	    strncpy( file_name, outname, CMOR_MAX_STRING );
@@ -5856,122 +5719,120 @@ int cmor_close_variable( int var_id, char *file_name, int *preserve ) {
 /************************************************************************/
 /*                             cmor_close()                             */
 /************************************************************************/
-int cmor_close( void ) {
-    int i,  j, k;
+int cmor_close(void) {
+    int i, j, k;
     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;
+    cmor_add_traceback("cmor_close");
+    cmor_is_setup();
+    if (output_logfile == NULL)
+        output_logfile = stderr;
 
-    for( i = 0; i < cmor_nvars + 1; i++ ) {
-	if( cmor_vars[i].initialized != -1 ) {
-	    if( cmor_vars[i].closed == 0 ) {
-	        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, table: %s) has been defined\n! "
-	              "but never initialized",
-		      cmor_vars[i].id, i,
-		      cmor_tables[cmor_vars[i].ref_table_id].szTable_id );
-	    cmor_handle_error( msg, CMOR_WARNING );
-	}
+    for (i = 0; i < cmor_nvars + 1; i++) {
+        if (cmor_vars[i].initialized != -1) {
+            if (cmor_vars[i].closed == 0) {
+                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, table: %s) has been defined\n! "
+                            "but never initialized", cmor_vars[i].id, i,
+                    cmor_tables[cmor_vars[i].ref_table_id].szTable_id);
+            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[j] );
-		cmor_tables[i].forcings[j] = NULL;
-	    }
-	    free( cmor_tables[i].forcings );
-	    cmor_tables[i].forcings = NULL;
-	    cmor_tables[i].nforcings = 0;
-	}
-        if(cmor_tables[i].CV != NULL) {
-            for(k=0; k< cmor_tables[i].CV->nbObjects; k++ ) {
-                if( &cmor_tables[i].CV[k] != NULL ) {
-                    cmor_CV_free( &cmor_tables[i].CV[k] );
+    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[j]);
+                cmor_tables[i].forcings[j] = NULL;
+            }
+            free(cmor_tables[i].forcings);
+            cmor_tables[i].forcings = NULL;
+            cmor_tables[i].nforcings = 0;
+        }
+        if (cmor_tables[i].CV != NULL) {
+            for (k = 0; k < cmor_tables[i].CV->nbObjects; k++) {
+                if (&cmor_tables[i].CV[k] != NULL) {
+                    cmor_CV_free(&cmor_tables[i].CV[k]);
                 }
             }
-            if(cmor_tables[i].CV != NULL ){
+            if (cmor_tables[i].CV != NULL) {
                 free(cmor_tables[i].CV);
-                cmor_tables[i].CV=NULL;
+                cmor_tables[i].CV = NULL;
             }
         }
 
     }
 
-    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;
-	}
+    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_nerrors != 0 || cmor_nwarnings != 0 ) ){
-	fprintf( output_logfile,
-		 "! ------\n! CMOR is now closed.\n! ------\n! "
-	         "During execution we encountered:\n! " );
+    if ((cmor_nerrors != 0 || cmor_nwarnings != 0)) {
+        fprintf(output_logfile, "! ------\n! CMOR is now closed.\n! ------\n! "
+                "During execution we encountered:\n! ");
 #ifdef COLOREDOUTPUT
-	fprintf( output_logfile, "%c[%d;%dm", 0X1B, 1, 34 );
+        fprintf( output_logfile, "%c[%d;%dm", 0X1B, 1, 34 );
 #endif
-	fprintf( output_logfile, "%3i Warning(s)", cmor_nwarnings );
+        fprintf(output_logfile, "%3i Warning(s)", cmor_nwarnings);
 #ifdef COLOREDOUTPUT
-	fprintf( output_logfile, "%c[%dm", 0X1B, 0 );
+        fprintf( output_logfile, "%c[%dm", 0X1B, 0 );
 #endif
-	fprintf( output_logfile, "\n! " );
+        fprintf(output_logfile, "\n! ");
 #ifdef COLOREDOUTPUT
-	fprintf( output_logfile, "%c[%d;%dm", 0X1B, 1, 31 );
+        fprintf( output_logfile, "%c[%d;%dm", 0X1B, 1, 31 );
 #endif
-	fprintf( output_logfile, "%3i Error(s)", cmor_nerrors );
+        fprintf(output_logfile, "%3i Error(s)", cmor_nerrors);
 #ifdef COLOREDOUTPUT
-	fprintf( output_logfile, "%c[%dm", 0X1B, 0 );
+        fprintf( output_logfile, "%c[%dm", 0X1B, 0 );
 #endif
-	fprintf( output_logfile,
-		 "\n! ------\n! Please review them.\n! ------\n! " );
-	cmor_nerrors   = 0;
-	cmor_nwarnings = 0;
+        fprintf(output_logfile,
+                "\n! ------\n! Please review them.\n! ------\n! \n");
+        cmor_nerrors = 0;
+        cmor_nwarnings = 0;
     } else {
-	fprintf( output_logfile,
-		 "\n! ------\n! All files were closed successfully. \n! ------\n! ");
+        fprintf(output_logfile,
+                "\n! ------\n! All files were closed successfully. \n! ------\n! \n");
     }
-    if( output_logfile != stderr ) {
-	fclose( output_logfile );
-	output_logfile = NULL;
+    if (output_logfile != stderr) {
+        fclose(output_logfile);
+        output_logfile = NULL;
     }
-    cmor_pop_traceback(  );
-    return( 0 );
+    cmor_pop_traceback();
+    return (0);
 }
 
 /************************************************************************/
diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c
index daba84c..ee4acd6 100644
--- a/Src/cmor_CV.c
+++ b/Src/cmor_CV.c
@@ -9,6 +9,15 @@
 #include "json_tokener.h"
 #include "arraylist.h"
 #include "libgen.h"
+
+extern void cdCompAdd( cdCompTime comptime,
+               double value,
+               cdCalenType calendar, cdCompTime * result );
+
+extern void cdCompAddMixed( cdCompTime ct,
+                double value, cdCompTime * result );
+
+
 /************************************************************************/
 /*                        cmor_CV_set_att()                             */
 /************************************************************************/
@@ -295,7 +304,7 @@ void cmor_CV_free(cmor_CV_def_t *CV) {
 /************************************************************************/
 /*                    cmor_CV_checkFurtherInfoURL()                     */
 /************************************************************************/
-void cmor_CV_checkFurtherInfoURL(int var_id){
+int cmor_CV_checkFurtherInfoURL(int nVarRefTblID){
     char szFurtherInfoURLTemplate[CMOR_MAX_STRING];
     char szFurtherInfoURL[CMOR_MAX_STRING];
     char copyURL[CMOR_MAX_STRING];
@@ -325,7 +334,7 @@ void cmor_CV_checkFurtherInfoURL(int var_id){
 /* -------------------------------------------------------------------- */
     szToken = strtok(szFurtherInfoURLTemplate, "<>");
     if( strcmp(szToken, cmor_current_dataset.furtherinfourl) == 0) {
-        return;
+        return(0);
     }
     strncpy(szFurtherInfoURLTemplate, cmor_current_dataset.furtherinfourl,
             CMOR_MAX_STRING);
@@ -334,13 +343,13 @@ void cmor_CV_checkFurtherInfoURL(int var_id){
 /* -------------------------------------------------------------------- */
     strcpy(copyURL, szFurtherInfoURLTemplate);
     baseURL = dirname(copyURL);
-    cmor_CreateFromTemplate( var_id, baseURL,
+    cmor_CreateFromTemplate( nVarRefTblID, baseURL,
             szFurtherInfoBaseURL, "/" );
 
     strcpy(copyURL, szFurtherInfoURLTemplate);
     fileURL = basename(copyURL);
 
-    cmor_CreateFromTemplate( var_id, fileURL,
+    cmor_CreateFromTemplate( nVarRefTblID, fileURL,
                              szFurtherInfoFileURL, "." );
 
     strncpy(szFurtherInfoURL, szFurtherInfoBaseURL, CMOR_MAX_STRING);
@@ -353,9 +362,9 @@ void cmor_CV_checkFurtherInfoURL(int var_id){
             cmor_get_cur_dataset_attribute(CV_INPUTFILENAME, CV_Filename);
             snprintf( msg, CMOR_MAX_STRING,
                     "The further info in attribute does not match "
-                    "the one created by CMIP6. \n! "
+                    "the one found in your Control Vocabulary(CV) File. \n! "
                     "We found \"%s\" and \n! "
-                    "CMIP6 requires \"%s\" \n! "
+                    "CV requires \"%s\" \n! "
 
                     "Check your Control Vocabulary file \"%s\".\n! ",
                     szValue,
@@ -364,6 +373,7 @@ void cmor_CV_checkFurtherInfoURL(int var_id){
 
             cmor_handle_error( msg, CMOR_WARNING );
             cmor_pop_traceback(  );
+            return(-1);
 
         }
 
@@ -371,6 +381,7 @@ void cmor_CV_checkFurtherInfoURL(int var_id){
     cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_FURTHERINFOURL,
             szFurtherInfoURL, 0);
     cmor_pop_traceback( );
+    return(0);
 }
 
 /************************************************************************/
@@ -384,7 +395,7 @@ int get_CV_Error(){
 /************************************************************************/
 /*                      cmor_CV_checkSourceType()                       */
 /************************************************************************/
-void cmor_CV_checkSourceType(cmor_CV_def_t *CV_exp, char *szExptID){
+int cmor_CV_checkSourceType(cmor_CV_def_t *CV_exp, char *szExptID){
     int nObjects;
     cmor_CV_def_t *CV_exp_attr;
     char szAddSourceType[CMOR_MAX_STRING];
@@ -400,7 +411,7 @@ void cmor_CV_checkSourceType(cmor_CV_def_t *CV_exp, char *szExptID){
     char *szTokenAdd;
     int nbSourceType;
     char *ptr;
-    int nbGoodType=0;
+    int nbGoodType;
     cmor_add_traceback("_CV_checkSourceType");
 
     szAddSourceType[0] = '\0';
@@ -408,7 +419,8 @@ void cmor_CV_checkSourceType(cmor_CV_def_t *CV_exp, char *szExptID){
     szAddSourceTypeCpy[0] = '\0';
     szReqSourceTypeCpy[0] = '\0';
     szSourceType[0] = '\0';
-
+    nbGoodType=0;
+    nbSourceType=-1;
     cmor_get_cur_dataset_attribute(CV_INPUTFILENAME, CV_Filename);
 
     szAddSourceType[0] = '\0';
@@ -447,7 +459,7 @@ void cmor_CV_checkSourceType(cmor_CV_def_t *CV_exp, char *szExptID){
             nbSourceType = 1;
         } else {
             cmor_pop_traceback();
-            return;
+            return(-1);
         }
         while ((ptr = strpbrk(ptr, " ")) != NULL) {
             nbSourceType++;
@@ -468,9 +480,9 @@ void cmor_CV_checkSourceType(cmor_CV_def_t *CV_exp, char *szExptID){
                             "Check your Control Vocabulary file \"%s\".\n! ",
                     szReqSourceTypeCpy, szSourceType, CV_Filename);
 
-            cmor_handle_error(msg, CMOR_CRITICAL);
+            cmor_handle_error(msg, CMOR_NORMAL);
             cmor_pop_traceback();
-            return;
+            return(-1);
         } else {
             nbGoodType++;
         }
@@ -498,21 +510,23 @@ void cmor_CV_checkSourceType(cmor_CV_def_t *CV_exp, char *szExptID){
                 "You source_type attribute contains invalid source types\n! "
                         "Your source type is set to \"%s\".  The required source types\n! "
                         "are \"%s\" and possible additional source types are \"%s\" \n! "
-                        "Check your Control Vocabulary file \"%s\".\n! %d, %d",
+                        "Check your Control Vocabulary file \"%s\".\n! ",
                 szSourceType, szReqSourceTypeCpy, szAddSourceTypeCpy,
-                CV_Filename, nbGoodType, nbSourceType);
-        cmor_handle_error(msg, CMOR_CRITICAL);
+                CV_Filename);
+        cmor_handle_error(msg, CMOR_NORMAL);
+        cmor_pop_traceback();
+        return(-1);
     }
 
     cmor_pop_traceback(  );
-    return;
+    return(0);
 
 
 }
 /************************************************************************/
 /*                      cmor_CV_checkSourceID()                         */
 /************************************************************************/
-void cmor_CV_checkSourceID(cmor_CV_def_t *CV){
+int cmor_CV_checkSourceID(cmor_CV_def_t *CV){
     cmor_CV_def_t *CV_source_ids;
     cmor_CV_def_t *CV_source_id = NULL;
 
@@ -522,7 +536,8 @@ void cmor_CV_checkSourceID(cmor_CV_def_t *CV){
     char msg[CMOR_MAX_STRING];
     char CV_Filename[CMOR_MAX_STRING];
     int rc;
-    int i,j;
+    int i;
+	int j=0;
 
     cmor_is_setup(  );
     cmor_add_traceback("_CV_checkSourceID");
@@ -538,9 +553,9 @@ void cmor_CV_checkSourceID(cmor_CV_def_t *CV){
                 "your Control Vocabulary file.(%s)\n! ",
                 CV_Filename);
 
-        cmor_handle_error( msg, CMOR_CRITICAL );
+        cmor_handle_error( msg, CMOR_NORMAL );
         cmor_pop_traceback(  );
-        return;
+        return(-1);
     }
 
 
@@ -552,8 +567,9 @@ void cmor_CV_checkSourceID(cmor_CV_def_t *CV){
                 "See Control Vocabulary JSON file.(%s)\n! ",
                 GLOBAL_ATT_SOURCE_ID,
                 CV_Filename);
-        cmor_handle_error( msg, CMOR_CRITICAL );
+        cmor_handle_error( msg, CMOR_NORMAL );
         cmor_pop_traceback(  );
+        return(-1);
     }
 
     // Validate  source_id
@@ -574,7 +590,7 @@ void cmor_CV_checkSourceID(cmor_CV_def_t *CV){
             }
             if( j == CV_source_id->nbObjects) {
                 snprintf(msg, CMOR_MAX_STRING,
-                        "Could not find %s string in experiment_id section.\n! \n! \n!"
+                        "Could not find %s string in source_id section.\n! \n! \n! "
                         "See Control Vocabulary JSON file. (%s)\n! ",
                                 CV_KEY_SOURCE_LABEL,
                                 CV_Filename);
@@ -608,7 +624,8 @@ void cmor_CV_checkSourceID(cmor_CV_def_t *CV){
                 "a new source.   ",
                 szSource_ID, CV_Filename);
 
-        cmor_handle_error(msg, CMOR_CRITICAL);
+        cmor_handle_error(msg, CMOR_NORMAL);
+        return(-1);
     }
     // Set/replace attribute.
     cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_SOURCE_ID,
@@ -617,13 +634,635 @@ void cmor_CV_checkSourceID(cmor_CV_def_t *CV){
             CV_source_id->oValue[j].szValue,1);
 
     cmor_pop_traceback();
-    return;
+    return(0);
+}
+
+/************************************************************************/
+/*                       CV_VerifyNBElement()                           */
+/************************************************************************/
+int CV_VerifyNBElement(cmor_CV_def_t *CV) {
+	char msg[CMOR_MAX_STRING];
+	char CV_Filename[CMOR_MAX_STRING];
+    cmor_get_cur_dataset_attribute(CV_INPUTFILENAME, CV_Filename);
+    cmor_add_traceback("_CV_VerifyNBElement");
+//    printf("**** CV->key: %s\n", CV->key);
+//    printf("**** CV->anElement: %d\n", CV->anElements);
+//    printf("**** CV->asValue: %s\n", CV->aszValue[0]);
+//    printf("**** CV->szValue: %s\n", CV->szValue);
+
+	if( CV->anElements >1 ){
+        snprintf( msg, CMOR_MAX_STRING,
+                "Your %s has more than 1 element\n! "
+                "only the first one will be used\n! "
+        		"Check your Control Vocabulary file \"%s\".\n! ",
+                CV->key, CV_Filename);
+        cmor_handle_error( msg, CMOR_NORMAL );
+        cmor_pop_traceback(  );
+        return(1);
+	} else if (CV->anElements == -1) {
+        snprintf( msg, CMOR_MAX_STRING,
+                "Your %s has more than 0 element\n! "
+        		"Check your Control Vocabulary file \"%s\".\n! ",
+                CV->key, CV_Filename);
+
+        cmor_handle_error( msg, CMOR_NORMAL );
+        cmor_pop_traceback(  );
+        return(1);
+	}
+    cmor_pop_traceback(  );
+	return(0);
+}
+/************************************************************************/
+/*                       CV_CompareNoParent()                           */
+/************************************************************************/
+int CV_CompareNoParent(char *szKey) {
+	char msg[CMOR_MAX_STRING];
+	char szValue[CMOR_MAX_STRING];
+    cmor_add_traceback("_CV_CompareNoParent");
+
+	if (cmor_has_cur_dataset_attribute(szKey) ==0) {
+		cmor_get_cur_dataset_attribute(szKey, szValue);
+		if (strcmp(szValue, NO_PARENT) != 0) {
+			snprintf(msg, CMOR_MAX_STRING,
+					"Your input attribute %s with value \"%s\" \n! "
+							"will be replaced with value \"%s\".\n! ", szKey,
+					szValue, NO_PARENT);
+			cmor_set_cur_dataset_attribute_internal(szKey, NO_PARENT,
+					1);
+			cmor_handle_error(msg, CMOR_WARNING);
+		    cmor_pop_traceback(  );
+			return (-1);
+		}
+	}
+    cmor_pop_traceback(  );
+	return (0);
+}
+/************************************************************************/
+/*                            InArray()                                 */
+/************************************************************************/
+int CV_IsStringInArray(cmor_CV_def_t *CV, char *szValue) {
+    int nElements;
+    int i;
+    int found=0;
+    cmor_add_traceback("_CV_InArray");
+    nElements = CV->anElements;
+    for (i = 0; i < nElements; i++) {
+        if (strcmp(CV->aszValue[i], szValue) == 0) {
+            found=1;
+            break;
+        }
+    }
+    cmor_pop_traceback(  );
+    return(found);
+}
+
+/************************************************************************/
+/*                     cmor_CV_checkSubExpID()                          */
+/************************************************************************/
+int cmor_CV_checkSubExpID(cmor_CV_def_t *CV) {
+    cmor_CV_def_t *CV_experiment_id;
+    cmor_CV_def_t *CV_experiment;
+    cmor_CV_def_t *CV_experiment_sub_exp_id;
+    cmor_CV_def_t *CV_sub_experiment_id;
+    cmor_CV_def_t *CV_sub_experiment_id_key;
+
+    char szExperiment_ID[CMOR_MAX_STRING];
+    char CV_Filename[CMOR_MAX_STRING];
+    char szSubExptID[CMOR_MAX_STRING];
+    char szValue[CMOR_MAX_STRING];
+    char szVariant[CMOR_MAX_STRING];
+
+    char msg[CMOR_MAX_STRING];
+
+    cmor_add_traceback("_CV_checkSubExperiment");
+    // Initialize variables
+    cmor_get_cur_dataset_attribute(CV_INPUTFILENAME, CV_Filename);
+    cmor_get_cur_dataset_attribute(GLOBAL_ATT_EXPERIMENTID, szExperiment_ID);
+    // Look for sub_experiment_id section
+    CV_sub_experiment_id = cmor_CV_rootsearch(CV, CV_KEY_SUB_EXPERIMENT_ID);
+    if (CV_sub_experiment_id == NULL) {
+        snprintf(msg, CMOR_MAX_STRING,
+                "Your \"sub_experiment_id\" key could not be found in\n! "
+                "your Control Vocabulary file.(%s)\n! ", CV_Filename);
+        cmor_handle_error(msg, CMOR_NORMAL);
+        cmor_pop_traceback();
+        return (-1);
+    }
+
+    // Look for experiment_id section
+    CV_experiment_id = cmor_CV_rootsearch(CV, CV_KEY_EXPERIMENT_ID);
+    if (CV_experiment_id == NULL) {
+        snprintf(msg, CMOR_MAX_STRING,
+                "Your \"experiment_id\" key could not be found in\n! "
+                "your Control Vocabulary file.(%s)\n! ", CV_Filename);
+        cmor_handle_error(msg, CMOR_NORMAL);
+        cmor_pop_traceback();
+        return (-1);
+    }
+    // Get specified experiment
+    CV_experiment = cmor_CV_search_child_key(CV_experiment_id, szExperiment_ID);
+    if (CV_experiment == NULL) {
+        snprintf(msg, CMOR_MAX_STRING,
+                "Your experiment_id \"%s\" defined in your input file\n! "
+                "could not be found in your Control Vocabulary file.(%s)\n! ",
+                szExperiment_ID, CV_Filename);
+        cmor_handle_error(msg, CMOR_NORMAL);
+        cmor_pop_traceback();
+        return (-1);
+    }
+    // sub_experiment_id
+    CV_experiment_sub_exp_id = cmor_CV_search_child_key(CV_experiment,
+            GLOBAL_ATT_SUB_EXPT_ID);
+    if (CV_experiment_sub_exp_id == NULL) {
+        snprintf(msg, CMOR_MAX_STRING,
+                "Your \"%s\" defined in your input file\n! "
+                "could not be found in your Control Vocabulary file.(%s)\n! ",
+                GLOBAL_ATT_SUB_EXPT_ID, CV_Filename);
+        cmor_handle_error(msg, CMOR_NORMAL);
+        cmor_pop_traceback();
+        return (-1);
+    }
+    // Check sub_experiment_id value
+    if (cmor_has_cur_dataset_attribute(GLOBAL_ATT_SUB_EXPT_ID) != 0) {
+        // sub_experiment_id not found and set to "none"
+        if (CV_IsStringInArray(CV_experiment_sub_exp_id, NONE)) {
+            snprintf(msg, CMOR_MAX_STRING,
+                    "Your input attribute \"%s\" was not defined and \n! "
+                    "will be set to \"%s\"\n! "
+                    "as defined in your Control Vocabulary file \"%s\".\n! ",
+                    GLOBAL_ATT_SUB_EXPT_ID, NONE, CV_Filename);
+            cmor_handle_error(msg, CMOR_WARNING);
+            cmor_set_cur_dataset_attribute_internal( GLOBAL_ATT_SUB_EXPT_ID,
+                    NONE, 1);
+        } else {
+            // can't be "none".
+            snprintf(msg, CMOR_MAX_STRING,
+                    "Your input attribute \"%s\" is not defined properly \n! "
+                    "for your experiment \"%s\" \n! \n! "
+                    "See Control Vocabulary JSON file.(%s)\n! ",
+                    GLOBAL_ATT_SUB_EXPT_ID, szExperiment_ID, CV_Filename);
+            cmor_handle_error(msg, CMOR_NORMAL);
+            cmor_pop_traceback();
+            return (-1);
+
+        }
+
+    } else {
+        // sub_experiment_id has been defined!
+        cmor_get_cur_dataset_attribute(GLOBAL_ATT_SUB_EXPT_ID, szSubExptID);
+        // cannot be found in CV
+        if (!CV_IsStringInArray(CV_experiment_sub_exp_id, szSubExptID)) {
+            // only 1 element in list set it!
+            if (CV_experiment_sub_exp_id->anElements == 1) {
+                snprintf(msg, CMOR_MAX_STRING,
+                        "Your input attribute \"%s\" defined as \"%s\" "
+                        "will be replaced with \n! "
+                        "\"%s\" as defined in your Control Vocabulary file.\n! ",
+                        GLOBAL_ATT_SUB_EXPT_ID, szSubExptID,
+                        CV_experiment_sub_exp_id->aszValue[0]);
+                cmor_handle_error(msg, CMOR_WARNING);
+                cmor_set_cur_dataset_attribute_internal( GLOBAL_ATT_SUB_EXPT_ID,
+                        CV_experiment_sub_exp_id->aszValue[0], 1);
+
+            } else {
+                // too many options.
+                snprintf(msg, CMOR_MAX_STRING,
+                        "Your input attribute \"%s\" is not defined properly \n! "
+                        "for your experiment \"%s\"\n! "
+                        "There is more than 1 option for this sub_experiment.\n! "
+                        "See Control Vocabulary JSON file.(%s)\n! ",
+                        GLOBAL_ATT_SUB_EXPT_ID, szExperiment_ID, CV_Filename);
+                cmor_handle_error(msg, CMOR_NORMAL);
+                cmor_pop_traceback();
+                return (-1);
+            }
+        }
+    }
+    // sub_experiment has not been defined!
+    if (cmor_has_cur_dataset_attribute(GLOBAL_ATT_SUB_EXPT) != 0) {
+        snprintf(msg, CMOR_MAX_STRING,
+                "Your input attribute \"%s\" was not defined and \n! "
+                "will be set to \"%s\" \n! "
+                "as defined in your Control Vocabulary file \"%s\".\n! ",
+                GLOBAL_ATT_SUB_EXPT, NONE, CV_Filename);
+        cmor_handle_error(msg, CMOR_WARNING);
+        cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_SUB_EXPT,
+                NONE, 1);
+    } else {
+        cmor_get_cur_dataset_attribute(GLOBAL_ATT_SUB_EXPT, szValue);
+        CV_sub_experiment_id_key = cmor_CV_search_child_key(
+                CV_sub_experiment_id, szSubExptID);
+        if (CV_sub_experiment_id_key == NULL) {
+            snprintf(msg, CMOR_MAX_STRING,
+                    "Your \"sub_experiment\" text describing  \n! "
+                    "sub_experiment_id \"%s\" could not be found in \n! "
+                    "your Control Vocabulary file.(%s)\n! ", szSubExptID, CV_Filename);
+            cmor_handle_error(msg, CMOR_NORMAL);
+            cmor_pop_traceback();
+            return (-1);
+        }
+
+        if (strcmp(szValue, CV_sub_experiment_id_key->szValue) != 0) {
+            snprintf(msg, CMOR_MAX_STRING,
+                    "Your input attribute \"%s\" defined as \"%s\" "
+                    "will be replaced with \n! "
+                    "\"%s\" as defined in your Control Vocabulary file.\n! ",
+                    GLOBAL_ATT_SUB_EXPT, szValue, CV_sub_experiment_id_key->szValue);
+            cmor_handle_error(msg, CMOR_WARNING);
+            cmor_set_cur_dataset_attribute_internal( GLOBAL_ATT_SUB_EXPT,
+                    CV_sub_experiment_id_key->szValue, 1);
+        }
+    }
+    // append sub-experiment_id
+    if (cmor_has_cur_dataset_attribute(GLOBAL_ATT_SUB_EXPT_ID) ==0) {
+        cmor_get_cur_dataset_attribute(GLOBAL_ATT_SUB_EXPT_ID, szValue);
+        cmor_get_cur_dataset_attribute(GLOBAL_ATT_MEMBER_ID, szVariant);
+
+        if (strcmp(szValue, NONE) != 0) {
+            // not already in variant
+            if(strstr(szVariant, szValue) == NULL) {
+                strcat(szValue, "-");
+                strcat(szValue, szVariant);
+                cmor_set_cur_dataset_attribute_internal(
+                        GLOBAL_ATT_MEMBER_ID, szValue, 1);
+            }
+        }
+    }
+
+    cmor_pop_traceback();
+    return (0);
+}
+/************************************************************************/
+/*                    cmor_CV_checkParentExpID()                        */
+/************************************************************************/
+int cmor_CV_checkParentExpID(cmor_CV_def_t *CV) {
+    cmor_CV_def_t *CV_experiment_ids;
+    cmor_CV_def_t *CV_experiment;
+    cmor_CV_def_t *CV_parent_exp_id;
+    cmor_CV_def_t *CV_parent_activity_id;
+    cmor_CV_def_t *CV_source_id;
+    cmor_CV_def_t *CV_source;
+
+    char szValue[CMOR_MAX_STRING];
+    char szParentExpValue[CMOR_MAX_STRING];
+    char szExperiment_ID[CMOR_MAX_STRING];
+    char szBranchMethod[CMOR_MAX_STRING];
+    char szBranchTimeInChild[CMOR_MAX_STRING];
+    char szBranchTimeInParent[CMOR_MAX_STRING];
+    double dBranchTimeInChild;
+    double dBranchTimeInParent;
+    char szParentSourceId[CMOR_MAX_STRING];
+    char szParentTimeUnits[CMOR_MAX_STRING];
+    char szParentVariantLabel[CMOR_MAX_STRING];
+    regex_t regex;
+
+    char CV_Filename[CMOR_MAX_STRING];
+    char msg[CMOR_MAX_STRING];
+    int rc;
+
+    szParentExpValue[0] = '\0';
+    cmor_add_traceback("_CV_checkParentExpID");
+
+    cmor_get_cur_dataset_attribute(CV_INPUTFILENAME, CV_Filename);
+    cmor_get_cur_dataset_attribute(GLOBAL_ATT_EXPERIMENTID, szExperiment_ID);
+    // Look for experiment_id section
+    CV_experiment_ids = cmor_CV_rootsearch(CV, CV_KEY_EXPERIMENT_ID);
+    if (CV_experiment_ids == NULL) {
+        snprintf(msg, CMOR_MAX_STRING,
+                "Your \"experiment_id\" key could not be found in\n! "
+                        "your Control Vocabulary file.(%s)\n! ", CV_Filename);
+
+        cmor_handle_error(msg, CMOR_NORMAL);
+        cmor_pop_traceback();
+        return (-1);
+    }
+    // Get specified experiment
+    CV_experiment = cmor_CV_search_child_key(CV_experiment_ids,
+            szExperiment_ID);
+    if (CV_experiment == NULL) {
+        snprintf(msg, CMOR_MAX_STRING,
+                "Your experiment_id \"%s\" defined in your input file\n! "
+                        "could not be found in your Control Vocabulary file.(%s)\n! ",
+                szExperiment_ID, CV_Filename);
+        cmor_handle_error(msg, CMOR_NORMAL);
+        cmor_pop_traceback();
+        return (-1);
+    }
+
+    // Do we have a parent_experiment_id?
+    if (cmor_has_cur_dataset_attribute(GLOBAL_ATT_PARENT_EXPT_ID) != 0) {
+        CV_parent_exp_id = cmor_CV_search_child_key(CV_experiment,
+                PARENT_ACTIVITY_ID);
+        if (CV_IsStringInArray(CV_parent_exp_id, NO_PARENT)) {
+            cmor_pop_traceback();
+            return (0);
+        } else {
+            snprintf(msg, CMOR_MAX_STRING,
+                    "Your input attribute \"%s\" is not defined properly \n! "
+                            "for your experiment \"%s\"\n!\n! "
+                            "See Control Vocabulary JSON file.(%s)\n! ",
+                    GLOBAL_ATT_PARENT_EXPT_ID, CV_experiment->key, CV_Filename);
+            cmor_handle_error(msg, CMOR_CRITICAL);
+        }
+    }
+    // The provider defined a parent experiment.
+    if (cmor_has_cur_dataset_attribute(GLOBAL_ATT_PARENT_EXPT_ID) == 0) {
+        cmor_get_cur_dataset_attribute(GLOBAL_ATT_PARENT_EXPT_ID,
+                szParentExpValue);
+        // "no parent" case
+        if (strcmp(szParentExpValue, NO_PARENT) == 0) {
+            CV_CompareNoParent(PARENT_ACTIVITY_ID);
+            CV_CompareNoParent(PARENT_MIP_ERA);
+            CV_CompareNoParent(PARENT_SOURCE_ID);
+            CV_CompareNoParent(PARENT_TIME_UNITS);
+            CV_CompareNoParent(PARENT_VARIANT_LABEL);
+            CV_CompareNoParent(BRANCH_METHOD);
+            // Do we have branch_time_in_child?
+            if (cmor_has_cur_dataset_attribute(BRANCH_TIME_IN_CHILD) == 0) {
+                cmor_get_cur_dataset_attribute(BRANCH_TIME_IN_CHILD,
+                        szBranchTimeInChild);
+                rc = sscanf(szBranchTimeInChild, "%lf", &dBranchTimeInChild);
+                if ((rc == 0) || (rc == EOF)) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "Your input attribute branch_time_in_child \"%s\" "
+                                    "is not a double floating point \n! ",
+                            szBranchTimeInChild);
+                    cmor_handle_error(msg, CMOR_WARNING);
+                }
+
+            }
+            // Do we have branch_time_in_parent?
+            if (cmor_has_cur_dataset_attribute(BRANCH_TIME_IN_PARENT) == 0) {
+                cmor_get_cur_dataset_attribute(BRANCH_TIME_IN_PARENT, szValue);
+                if (strcmp(szValue, "0.0") != 0) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "Your input attribute %s %s \n! "
+                                    "has been replaced with 0.0 \n! ",
+                            BRANCH_TIME_IN_PARENT, szValue);
+                    cmor_set_cur_dataset_attribute_internal(
+                    BRANCH_TIME_IN_PARENT, "0.0", 1);
+
+                    cmor_handle_error(msg, CMOR_WARNING);
+                }
+            }
+
+            cmor_pop_traceback();
+            return (0);
+        } else {
+            // real parent case
+            // Parent Activity ID
+            if (cmor_has_cur_dataset_attribute(PARENT_ACTIVITY_ID) != 0) {
+                snprintf(msg, CMOR_MAX_STRING,
+                        "Your input attribute \"%s\" is not defined properly \n! "
+                                "for your experiment \"%s\"\n!\n! "
+                                "See Control Vocabulary JSON file.(%s)\n! ",
+                        PARENT_ACTIVITY_ID, CV_experiment->key, CV_Filename);
+                cmor_handle_error(msg, CMOR_CRITICAL);
+
+            } else {
+                cmor_get_cur_dataset_attribute(PARENT_ACTIVITY_ID, szValue);
+                CV_parent_activity_id = cmor_CV_search_child_key(CV_experiment,
+                PARENT_ACTIVITY_ID);
+                if (CV_IsStringInArray(CV_parent_activity_id, szValue) == 0) {
+                    if (CV_parent_activity_id->anElements == 1) {
+                        snprintf(msg, CMOR_MAX_STRING,
+                                "Your input attribute parent_activity_id \"%s\" defined as \"%s\" "
+                                        "will be replaced with \n! "
+                                        "\"%s\" as defined in your Control Vocabulary file.\n! ",
+                                PARENT_ACTIVITY_ID, szValue,
+                                CV_parent_activity_id->aszValue[0]);
+                        cmor_handle_error(msg, CMOR_WARNING);
+                        cmor_set_cur_dataset_attribute_internal(
+                                PARENT_ACTIVITY_ID,
+                                CV_parent_activity_id->aszValue[0], 1);
+
+                    } else {
+                        snprintf(msg, CMOR_MAX_STRING,
+                                "Your input attribute \"%s\" is not defined properly \n! "
+                                        "for your experiment \"%s\"\n! "
+                                        "There is more than 1 option for this experiment.\n! "
+                                        "See Control Vocabulary JSON file.(%s)\n! ",
+                                PARENT_ACTIVITY_ID, CV_experiment->key,
+                                CV_Filename);
+                        cmor_handle_error(msg, CMOR_WARNING);
+                    }
+                }
+            }
+            // branch method
+            if (cmor_has_cur_dataset_attribute(BRANCH_METHOD)) {
+                snprintf(msg, CMOR_MAX_STRING,
+                        "Your input attribute \"%s\" is not defined \n! "
+                                "properly for %s \n! "
+                                "Please describe the spin-up procedure as defined \n! "
+                                "in CMIP6 documentations.\n! ",
+                        BRANCH_METHOD, szExperiment_ID);
+                cmor_handle_error(msg, CMOR_CRITICAL);
+
+            } else {
+                cmor_get_cur_dataset_attribute(BRANCH_METHOD, szBranchMethod);
+                if (strlen(szBranchMethod) == 0) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "Your input attribute %s is an empty string\n! "
+                                    "Please describe the spin-up procedure as defined \n! "
+                                    "in CMIP6 documentations.\n! ",
+                            BRANCH_METHOD);
+                }
+            }
+            // branch_time_in_child
+            if (cmor_has_cur_dataset_attribute(BRANCH_TIME_IN_CHILD)) {
+                snprintf(msg, CMOR_MAX_STRING,
+                        "Your input attribute \"%s\" is not defined \n! "
+                                "properly for %s \n! "
+                                "Please refer to the CMIP6 documentations.\n! ",
+                        BRANCH_TIME_IN_CHILD, szExperiment_ID);
+                cmor_handle_error(msg, CMOR_CRITICAL);
+
+            } else {
+                cmor_get_cur_dataset_attribute(BRANCH_TIME_IN_CHILD,
+                        szBranchTimeInChild);
+                rc = sscanf(szBranchTimeInChild, "%lf", &dBranchTimeInChild);
+                if ((rc == 0) || (rc == EOF)) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "Your input attribute branch_time_in_child \"%s\" "
+                                    "is not a double floating point \n! ",
+                            szBranchTimeInChild);
+                    cmor_handle_error(msg, CMOR_CRITICAL);
+                }
+            }
+
+            // branch_time_in_parent
+            if (cmor_has_cur_dataset_attribute(BRANCH_TIME_IN_PARENT)) {
+                snprintf(msg, CMOR_MAX_STRING,
+                        "Your input attribute \"%s\" is not defined \n! "
+                                "properly for %s \n! "
+                                "Please refer to the CMIP6 documentations.\n! ",
+                        BRANCH_TIME_IN_PARENT, szExperiment_ID);
+                cmor_handle_error(msg, CMOR_CRITICAL);
+
+            } else {
+                cmor_get_cur_dataset_attribute(BRANCH_TIME_IN_PARENT,
+                        szBranchTimeInParent);
+                rc = sscanf(szBranchTimeInParent, "%lf", &dBranchTimeInParent);
+                if ((rc == 0) || (rc == EOF)) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "Your input attribute branch_time_in_parent \"%s\" "
+                                    "is not a double floating point \n! ",
+                            szBranchTimeInParent);
+                    cmor_handle_error(msg, CMOR_CRITICAL);
+                }
+            }
+            // parent_time_units
+            if (cmor_has_cur_dataset_attribute(PARENT_TIME_UNITS)) {
+                snprintf(msg, CMOR_MAX_STRING,
+                        "Your input attribute \"%s\" is not defined \n! "
+                                "properly for %s \n! "
+                                "Please refer to the CMIP6 documentations.\n! ",
+                        PARENT_TIME_UNITS, szExperiment_ID);
+                cmor_handle_error(msg, CMOR_CRITICAL);
+
+            } else {
+                char template[CMOR_MAX_STRING];
+                int reti;
+                cmor_get_cur_dataset_attribute(PARENT_TIME_UNITS,
+                        szParentTimeUnits);
+                strcpy(template,
+                        "^days[[:space:]]since[[:space:]][[:digit:]]\\{4,4\\}-[[:digit:]]\\{1,2\\}-[[:digit:]]\\{1,2\\}");
+
+                reti = regcomp(&regex, template, 0);
+                if (reti) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "You regular expression \"%s\" is invalid. \n! "
+                                    "Please refer to the CMIP6 documentations.\n! ",
+                            template);
+                    regfree(&regex);
+                    cmor_handle_error(msg, CMOR_NORMAL);
+                    cmor_pop_traceback();
+                    return (-1);
+                }
+/* -------------------------------------------------------------------- */
+/*        Execute regular expression                                    */
+/* -------------------------------------------------------------------- */
+                reti = regexec(&regex, szParentTimeUnits, 0, NULL, 0);
+                if (reti == REG_NOMATCH) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "Your  \"%s\" set to \"%s\" is invalid. \n! "
+                                    "Please refer to the CMIP6 documentations.\n! ",
+                            PARENT_TIME_UNITS, szParentTimeUnits);
+                    regfree(&regex);
+                    cmor_handle_error(msg, CMOR_NORMAL);
+                }
+                regfree(&regex);
+            }
+            // parent_variant_label
+            if (cmor_has_cur_dataset_attribute(PARENT_VARIANT_LABEL)) {
+                snprintf(msg, CMOR_MAX_STRING,
+                        "Your input attribute \"%s\" is not defined \n! "
+                                "properly for %s \n! "
+                                "Please refer to the CMIP6 documentations.\n! ",
+                        PARENT_VARIANT_LABEL, szExperiment_ID);
+                cmor_handle_error(msg, CMOR_CRITICAL);
+
+            } else {
+                char template[CMOR_MAX_STRING];
+                int reti;
+                cmor_get_cur_dataset_attribute(PARENT_VARIANT_LABEL,
+                        szParentVariantLabel);
+                strcpy(template,
+                        "^r[[:digit:]]\\{1,\\}i[[:digit:]]\\{1,\\}p[[:digit:]]\\{1,\\}f[[:digit:]]\\{1,\\}$");
+
+                reti = regcomp(&regex, template, 0);
+                if (reti) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "You regular expression \"%s\" is invalid. \n! "
+                                    "Please refer to the CMIP6 documentations.\n! ",
+                            template);
+                    regfree(&regex);
+                    cmor_handle_error(msg, CMOR_NORMAL);
+                }
+/* -------------------------------------------------------------------- */
+/*        Execute regular expression                                    */
+/* -------------------------------------------------------------------- */
+                reti = regexec(&regex, szParentVariantLabel, 0, NULL, 0);
+                if (reti == REG_NOMATCH) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "You  \"%s\" set to \"%s\" is invalid. \n! "
+                                    "Please refer to the CMIP6 documentations.\n! ",
+                            PARENT_VARIANT_LABEL, szParentVariantLabel);
+                    regfree(&regex);
+                    cmor_handle_error(msg, CMOR_NORMAL);
+                }
+                regfree(&regex);
+            }
+            // parent_source_id
+            if (cmor_has_cur_dataset_attribute(PARENT_SOURCE_ID) != 0) {
+                snprintf(msg, CMOR_MAX_STRING,
+                        "Your input attribute \"%s\" is not defined \n! "
+                                "properly for %s \n! "
+                                "Please refer to the CMIP6 documentations.\n! ",
+                        PARENT_SOURCE_ID, szExperiment_ID);
+                cmor_handle_error(msg, CMOR_NORMAL);
+
+            } else {
+                cmor_get_cur_dataset_attribute(PARENT_SOURCE_ID,
+                        szParentSourceId);
+                CV_source_id = cmor_CV_rootsearch(CV, CV_KEY_SOURCE_IDS);
+                if (CV_source_id == NULL) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "Your \"source_id\" key could not be found in\n! "
+                                    "your Control Vocabulary file.(%s)\n! ",
+                            CV_Filename);
+
+                    cmor_handle_error(msg, CMOR_NORMAL);
+                    cmor_pop_traceback();
+                    return (-1);
+                }
+                // Get specified experiment
+                cmor_get_cur_dataset_attribute(PARENT_SOURCE_ID,
+                        szParentSourceId);
+                CV_source = cmor_CV_search_child_key(CV_source_id,
+                        szParentSourceId);
+                if (CV_source == NULL) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "Your parent_source_id \"%s\" defined in your input file\n! "
+                                    "could not be found in your Control Vocabulary file.(%s)\n! ",
+                            szParentSourceId, CV_Filename);
+                    cmor_handle_error(msg, CMOR_NORMAL);
+                    cmor_pop_traceback();
+                    return (-1);
+                }
+            }
+            // parent_mip_era
+            if (cmor_has_cur_dataset_attribute(PARENT_MIP_ERA) != 0) {
+                snprintf(msg, CMOR_MAX_STRING,
+                        "Your input attribute \"%s\" is not defined \n! "
+                                "properly for %s \n! "
+                                "Please refer to the CMIP6 documentations.\n! ",
+                        PARENT_MIP_ERA, szExperiment_ID);
+                cmor_handle_error(msg, CMOR_CRITICAL);
+
+            } else {
+                cmor_get_cur_dataset_attribute(PARENT_MIP_ERA, szValue);
+                if (strcmp(CMIP6, szValue) != 0) {
+                    snprintf(msg, CMOR_MAX_STRING,
+                            "Your input attribute \"%s\" defined as \"%s\" "
+                                    "will be replaced with \n! "
+                                    "\"%s\" as defined in your Control Vocabulary file.\n! ",
+                            PARENT_MIP_ERA, szValue, CMIP6);
+                    cmor_handle_error(msg, CMOR_WARNING);
+                    cmor_set_cur_dataset_attribute_internal(
+                    PARENT_MIP_ERA, szValue, 1);
+                }
+            }
+        }
+    }
+    cmor_pop_traceback();
+    return (0);
 }
 
 /************************************************************************/
 /*                     cmor_CV_checkExperiment()                        */
 /************************************************************************/
-void cmor_CV_checkExperiment( cmor_CV_def_t *CV){
+int cmor_CV_checkExperiment( cmor_CV_def_t *CV){
     cmor_CV_def_t *CV_experiment_ids;
     cmor_CV_def_t *CV_experiment;
     cmor_CV_def_t *CV_experiment_attr;
@@ -646,16 +1285,16 @@ void cmor_CV_checkExperiment( cmor_CV_def_t *CV){
 /* -------------------------------------------------------------------- */
 /*  Find experiment_ids dictionary in Control Vocabulary                */
 /* -------------------------------------------------------------------- */
-    CV_experiment_ids = cmor_CV_rootsearch(CV, CV_KEY_EXPERIMENT_IDS);
+    CV_experiment_ids = cmor_CV_rootsearch(CV, CV_KEY_EXPERIMENT_ID);
     if(CV_experiment_ids == NULL){
         snprintf( msg, CMOR_MAX_STRING,
                 "Your \"experiment_ids\" key could not be found in\n! "
                 "your Control Vocabulary file.(%s)\n! ",
                 CV_Filename);
 
-        cmor_handle_error( msg, CMOR_CRITICAL );
+        cmor_handle_error( msg, CMOR_NORMAL );
         cmor_pop_traceback(  );
-        return;
+        return(-1);
     }
     CV_experiment = cmor_CV_search_child_key( CV_experiment_ids,
                                                szExperiment_ID);
@@ -667,9 +1306,9 @@ void cmor_CV_checkExperiment( cmor_CV_def_t *CV){
                 szExperiment_ID,
                 CV_Filename);
 
-        cmor_handle_error( msg, CMOR_CRITICAL );
+        cmor_handle_error( msg, CMOR_NORMAL );
         cmor_pop_traceback(  );
-        return;
+        return(-1);
     }
 
     nObjects = CV_experiment->nbObjects;
@@ -678,7 +1317,11 @@ void cmor_CV_checkExperiment( cmor_CV_def_t *CV){
         bWarning = FALSE;
         CV_experiment_attr = &CV_experiment->oValue[i];
         rc = cmor_has_cur_dataset_attribute(CV_experiment_attr->key);
+        strcpy(szExpValue, CV_experiment_attr->szValue);
         // Validate source type first
+        if(strcmp(CV_experiment_attr->key, CV_EXP_ATTR_DESCRIPTION) == 0) {
+        	continue;
+        }
         if(strcmp(CV_experiment_attr->key, CV_EXP_ATTR_REQSOURCETYPE) == 0) {
             cmor_CV_checkSourceType(CV_experiment, szExperiment_ID);
             continue;
@@ -698,47 +1341,305 @@ void cmor_CV_checkExperiment( cmor_CV_def_t *CV){
             			 break;
             		 }
             	}
-				if (j == CV_experiment_attr->anElements) {
-					strcpy(szExpValue, CV_experiment_attr->aszValue[0] );
-					bWarning = TRUE;
-				}
-			} else
-        		//
-        		// Check for string instead of list of string object!
-        		//
-				if( CV_experiment_attr->szValue[0] != '\0') {
-					if (strncmp(CV_experiment_attr->szValue, szValue,
-							CMOR_MAX_STRING) != 0) {
-						strcpy(szExpValue,CV_experiment_attr->szValue);
-						bWarning = TRUE;
-					}
-				}
+                if (j == CV_experiment_attr->anElements) {
+                    if (CV_experiment_attr->anElements == 1) {
+                        strcpy(szExpValue, CV_experiment_attr->aszValue[0]);
+                        bWarning = TRUE;
+                    } else {
+                        snprintf(msg, CMOR_MAX_STRING,
+                                "Your input attribute \"%s\" with value \n! \"%s\" "
+                                        "is not set properly and \n! "
+                                        "has multiple possible candidates \n! "
+                                        "defined for experiment_id \"%s\".\n! \n!  "
+                                        "See Control Vocabulary JSON file.(%s)\n! ",
+                                CV_experiment_attr->key, szValue,
+                                CV_experiment->key, CV_Filename);
+                        cmor_handle_error(msg, CMOR_CRITICAL);
+
+                    }
+                }
+            } else
+            //
+            // Check for string instead of list of string object!
+            //
+            if (CV_experiment_attr->szValue[0] != '\0') {
+                if (strncmp(CV_experiment_attr->szValue, szValue,
+                CMOR_MAX_STRING) != 0) {
+                    strcpy(szExpValue, CV_experiment_attr->szValue);
+                    bWarning = TRUE;
+                }
+            }
         }
-		if (bWarning == TRUE) {
-			snprintf(msg, CMOR_MAX_STRING,
-					"Your input attribute \"%s\" with value \n! \"%s\" "
-							"will be replaced with "
-							"value \"%s\"\n! "
-							"as defined for experiment_id \"%s\".\n! \n!  "
-							"See Control Vocabulary JSON file.(%s)\n! ",
-					CV_experiment_attr->key, szValue,
-					szExpValue, CV_experiment->key,
-					CV_Filename);
-			cmor_handle_error(msg, CMOR_WARNING);
-		}
-		// Set/replace attribute.
-		cmor_set_cur_dataset_attribute_internal(CV_experiment_attr->key,
-				CV_experiment_attr->szValue, 1);
-	}
-	cmor_pop_traceback();
+        if (bWarning == TRUE) {
+            snprintf(msg, CMOR_MAX_STRING,
+                    "Your input attribute \"%s\" with value \n! \"%s\" "
+                            "will be replaced with "
+                            "value \"%s\"\n! "
+                            "as defined for experiment_id \"%s\".\n! \n!  "
+                            "See Control Vocabulary JSON file.(%s)\n! ",
+                    CV_experiment_attr->key, szValue, szExpValue,
+                    CV_experiment->key, CV_Filename);
+            cmor_handle_error(msg, CMOR_WARNING);
+        }
+        // Set/replace attribute.
+        cmor_set_cur_dataset_attribute_internal(CV_experiment_attr->key,
+                szExpValue, 1);
+        if (cmor_has_cur_dataset_attribute(CV_experiment_attr->key) == 0) {
+            cmor_get_cur_dataset_attribute(CV_experiment_attr->key, szValue);
+        }
+    }
+    cmor_pop_traceback();
 
-	return;
+    return (0);
 }
 
 /************************************************************************/
+/*                      cmor_CV_checkFilename()                         */
+/************************************************************************/
+int cmor_CV_checkFilename(cmor_CV_def_t *CV,
+        int var_id,
+        char *szInTimeCalendar,
+        char *szInTimeUnits,
+        char *infile) {
+
+    cdCalenType icalo;
+    char outname[CMOR_MAX_STRING];
+    char CV_Filename[CMOR_MAX_STRING];
+    char szTmp[CMOR_MAX_STRING];
+    cdCompTime comptime;
+    double interval;
+    int i, j, n;
+    int ierr;
+    int timeDim;
+
+    outname[0] = '\0';
+    ierr = cmor_CreateFromTemplate(0, cmor_current_dataset.file_template,
+            outname, "_");
+    cmor_get_cur_dataset_attribute(CV_INPUTFILENAME, CV_Filename);
+    timeDim=-1;
+    for(i = 0; i< cmor_tables[0].vars[0].ndims; i++){
+        int dim = cmor_tables[0].vars[0].dimensions[i];
+        if(cmor_tables[0].axes[dim].axis == 'T'){
+            timeDim=dim;
+            break;
+        }
+    }
+
+    if (timeDim != -1){
+
+        // retrieve calendar
+
+        if (cmor_calendar_c2i(szInTimeCalendar, &icalo) != 0) {
+            snprintf(szInTimeUnits, CMOR_MAX_STRING,
+                    "Cannot convert times for calendar: %s,\n! "
+                            "closing variable %s (table: %s)", szInTimeCalendar,
+                    cmor_vars[var_id].id,
+                    cmor_tables[cmor_vars[var_id].ref_table_id].szTable_id);
+            cmor_handle_error(szInTimeUnits, CMOR_CRITICAL);
+            cmor_pop_traceback();
+            return (1);
+        }
+        //Compute timestamps
+
+        if ((cmor_tables[0].axes[timeDim].climatology == 1)
+                && (cmor_vars[0].first_bound != 1.e20)) {
+            cdRel2Comp(icalo, szInTimeUnits, cmor_vars[0].first_bound,
+                    &comptime);
+        } else {
+            cdRel2Comp(icalo, szInTimeUnits, cmor_vars[0].first_time,
+                    &comptime);
+        }
+        /* -------------------------------------------------------------------- */
+        /*      need to figure out the approximate interval                     */
+        /* -------------------------------------------------------------------- */
+
+        interval = cmor_convert_interval_to_seconds(cmor_tables[0].interval,
+                cmor_tables[0].axes[timeDim].units);
+
+        //first time point
+        strncat(outname, "_", CMOR_MAX_STRING - strlen(outname));
+        //year
+        snprintf(szTmp, CMOR_MAX_STRING, "%.4ld", comptime.year);
+        strncat(outname, szTmp, CMOR_MAX_STRING - strlen(outname));
+        // month
+        if (interval < 29.E6) {
+            snprintf(szTmp, CMOR_MAX_STRING, "%.2i", comptime.month);
+            strncat(outname, szTmp, CMOR_MAX_STRING - strlen(outname));
+        }
+        // day
+        if (interval < 2.E6) {
+            snprintf(szTmp, CMOR_MAX_STRING, "%.2i", comptime.day);
+            strncat(outname, szTmp, CMOR_MAX_STRING - strlen(outname));
+        }
+        // hour
+        if (interval < 86000) {
+            snprintf(szTmp, CMOR_MAX_STRING, "%.2i", (int) comptime.hour);
+            strncat(outname, szTmp,
+            CMOR_MAX_STRING - strlen(outname));
+        }
+        if (interval < 21000) {
+
+/* -------------------------------------------------------------------- */
+/*      from now on add 1 more level of precision since that frequency  */
+/* -------------------------------------------------------------------- */
+            ierr = (int) ((comptime.hour - (int) (comptime.hour)) * 60.);
+            snprintf(szTmp, CMOR_MAX_STRING, "%.2i", ierr);
+            strncat(outname, szTmp,
+            CMOR_MAX_STRING - strlen(outname));
+        }
+        if (interval < 3000) { /* less than an hour */
+            snprintf(szTmp, CMOR_MAX_STRING, "%.2i",
+                    (int) ((comptime.hour - (int) (comptime.hour)) * 3600.)
+                            - ierr * 60);
+            strncat(outname, szTmp,
+            CMOR_MAX_STRING - strlen(outname));
+        }
+
+/* -------------------------------------------------------------------- */
+/*      separator between first and last time                           */
+/* -------------------------------------------------------------------- */
+
+        strncat(outname, "-", CMOR_MAX_STRING - strlen(outname));
+
+        if ((cmor_tables[0].axes[timeDim].climatology == 1)
+                && (cmor_vars[0].last_bound != 1.e20)) {
+            cdRel2Comp(icalo, szInTimeUnits, cmor_vars[0].last_bound,
+                    &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);
+            }
+        } else {
+            cdRel2Comp(icalo, szInTimeUnits, cmor_vars[0].last_time, &comptime);
+        }
+
+/* -------------------------------------------------------------------- */
+/*      last time point                                                 */
+/* -------------------------------------------------------------------- */
+        snprintf(szTmp, CMOR_MAX_STRING, "%.4ld", comptime.year);
+        strncat(outname, szTmp, CMOR_MAX_STRING - strlen(outname));
+
+/* -------------------------------------------------------------------- */
+/*      less than a year                                                */
+/* -------------------------------------------------------------------- */
+        if (interval < 29.E6) {
+            snprintf(szTmp, CMOR_MAX_STRING, "%.2i", comptime.month);
+            strncat(outname, szTmp,
+            CMOR_MAX_STRING - strlen(outname));
+        }
+/* -------------------------------------------------------------------- */
+/*      less than a month                                               */
+/* -------------------------------------------------------------------- */
+
+        if (interval < 2.E6) {
+            snprintf(szTmp, CMOR_MAX_STRING, "%.2i", comptime.day);
+            strncat(outname, szTmp,
+            CMOR_MAX_STRING - strlen(outname));
+        }
+/* -------------------------------------------------------------------- */
+/*      less than a day                                                 */
+/* -------------------------------------------------------------------- */
+
+        if (interval < 86000) {
+            snprintf(szTmp, CMOR_MAX_STRING, "%.2i", (int) comptime.hour);
+            strncat(outname, szTmp,
+            CMOR_MAX_STRING - strlen(outname));
+        }
+/* -------------------------------------------------------------------- */
+/*      less than 6hr                                                   */
+/* -------------------------------------------------------------------- */
+
+        if (interval < 21000) {
+/* -------------------------------------------------------------------- */
+/*      from now on add 1 more level of precision since that frequency  */
+/* -------------------------------------------------------------------- */
+
+            ierr = (int) ((comptime.hour - (int) (comptime.hour)) * 60.);
+            snprintf(szTmp, CMOR_MAX_STRING, "%.2i", ierr);
+            strncat(outname, szTmp,
+            CMOR_MAX_STRING - strlen(outname));
+        }
+/* -------------------------------------------------------------------- */
+/*      less than an hour                                               */
+/* -------------------------------------------------------------------- */
+        if (interval < 3000) {
+            snprintf(szTmp, CMOR_MAX_STRING, "%.2i",
+                    (int) ((comptime.hour - (int) (comptime.hour)) * 3600.)
+                            - ierr * 60);
+            strncat(outname, szTmp,
+            CMOR_MAX_STRING - strlen(outname));
+        }
+
+        if (cmor_tables[0].axes[timeDim].climatology == 1) {
+            strncat(outname, "-clim",
+            CMOR_MAX_STRING - strlen(outname));
+        }
+
+    }
+    if (cmor_vars[0].suffix_has_date == 1) {
+/* -------------------------------------------------------------------- */
+/*      all right we need to pop out the date part....                  */
+/* -------------------------------------------------------------------- */
+        n = strlen(cmor_vars[0].suffix);
+        i = 0;
+        while (cmor_vars[0].suffix[i] != '_')
+            i++;
+        i++;
+        while ((cmor_vars[0].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[0].axes[timeDim].climatology == 1) {
+            i += 5;
+        }
+        strcpy(szTmp,"");
+        for (j = i; j < n; j++) {
+            szTmp[j - i] = cmor_vars[var_id].suffix[i];
+            szTmp[j - i + 1] = '\0';
+        }
+    } else {
+        strncpy(szTmp, cmor_vars[0].suffix, CMOR_MAX_STRING);
+    }
+
+    if (strlen(szTmp) > 0) {
+        strncat(outname, "_", CMOR_MAX_STRING - strlen(outname));
+        strncat(outname, szTmp, CMOR_MAX_STRING - strlen(outname));
+    }
+    strncat(outname, ".nc", CMOR_MAX_STRING - strlen(outname));
+    if (strcmp(infile, outname) != 0) {
+        snprintf(szTmp, CMOR_MAX_STRING, "Your filename \n! "
+                "\"%s\" \n! "
+                "does not match the CMIP6 requirement.\n! \n! "
+                "Your output filename should be: \n! "
+                "\"%s\"\n! \n! "
+                "and should follow this template: \n!"
+                "\"%s\"\n! \n! "
+                "See your Control Vocabulary file.(%s)\n! ", infile, outname,
+                cmor_current_dataset.file_template, CV_Filename);
+
+        cmor_handle_error(szTmp, CMOR_NORMAL);
+        cmor_pop_traceback();
+        return (-1);
+    }
+    cmor_pop_traceback();
+    return (0);
+
+}
+/************************************************************************/
 /*                      cmor_CV_setInstitution()                        */
 /************************************************************************/
-void cmor_CV_setInstitution( cmor_CV_def_t *CV){
+int cmor_CV_setInstitution(cmor_CV_def_t *CV) {
     cmor_CV_def_t *CV_institution_ids;
     cmor_CV_def_t *CV_institution;
 
@@ -768,16 +1669,16 @@ void cmor_CV_setInstitution( cmor_CV_def_t *CV){
 /* -------------------------------------------------------------------- */
 /*  Find Institution dictionaries in Control Vocabulary                 */
 /* -------------------------------------------------------------------- */
-    CV_institution_ids = cmor_CV_rootsearch(CV, CV_KEY_INSTITUTION_IDS);
+    CV_institution_ids = cmor_CV_rootsearch(CV, CV_KEY_INSTITUTION_ID);
     if(CV_institution_ids == NULL) {
         snprintf( msg, CMOR_MAX_STRING,
-                "Your \"institution_ids\" key could not be found in\n! "
+                "Your \"%s\" key could not be found in\n! "
                 "your Control Vocabulary file.(%s)\n! ",
-                CV_Filename);
+				CV_KEY_INSTITUTION_ID, CV_Filename);
 
-        cmor_handle_error( msg, CMOR_CRITICAL );
+        cmor_handle_error( msg, CMOR_NORMAL );
         cmor_pop_traceback(  );
-        return;
+        return(-1);
     }
     CV_institution = cmor_CV_search_child_key( CV_institution_ids,
                                                szInstitution_ID);
@@ -793,9 +1694,9 @@ void cmor_CV_setInstitution( cmor_CV_def_t *CV){
                 "See \"http://cmor.llnl.gov/mydoc_cmor3_CV/\" for further information about\n! "
                 "the \"institution_id\" and \"institution\" global attributes.  " ,
                 szInstitution_ID, CMOR_Filename, CV_Filename);
-        cmor_handle_error( msg, CMOR_CRITICAL );
+        cmor_handle_error( msg, CMOR_NORMAL );
         cmor_pop_traceback(  );
-        return;
+        return(-1);
     }
 /* -------------------------------------------------------------------- */
 /* Did the user defined an Institution Attribute?                       */
@@ -818,11 +1719,11 @@ void cmor_CV_setInstitution( cmor_CV_def_t *CV){
             snprintf( msg, CMOR_MAX_STRING,
                     "There is no institution associated to institution_id \"%s\"\n! "
                     "in your Control Vocabulary file.\n! "
-                    "Check your institution_ids dictionary!!\n! ",
-                            szInstitution_ID);
-            cmor_handle_error( msg, CMOR_CRITICAL );
+                    "Check your \"%s\" dictionary!!\n! ",
+					CV_KEY_INSTITUTION_ID, szInstitution_ID);
+            cmor_handle_error( msg, CMOR_NORMAL );
             cmor_pop_traceback(  );
-            return;
+            return(-1);
         }
 /* -------------------------------------------------------------------- */
 /*  Check if they have the same string                                  */
@@ -841,7 +1742,7 @@ void cmor_CV_setInstitution( cmor_CV_def_t *CV){
     cmor_set_cur_dataset_attribute_internal(GLOBAL_ATT_INSTITUTION,
                                             CV_institution->szValue, 1);
     cmor_pop_traceback();
-    return;
+    return(0);
 }
 
 /************************************************************************/
@@ -883,7 +1784,7 @@ int cmor_CV_ValidateAttribute(cmor_CV_def_t *CV, char *szKey){
         reti = regcomp(&regex, attr_CV->aszValue[i],0);
         if(reti) {
             snprintf( msg, CMOR_MAX_STRING,
-                    "You regular expression \"%s\" is invalid. \n!"
+                    "You regular expression \"%s\" is invalid. \n! "
                     "Check your Control Vocabulary file \"%s\".\n! ",
                     attr_CV->aszValue[i], CV_Filename );
             regfree(&regex);
@@ -938,7 +1839,7 @@ int cmor_CV_ValidateAttribute(cmor_CV_def_t *CV, char *szKey){
 /************************************************************************/
 /*                        cmor_CV_checkGrids()                          */
 /************************************************************************/
-void cmor_CV_checkGrids(cmor_CV_def_t *CV) {
+int  cmor_CV_checkGrids(cmor_CV_def_t *CV) {
     int rc;
     char szGridLabel[CMOR_MAX_STRING];
     char szGridResolution[CMOR_MAX_STRING];
@@ -977,27 +1878,27 @@ void cmor_CV_checkGrids(cmor_CV_def_t *CV) {
                 "your Control Vocabulary file.(%s)\n! ",
                 CV_Filename);
 
-        cmor_handle_error( msg, CMOR_CRITICAL );
+        cmor_handle_error( msg, CMOR_NORMAL );
         cmor_pop_traceback(  );
-        return;
+        return(-1);
     }
     if (CV_grid_labels->anElements > 0) {
-    		for (i = 0; i < CV_grid_labels->anElements; i++) {
-    			rc = strcmp(CV_grid_labels->aszValue[i], szGridLabel);
-    			if (rc == 0) {
-    				break;
-    			}
-    		}
-    		if (i == CV_grid_labels->anElements) {
-    			snprintf(msg, CMOR_MAX_STRING,
-    					"Your attribute grid_label is set to \"%s\" which is invalid."
-    					"\n! \n! Check your Control Vocabulary file \"%s\".\n! ",
-    					szGridLabel, CV_Filename);
-    			cmor_handle_error(msg, CMOR_CRITICAL);
-    			cmor_pop_traceback();
-    			return;
-
-    		}
+        for (i = 0; i < CV_grid_labels->anElements; i++) {
+            rc = strcmp(CV_grid_labels->aszValue[i], szGridLabel);
+            if (rc == 0) {
+                break;
+            }
+        }
+        if (i == CV_grid_labels->anElements) {
+            snprintf(msg, CMOR_MAX_STRING,
+                    "Your attribute grid_label is set to \"%s\" which is invalid."
+                            "\n! \n! Check your Control Vocabulary file \"%s\".\n! ",
+                    szGridLabel, CV_Filename);
+            cmor_handle_error(msg, CMOR_NORMAL);
+            cmor_pop_traceback();
+            return (-1);
+
+        }
     }
     CV_grid_resolution = cmor_CV_rootsearch(CV, CV_KEY_GRID_RESOLUTION);
     if(CV_grid_resolution == NULL ) {
@@ -1005,44 +1906,45 @@ void cmor_CV_checkGrids(cmor_CV_def_t *CV) {
                   "Your attribute grid_label is set to \"%s\" which is invalid."
                   "\n! \n! Check your Control Vocabulary file \"%s\".\n! ",
                   szGridLabel, CV_Filename);
-        cmor_handle_error( msg, CMOR_CRITICAL );
+        cmor_handle_error( msg, CMOR_NORMAL );
         cmor_pop_traceback();
-        return;
+        return(-1);
 
     }
 
-	if (CV_grid_resolution->anElements > 0) {
-		for (i = 0; i < CV_grid_resolution->anElements; i++) {
-			rc = strcmp(CV_grid_resolution->aszValue[i], szGridResolution);
-			if (rc == 0) {
-				break;
-			}
-		}
-		if (i == CV_grid_resolution->anElements) {
-			snprintf(msg, CMOR_MAX_STRING,
-					"Your attribute grid_resolution is set to \"%s\" which is invalid."
-							"\n! \n! Check your Control Vocabulary file \"%s\".\n! ",
-					szGridResolution, CV_Filename);
-			cmor_handle_error(msg, CMOR_CRITICAL);
-			cmor_pop_traceback();
-			return;
+    if (CV_grid_resolution->anElements > 0) {
+        for (i = 0; i < CV_grid_resolution->anElements; i++) {
+            rc = strcmp(CV_grid_resolution->aszValue[i], szGridResolution);
+            if (rc == 0) {
+                break;
+            }
+        }
+        if (i == CV_grid_resolution->anElements) {
+            snprintf(msg, CMOR_MAX_STRING,
+                    "Your attribute grid_resolution is set to \"%s\" which is invalid."
+                            "\n! \n! Check your Control Vocabulary file \"%s\".\n! ",
+                    szGridResolution, CV_Filename);
+            cmor_handle_error(msg, CMOR_NORMAL);
+            cmor_pop_traceback();
+            return (-1);
 
-		}
-	}
+        }
+    }
 
     cmor_pop_traceback(  );
-    return;
+    return(0);
 }
 
 /************************************************************************/
 /*                    cmor_CV_CheckGblAttributes()                      */
 /************************************************************************/
-void cmor_CV_checkGblAttributes( cmor_CV_def_t *CV ) {
+int cmor_CV_checkGblAttributes( cmor_CV_def_t *CV ) {
     cmor_CV_def_t *required_attrs;
     int i;
     int rc;
     char msg[CMOR_MAX_STRING];
     int bCriticalError = FALSE;
+    int ierr =0;
     cmor_add_traceback( "_CV_checkGblAttributes" );
     required_attrs = cmor_CV_rootsearch(CV, CV_KEY_REQUIRED_GBL_ATTRS);
     if( required_attrs != NULL) {
@@ -1057,20 +1959,22 @@ void cmor_CV_checkGblAttributes( cmor_CV_def_t *CV ) {
                           required_attrs->aszValue[i] );
                 cmor_handle_error( msg, CMOR_NORMAL );
                 bCriticalError = TRUE;
+                ierr +=-1;
             }
             rc = cmor_CV_ValidateAttribute(CV, required_attrs->aszValue[i]);
             if( rc != 0) {
                 bCriticalError = TRUE;
+                ierr +=-1;
             }
         }
     }
     if( bCriticalError ) {
         cmor_handle_error( "Please fix required attributes mentioned in\n! "
-                           "the warnings above and rerun. (aborting!)\n! "
-                           ,CMOR_CRITICAL );
+                           "the warnings/error above and rerun. (aborting!)\n! "
+                           ,CMOR_NORMAL );
     }
     cmor_pop_traceback(  );
-    return;
+    return(ierr);
 }
 
 
@@ -1140,7 +2044,7 @@ int cmor_CV_set_entry(cmor_table_t* table,
 /************************************************************************/
 /*                       cmor_CV_checkTime()                            */
 /************************************************************************/
-void cmor_CV_checkISOTime(char *szAttribute) {
+int cmor_CV_checkISOTime(char *szAttribute) {
     struct tm tm;
     int rc;
     char *szReturn;
@@ -1165,12 +2069,12 @@ void cmor_CV_checkISOTime(char *szAttribute) {
                       "\"%s\" set to \"%s\" is not a valid date.\n! "
                       "ISO 8601 date format \"YYYY-MM-DDTHH:MM:SSZ\" is required."
                       "\n! ", szAttribute, szDate);
-            cmor_handle_error( msg, CMOR_CRITICAL );
+            cmor_handle_error( msg, CMOR_NORMAL );
             cmor_pop_traceback(  );
-            return;
+            return(-1);
     }
     cmor_pop_traceback(  );
-    return;
+    return(0);
 }
 
 
@@ -1178,7 +2082,9 @@ void cmor_CV_checkISOTime(char *szAttribute) {
 /************************************************************************/
 /*                         cmor_CV_variable()                           */
 /************************************************************************/
-int cmor_CV_variable( int *var_id, char *name, char *units, float *missing ) {
+int cmor_CV_variable( int *var_id, char *name, char *units, float *missing,
+        float startime, float endtime,
+        float startimebnds, float endtimebnds) {
 
     int vrid=-1;
     int i;
@@ -1267,6 +2173,11 @@ int cmor_CV_variable( int *var_id, char *name, char *units, float *missing ) {
     cmor_vars[vrid].shuffle = refvar.shuffle;
     cmor_vars[vrid].deflate = refvar.deflate;
     cmor_vars[vrid].deflate_level = refvar.deflate_level;
+    cmor_vars[vrid].first_bound = startimebnds;
+    cmor_vars[vrid].last_bound = endtimebnds;
+    cmor_vars[vrid].first_time = startime;
+    cmor_vars[vrid].last_time = endtime;
+
 
     if (refvar.out_name[0] == '\0') {
         strncpy(cmor_vars[vrid].id, name, CMOR_MAX_STRING);
@@ -1274,10 +2185,12 @@ int cmor_CV_variable( int *var_id, char *name, char *units, float *missing ) {
         strncpy(cmor_vars[vrid].id, refvar.out_name, CMOR_MAX_STRING);
     }
 
-    cmor_set_variable_attribute_internal(vrid, VARIABLE_ATT_STANDARDNAME, 'c',
+    cmor_set_variable_attribute_internal(vrid,
+            VARIABLE_ATT_STANDARDNAME, 'c',
             refvar.standard_name);
 
-    cmor_set_variable_attribute_internal(vrid, VARIABLE_ATT_LONGNAME, 'c',
+    cmor_set_variable_attribute_internal(vrid,
+            VARIABLE_ATT_LONGNAME, 'c',
             refvar.long_name);
 
     if ((refvar.flag_values != NULL) && (refvar.flag_values[0] != '\0')) {
diff --git a/Src/cmor_axes.c b/Src/cmor_axes.c
index 12a19f2..678e59d 100644
--- a/Src/cmor_axes.c
+++ b/Src/cmor_axes.c
@@ -101,25 +101,27 @@ double cmor_convert_interval_to_seconds( double interv, char *inunits ) {
     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 );
+		  "In udunits 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 );
+	ut_free( user_units );
+	ut_free( cmor_units );
 	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" );
+	snprintf( msg, CMOR_MAX_STRING, "In udunits 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" );
+	snprintf( msg, CMOR_MAX_STRING, "In udunits converting" );
 	cmor_handle_error( msg, CMOR_CRITICAL );
     }
     cv_free( ut_cmor_converter );
diff --git a/Src/cmor_grids.c b/Src/cmor_grids.c
index 9bbce32..8e58e94 100644
--- a/Src/cmor_grids.c
+++ b/Src/cmor_grids.c
@@ -523,23 +523,23 @@ int cmor_set_grid_mapping( int gid, char *name, int nparam,
     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 );
+    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;
+    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;
     }
     grid_id = -gid - CMOR_MAX_GRIDS;
 
@@ -547,16 +547,18 @@ int cmor_set_grid_mapping( int gid, char *name, int nparam,
 /*      reads in grid definitions                                       */
 /* -------------------------------------------------------------------- */
 
-    cmor_grid_valid_mapping_attribute_names( name, &nattributes,
-					     grid_attributes, &ndims,
-					     grid_dimensions );
+    cmor_grid_valid_mapping_attribute_names(name, &nattributes, grid_attributes,
+            &ndims, grid_dimensions);
+
+    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);
+        cmor_pop_traceback();
+        return (-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 );
     }
 
 /* -------------------------------------------------------------------- */
@@ -565,106 +567,101 @@ int cmor_set_grid_mapping( int gid, char *name, int nparam,
 /* -------------------------------------------------------------------- */
 
     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];
+    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++;
-	    }
-	}
+                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);
+        cmor_pop_traceback();
+        return (-1);
 
-    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 ) ) {
+    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] );
-	}
+
+                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);
+                cmor_pop_traceback();
+                return (-1);
+            }
+        } else {
+            cmor_set_grid_attribute(gid, lattributes_names[i],
+                    &attributes_values[i], lunits[i]);
+        }
     }
 /* -------------------------------------------------------------------- */
 /*      checks all parameter (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 );
-	}
+    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);
+    strncpy(cmor_grids[grid_id].mapping, name, CMOR_MAX_STRING);
+    cmor_pop_traceback();
+    return (0);
 }
 
 /************************************************************************/
 /*                 cmor_time_varying_grid_coordinate()                  */
 /************************************************************************/
 
-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 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];
@@ -678,185 +675,179 @@ int cmor_time_varying_grid_coordinate( int *coord_grid_id, int grid_id,
     axes[0] = grid_id;
     current_cmor_grids = &cmor_grids[-grid_id - CMOR_MAX_GRIDS];
     nvertices = current_cmor_grids->nvertices;
-    table_id = cmor_axes[current_cmor_grids->axes_ids[0]].ref_table_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[table_id].nvars; j++ ) {
-	    if( strcmp( cmor_tables[table_id].vars[j].id, table_entry ) == 0 ) {
-		strncpy( msg, cmor_tables[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;
+    //table_id = cmor_axes[current_cmor_grids->axes_ids[0]].ref_table_id;
+    table_id = CMOR_TABLE;
+    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[table_id].nvars; j++) {
+            if (strcmp(cmor_tables[table_id].vars[j].id, table_entry) == 0) {
+                strncpy(msg, cmor_tables[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;
+        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;
-	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;
-
-	break;
-    case ( 2 ):
-	if( nvertices == 0 ) {
-	    sprintf( msg,
-		     "your defining a vertices dependent variable (%s) associated with 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 - CMOR_MAX_GRIDS].nvertices = axes[1];
-
-	} else {
-
-	    axes[1] = cmor_grids[-grid_id - CMOR_MAX_GRIDS].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;
+    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;
+        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;
+
+        break;
+    case (2):
+        if (nvertices == 0) {
+            sprintf(msg,
+                    "your defining a vertices dependent variable (%s) "
+                    "associated with 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 - CMOR_MAX_GRIDS].nvertices = axes[1];
+
+        } else {
+
+            axes[1] = cmor_grids[-grid_id - CMOR_MAX_GRIDS].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 ) {
+        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 );
+            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 ) );
+            strncat(msg, " ", CMOR_MAX_STRING - strlen(msg));
+            strncat(msg, cmor_vars[*coord_grid_id].id,
+            CMOR_MAX_STRING - strlen(msg));
 
-	} else {
+        } else {
 
-	    strncpy( msg, cmor_vars[*coord_grid_id].id, CMOR_MAX_STRING );
+            strncpy(msg, cmor_vars[*coord_grid_id].id, CMOR_MAX_STRING);
 
-	}
+        }
 
-	cmor_set_variable_attribute_internal( cmor_grids
-					      [cmor_vars[*coord_grid_id].grid_id].
-					      associated_variables[0],
-					      "bounds", 'c', msg );
+        cmor_set_variable_attribute_internal(
+                cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[0],
+                "bounds", 'c', msg);
 
-	break;
-    case ( 3 ):
-	if( nvertices == 0 ) {
+        break;
+    case (3):
+        if (nvertices == 0) {
 
-	    sprintf( msg,"your defining a vertices dependent "
-	             "variable (%s) associated with grid %i, "
-                      "but you declared this grid as having "
-	             "0 vertices",table_entry, grid_id );
+            sprintf(msg, "your defining a vertices dependent "
+                    "variable (%s) associated with grid %i, "
+                    "but you declared this grid as having "
+                    "0 vertices", table_entry, grid_id);
 
-	    cmor_handle_error( msg, CMOR_CRITICAL );
-	}
+            cmor_handle_error(msg, CMOR_CRITICAL);
+        }
 
-	if( cmor_grids[cmor_vars[*coord_grid_id].grid_id].
-	    associated_variables[2] == -1 ) {
+        if (cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[2]
+                == -1) {
 
-	    dummy_values = malloc( sizeof ( double ) * 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 );
+            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 );
+            free(dummy_values);
 
-	    cmor_grids[-grid_id - CMOR_MAX_GRIDS].nvertices = axes[1];
+            cmor_grids[-grid_id - CMOR_MAX_GRIDS].nvertices = axes[1];
 
-	} else {
+        } else {
 
-	    axes[1] = cmor_grids[-grid_id - CMOR_MAX_GRIDS].nvertices;
+            axes[1] = cmor_grids[-grid_id - CMOR_MAX_GRIDS].nvertices;
 
-	}
-	ierr = cmor_variable( coord_grid_id, table_entry, units, 2, axes,
-			      type, missing, NULL, NULL, NULL, NULL, NULL );
+        }
+        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;
+        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 ) {
+        /* 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 );
+            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_MAX_STRING - strlen(msg));
 
-	    strncat( msg, cmor_vars[*coord_grid_id].id,
-		     CMOR_MAX_STRING - strlen( msg ) );
+            strncat(msg, cmor_vars[*coord_grid_id].id,
+            CMOR_MAX_STRING - strlen(msg));
 
-	} else {
+        } else {
 
-	    strncpy( msg, cmor_vars[*coord_grid_id].id, CMOR_MAX_STRING );
+            strncpy(msg, cmor_vars[*coord_grid_id].id, CMOR_MAX_STRING);
 
-	}
-	cmor_set_variable_attribute_internal( cmor_grids
-					      [cmor_vars[*coord_grid_id].
-					       grid_id].
-					      associated_variables[1],
-					      "bounds", 'c', msg );
-	break;
+        }
+        cmor_set_variable_attribute_internal(
+                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;
+        sprintf(msg, "unknown coord type: %i", ctype);
+        cmor_handle_error(msg, CMOR_CRITICAL);
+        cmor_pop_traceback();
+        return (-1);
 
     }
     cmor_vars[*coord_grid_id].needsinit = 0;
 
-    cmor_pop_traceback(  );
-    return(ierr);
+    cmor_pop_traceback();
+    return (ierr);
 }
 /************************************************************************/
 /*                             cmor_grid()                              */
diff --git a/Src/cmor_tables.c b/Src/cmor_tables.c
index 8861023..ce7616b 100644
--- a/Src/cmor_tables.c
+++ b/Src/cmor_tables.c
@@ -281,7 +281,7 @@ int cmor_set_dataset_att(cmor_table_t * table, char att[CMOR_MAX_STRING],
 		if (d > d2) {
 			snprintf(value2, CMOR_MAX_STRING,
 					"Table %s is defined for cmor_version %f, "
-					"this library verson is: %i.%i.%i, %f",
+					"this library version is: %i.%i.%i, %f",
 					table->szTable_id, d,
 					CMOR_VERSION_MAJOR, CMOR_VERSION_MINOR,
 					CMOR_VERSION_PATCH, d2);
@@ -453,25 +453,24 @@ int cmor_set_dataset_att(cmor_table_t * table, char att[CMOR_MAX_STRING],
 /*                           cmor_set_table()                           */
 /************************************************************************/
 
-int cmor_set_table( int table ) {
+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 );
+    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].szTable_id == '\0' ) {
-	snprintf( msg, CMOR_MAX_STRING,
-		  "Invalid table: %i , not loaded yet!", table );
-	cmor_handle_error( msg, CMOR_CRITICAL );
+    if (cmor_tables[table].szTable_id == '\0') {
+        snprintf(msg, CMOR_MAX_STRING, "Invalid table: %i , not loaded yet!",
+                table);
+        cmor_handle_error(msg, CMOR_CRITICAL);
     }
     CMOR_TABLE = table;
-    cmor_pop_traceback(  );
-    return(0);
+    cmor_pop_traceback();
+    return (0);
 }
 
 /************************************************************************/
@@ -489,6 +488,15 @@ int cmor_load_table( char szTable[CMOR_MAX_STRING], int *table_id ) {
     char szFormulaVarFN[CMOR_MAX_STRING];
     char msg[CMOR_MAX_STRING];
     struct stat st;
+    cmor_add_traceback( "cmor_load_table" );
+
+    if (cmor_ntables == (CMOR_MAX_TABLES-1)) {
+		snprintf(msg, CMOR_MAX_STRING, "You cannot load more than %d tables",
+		CMOR_MAX_TABLES);
+	    cmor_pop_traceback(  );
+		cmor_handle_error(msg, CMOR_CRITICAL);
+		return (-1);
+	}
 
     rc = cmor_get_cur_dataset_attribute(GLOBAL_CV_FILENAME, szCV);
     rc = cmor_get_cur_dataset_attribute(CMOR_AXIS_ENTRY_FILE, szAxisEntryFN);
@@ -552,22 +560,22 @@ int cmor_load_table( char szTable[CMOR_MAX_STRING], int *table_id ) {
                                                 szControlFilenameJSON, 1);
         rc= cmor_load_table_internal( szAxisEntryFilenameJSON, table_id);
         if(rc != TABLE_SUCCESS){
-            snprintf( msg, CMOR_MAX_STRING, "Can't open table %s", szControlFilenameJSON);
+            snprintf( msg, CMOR_MAX_STRING, "Can't open/read JSON table %s", szAxisEntryFilenameJSON);
             cmor_handle_error( msg, CMOR_WARNING );
         }
-        rc= cmor_load_table_internal( szFormulaVarFilenameJSON, table_id);
+        rc= cmor_load_table_internal( szTable, table_id);
         if(rc != TABLE_SUCCESS ){
-            snprintf( msg, CMOR_MAX_STRING, "Can't open table %s", szFormulaVarFN);
+            snprintf( msg, CMOR_MAX_STRING, "Can't open/read JSON table %s", szTable);
             cmor_handle_error( msg, CMOR_WARNING );
         }
-        rc= cmor_load_table_internal( szTable, table_id);
+        rc= cmor_load_table_internal( szFormulaVarFilenameJSON, table_id);
         if(rc != TABLE_SUCCESS ){
-            snprintf( msg, CMOR_MAX_STRING, "Can't open table %s", szTable);
+            snprintf( msg, CMOR_MAX_STRING, "Can't open/read JSON table %s", szFormulaVarFilenameJSON);
             cmor_handle_error( msg, CMOR_WARNING );
         }
         rc= cmor_load_table_internal( szControlFilenameJSON, table_id);
         if(rc != TABLE_SUCCESS){
-            snprintf( msg, CMOR_MAX_STRING, "Can't open table %s", szControlFilenameJSON);
+            snprintf( msg, CMOR_MAX_STRING, "Can't open/read JSON table %s", szControlFilenameJSON);
             cmor_handle_error( msg, CMOR_WARNING );
         }
 
@@ -576,6 +584,7 @@ int cmor_load_table( char szTable[CMOR_MAX_STRING], int *table_id ) {
     }
 
     free(szTableName);
+
     return(rc);
 }
 /************************************************************************/
@@ -593,7 +602,7 @@ int cmor_search_table( char szTable[CMOR_MAX_STRING],
 			return (TABLE_FOUND);
 		}
 	}
-
+    cmor_pop_traceback(  );
 	return (TABLE_NOTFOUND);
 }
 
@@ -603,7 +612,7 @@ int cmor_search_table( char szTable[CMOR_MAX_STRING],
 int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
     FILE *table_file;
     char word[CMOR_MAX_STRING];
-    int i, n;
+    int n;
     int done=0;
     extern int CMOR_TABLE, cmor_ntables;
     extern char cmor_input_path[CMOR_MAX_STRING];
@@ -618,7 +627,6 @@ int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
     cmor_is_setup(  );
 
 	table_file = fopen(szTable, "r");
-
 	if (table_file == NULL) {
 		if (szTable[0] != '/') {
 			snprintf(word, CMOR_MAX_STRING, "%s/%s", cmor_input_path, szTable);
@@ -637,7 +645,6 @@ int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
 		}
 	}
 
-
 /* -------------------------------------------------------------------- */
 /*      ok now we need to store the md5                                 */
 /* -------------------------------------------------------------------- */
@@ -699,9 +706,14 @@ int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
     }
 
     json_object_object_foreach(json_obj, key, value) {
+
+
         if( key[0] == '#') {
             continue;
         }
+        if( value == NULL) {
+        	return(TABLE_ERROR);
+        }
         strcpy(szVal, json_object_get_string(value));
 /* -------------------------------------------------------------------- */
 /*      Now let's see what we found                                     */
@@ -714,6 +726,9 @@ int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
                 if( key[0] == '#') {
                     continue;
                 }
+                if( globalAttr == NULL) {
+                	return(TABLE_ERROR);
+                }
                 strcpy(szVal, json_object_get_string(globalAttr));
                 if( cmor_set_dataset_att( &cmor_tables[cmor_ntables], key, 
                                            szVal ) == 1 ) {
@@ -724,11 +739,15 @@ int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
             done=1;
 
         } else  if( strcmp( key, JSON_KEY_EXPERIMENT ) == 0 ){
-            json_object_object_foreach(value, shortname, description) {
+            json_object_object_foreach(value, shortname, experiment) {
                 if( shortname[0] == '#') {
                     continue;
                 }
-                strcpy(szVal, json_object_get_string(description));
+                if( experiment == NULL) {
+                	return(TABLE_ERROR);
+                }
+
+                strcpy(szVal, json_object_get_string(experiment));
                 if( cmor_set_experiments( &cmor_tables[cmor_ntables],
                                           shortname,
                                           szVal ) == 1 ) {
@@ -739,9 +758,14 @@ int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
             done=1;
         } else if (strcmp(key, JSON_KEY_AXIS_ENTRY) == 0) {
             json_object_object_foreach(value, axisname, attributes) {
+
+
                 if( axisname[0] == '#') {
                     continue;
                 }
+                if( attributes == NULL) {
+                 	return(TABLE_ERROR);
+                 }
                 if( cmor_set_axis_entry(&cmor_tables[cmor_ntables],
                         axisname,
                         attributes) == 1) {
@@ -752,9 +776,14 @@ int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
             done=1;
 	} else if( strcmp( key, JSON_KEY_VARIABLE_ENTRY ) == 0 ) {
             json_object_object_foreach(value, varname, attributes) {
+
+
                 if( varname[0] == '#') {
                     continue;
                 }
+                if( attributes == NULL) {
+                	return(TABLE_ERROR);
+                }
                 if( cmor_set_variable_entry(&cmor_tables[cmor_ntables],
                         varname,
                         attributes) == 1) {
@@ -786,9 +815,14 @@ int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
                 return (TABLE_ERROR);
             }
             json_object_object_foreach(value, mapname, jsonValue) {
+
                 if( mapname[0] == '#') {
                     continue;
                 }
+                if( mapname == NULL) {
+                	return(TABLE_ERROR);
+                }
+
                 char szLastMapID[CMOR_MAX_STRING];
                 char szCurrMapID[CMOR_MAX_STRING];
                 cmor_table_t *psCurrCmorTable;
@@ -817,9 +851,14 @@ int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
                 cmor_init_grid_mapping(&psCurrCmorTable->mappings[nMap], mapname);
                 json_object_object_foreach(jsonValue, key, mappar)
                 {
+
                     if( key[0] == '#') {
                         continue;
                     }
+                    if( mapname == NULL) {
+                    	return(TABLE_ERROR);
+                    }
+
                     char param[CMOR_MAX_STRING];
 
                     strcpy(param, json_object_get_string(mappar));
@@ -835,7 +874,7 @@ int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
 
 	} else {
 /* -------------------------------------------------------------------- */
-/*      nothing knwon we will not be setting any attributes!            */
+/*      nothing known we will not be setting any attributes!            */
 /* -------------------------------------------------------------------- */
 		    
 		    snprintf( msg, CMOR_MAX_STRING,
@@ -860,6 +899,10 @@ int cmor_load_table_internal( char szTable[CMOR_MAX_STRING], int *table_id) {
     }
     *table_id = cmor_ntables;
     CMOR_TABLE = cmor_ntables;
+    if(table_file != NULL) {
+        fclose(table_file);
+        table_file=NULL;
+    }
     cmor_pop_traceback(  );
     free(buffer);
     json_object_put(json_obj);
diff --git a/Src/cmor_variables.c b/Src/cmor_variables.c
index 0c6d92b..62219bf 100644
--- a/Src/cmor_variables.c
+++ b/Src/cmor_variables.c
@@ -91,7 +91,9 @@ int cmor_has_required_variable_attributes( int var_id ) {
 		      pTable->szTable_id,
 		      astr );
 
-	    cmor_handle_error( msg, CMOR_CRITICAL );
+	    cmor_handle_error( msg, CMOR_NORMAL );
+	    cmor_pop_traceback(  );
+	    return( -1 );
 	}
 
 	j = 0;
@@ -201,7 +203,7 @@ int cmor_set_variable_attribute( int id, char *attribute_name, char type,
 	( strcmp( attribute_name, VARIABLE_ATT_POSITIVE) == 0 ) ||
 	( strcmp( attribute_name, VARIABLE_ATT_CELLMETHODS ) == 0 ) ) {
 	snprintf( msg, CMOR_MAX_STRING,
-		  "variable attribute %s (vor variable %s, table %s) must be set via a call to cmor_variable or it is automaticaly set via the tables",
+		  "variable attribute %s (vor variable %s, table %s) must be set via a call to cmor_variable or it is automatically set via the tables",
 		  attribute_name, cmor_vars[id].id,
 		  cmor_tables[cmor_vars[id].ref_table_id].szTable_id );
 	cmor_handle_error( msg, CMOR_NORMAL );
@@ -1105,6 +1107,7 @@ int cmor_variable( int *var_id, char *name, char *units, int ndims,
     cmor_vars[vrid].shuffle = refvar.shuffle;
     cmor_vars[vrid].deflate = refvar.deflate;
     cmor_vars[vrid].deflate_level = refvar.deflate_level;
+    strcpy(cmor_vars[vrid].chunking_dimensions, refvar.chunking_dimensions);
 
     if (refvar.out_name[0] == '\0') {
         strncpy(cmor_vars[vrid].id, name, CMOR_MAX_STRING);
@@ -1860,6 +1863,7 @@ void cmor_init_var_def( cmor_var_def_t * var, int table_id ) {
     var->ndims = 0;
     var->flag_values[0] = '\0';
     var->flag_meanings[0] = '\0';
+    var->chunking_dimensions[0] = '\0';
     for( n = 0; n < CMOR_MAX_DIMENSIONS; n++ )
 	var->dimensions[n] = -1;
     var->type = 'f';
@@ -2041,6 +2045,8 @@ int cmor_set_var_def_att( cmor_var_def_t * var, char att[CMOR_MAX_STRING],
     } else if( strcmp( att, VARIABLE_ATT_MAXMEANABS ) == 0 ) {
 
 	var->ok_max_mean_abs = atof( val );
+    } else if( strcmp( att, VARIABLE_ATT_CHUNKING ) == 0 ) {
+    	strncpy( var->chunking_dimensions, val, CMOR_MAX_STRING );
 
     } else if( strcmp( att, VARIABLE_ATT_SHUFFLE ) == 0 ) {
 
@@ -2119,6 +2125,97 @@ int cmor_set_var_def_att( cmor_var_def_t * var, char att[CMOR_MAX_STRING],
     cmor_pop_traceback(  );
     return( 0 );
 }
+/************************************************************************/
+/*                      cmor_set_var_chunking()                         */
+/************************************************************************/
+int cmor_set_chunking( int var_id, int nTableID, size_t nc_dim_chunking[]) {
+
+	char chunk_dimensions[CMOR_MAX_STRING];
+	char *token;
+	int n;
+	int ndims = cmor_vars[var_id].ndims;
+	int nChunks[CMOR_MAX_DIMENSIONS]; // T, Z, Y,X
+	int nAxisID;
+
+    cmor_add_traceback( "cmor_set_chunking" );
+    cmor_is_setup(  );
+
+	strcpy(chunk_dimensions, cmor_vars[var_id].chunking_dimensions);
+	if( chunk_dimensions[0] == '\0') {
+	    cmor_pop_traceback(  );
+		return(-1);
+	}
+
+	token = strtok(chunk_dimensions, " ");
+	n=0;
+	// Read in all chunks
+	while( token != NULL){
+		nChunks[n] = atoi(token);
+		n++;
+		token = strtok(NULL, " ");
+	}
+	// We need 4 dimensions corresponding to T, Z, Y,X
+	if(n != 4) {
+		return(-1);
+	}
+	// Validate Chunks size.
+	for (n = 0; n < ndims; n++) {
+		nAxisID = cmor_vars[var_id].axes_ids[n];
+		if (cmor_axes[nAxisID].axis == 'X') {
+			if (nChunks[3] > cmor_axes[nAxisID].length) {
+				nChunks[3] = cmor_axes[nAxisID].length;
+			} else if (nChunks[3] <= 0) {
+				nChunks[3] = 1;
+			}
+		}
+		if (cmor_axes[nAxisID].axis == 'Y') {
+			if (nChunks[2] > cmor_axes[nAxisID].length) {
+				nChunks[2] = cmor_axes[nAxisID].length;
+			} else if (nChunks[2] <= 0) {
+				nChunks[2] = 1;
+			}
+		}
+		if (cmor_axes[nAxisID].axis == 'Z') {
+			if (nChunks[1] > cmor_axes[nAxisID].length) {
+				nChunks[1] = cmor_axes[nAxisID].length;
+			} else if (nChunks[1] <= 0) {
+				nChunks[1] = 1;
+			}
+		}
+		if (cmor_axes[nAxisID].axis == 'T') {
+			if (nChunks[0] > cmor_axes[nAxisID].length) {
+				nChunks[0] = cmor_axes[nAxisID].length;
+			} else if (nChunks[0] <= 0) {
+				nChunks[0] = 1;
+			}
+		}
+	}
+	// Assign chunks;
+	n=0;
+	while( n < ndims){
+		nAxisID = cmor_vars[var_id].axes_ids[n];
+		if(cmor_axes[nAxisID].axis == 'X') {
+			nc_dim_chunking[n] = nChunks[3];
+		}
+		else if (cmor_axes[nAxisID].axis == 'Y') {
+			nc_dim_chunking[n] = nChunks[2];
+		}
+		else if (cmor_axes[nAxisID].axis == 'Z') {
+			nc_dim_chunking[n] = nChunks[1];
+		}
+		else if (cmor_axes[nAxisID].axis == 'T') {
+			nc_dim_chunking[n] = nChunks[0];
+		}
+		else {
+			nc_dim_chunking[n] = 1;
+		}
+		n++;
+		token = strtok(NULL, " ");
+	}
+    cmor_pop_traceback(  );
+    return( 0 );
+
+}
 
 /************************************************************************/
 /*                       cmor_set_var_deflate()                         */
@@ -2232,6 +2329,7 @@ int cmor_write_var_to_file( int ncid, cmor_var_t * avar, void *data,
     char msg_max[CMOR_MAX_STRING];
     extern ut_system *ut_read;
     int tmpindex = 0;
+    int index;
 
     cmor_add_traceback( "cmor_write_var_to_file" );
     cmor_is_setup(  );
@@ -2311,7 +2409,8 @@ int cmor_write_var_to_file( int ncid, cmor_var_t * avar, void *data,
     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];
+                index = j+1;
+                counter_orig2[i] = counter_orig[index];
             }
         }
     }
@@ -2976,7 +3075,7 @@ int cmor_write_var_to_file( int ncid, cmor_var_t * avar, void *data,
 					bounds[starts[0] * 2] );
 		if( ierr != NC_NOERR ) {
 		    snprintf( msg, CMOR_MAX_STRING,
-			      "NCError (%i: %s) writting time bounds values for variable '%s' (table: %s)",
+			      "NCError (%i: %s) writing time bounds values for variable '%s' (table: %s)",
 			      ierr, nc_strerror( ierr ), avar->id,
 			      cmor_tables[avar->ref_table_id].szTable_id );
 		    cmor_handle_error( msg, CMOR_CRITICAL );
@@ -3013,7 +3112,7 @@ int cmor_write_var_to_file( int ncid, cmor_var_t * avar, void *data,
 				    values[starts[0]] );
 	    if( ierr != NC_NOERR ) {
 		snprintf( msg, CMOR_MAX_STRING,
-			  "NCError (%i: %s) writting time values for variable '%s' (table: %s)",
+			  "NCError (%i: %s) writing time values for variable '%s' (table: %s)",
 			  ierr, nc_strerror( ierr ), avar->id,
 			  cmor_tables[avar->ref_table_id].szTable_id );
 		cmor_handle_error( msg, CMOR_CRITICAL );
@@ -3081,7 +3180,7 @@ int cmor_write_var_to_file( int ncid, cmor_var_t * avar, void *data,
 
 		if( ierr != NC_NOERR ) {
 		    snprintf( msg, CMOR_MAX_STRING,
-			      "NCError (%i: %s) writting time bounds values for variable '%s' (table: %s)",
+			      "NCError (%i: %s) writing time bounds values for variable '%s' (table: %s)",
 			      ierr, nc_strerror( ierr ), avar->id,
 			      cmor_tables[avar->ref_table_id].szTable_id );
 		    cmor_handle_error( msg, CMOR_CRITICAL );
@@ -3099,7 +3198,7 @@ int cmor_write_var_to_file( int ncid, cmor_var_t * avar, void *data,
 	    if( ierr != NC_NOERR ) {
 
 		snprintf( msg, CMOR_MAX_STRING,
-			  "NCError (%i: %s) writting time values for variable '%s' (table: %s)",
+			  "NCError (%i: %s) writing time values for variable '%s' (table: %s)",
 			  ierr, nc_strerror( ierr ), avar->id,
 			  cmor_tables[avar->ref_table_id].szTable_id );
 		cmor_handle_error( msg, CMOR_CRITICAL );
diff --git a/Test/_cmor_stub.py b/Test/_cmor_stub.py
index 011796a..929e895 100644
--- a/Test/_cmor_stub.py
+++ b/Test/_cmor_stub.py
@@ -1,7 +1,9 @@
 '''stub implementation of the C functions'''
 
+
 def grid(*args):
     return args
 
+
 def getCMOR_defaults_include(attr):
     return attr
diff --git a/Test/all_tests.py b/Test/all_tests.py
index dbce74d..99ce618 100644
--- a/Test/all_tests.py
+++ b/Test/all_tests.py
@@ -2,6 +2,7 @@ import glob
 import os
 import unittest
 
+
 def create_test_suite():
     test_file_strings = glob.glob('Test/test_python_CMIP6_CV*.py')
 #    test_file_strings = glob.glob('Test/test_python_CMIP6_CV*further*.py')
diff --git a/Test/check_results.py b/Test/check_results.py
index 96e1bb5..65fe8ba 100644
--- a/Test/check_results.py
+++ b/Test/check_results.py
@@ -1,51 +1,63 @@
 from out_files import out
 from in_files import input_tables
-import sys,os
+import sys
+import os
 
 import cmor
 
 test = sys.argv[1]
 
 test = os.path.split(test)[1]
-if test[-4:].lower()=='.f90':
-    test=test[:-4]
+if test[-4:].lower() == '.f90':
+    test = test[:-4]
 
-print 'Checking results for:',test
+print 'Checking results for:', test
 
-outfiles = out.get(test,[])
-intables = input_tables.get(test,['IPCC_test_table_A',])
+outfiles = out.get(test, [])
+intables = input_tables.get(test, ['IPCC_test_table_A', ])
 
 
 class CMORResultCheckError(Exception):
-    def __init__(self,args=None):
-        self.args=args
+    def __init__(self, args=None):
+        self.args = args
+
 
 nfiles = 0
 
-print 'files:',outfiles
-gotfiles=[]
-missing=[]
+print 'files:', outfiles
+gotfiles = []
+missing = []
 for f in outfiles:
     if f is None:
         print 'No checking'
         sys.exit()
-    tables=[]
+    tables = []
     for t in intables:
-        tables.append(os.path.join("Test",t))
+        tables.append(os.path.join("Test", t))
     tbl = tables.pop(0)
-    if len(tables)==0:
-        tables=[None,]
-    fnm = os.path.join("Test",f)
+    if len(tables) == 0:
+        tables = [None, ]
+    fnm = os.path.join("Test", f)
     if os.path.exists(fnm):
-        nfiles+=1
+        nfiles += 1
         gotfiles.append(fnm)
-        print 'Checking output file:',f
-        cmor.checkCMOR(sys.stdout,fnm,tbl,other_tables=tables)
+        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)),]
+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/cmor_speed_and_compression.py b/Test/cmor_speed_and_compression.py
index 9f66767..a674f15 100644
--- a/Test/cmor_speed_and_compression.py
+++ b/Test/cmor_speed_and_compression.py
@@ -1,4 +1,7 @@
-import cmor,numpy,sys,os
+import cmor
+import numpy
+import sys
+import os
 from time import localtime, strftime
 today = strftime("%Y%m%d", localtime())
 
@@ -7,148 +10,154 @@ try:
     cdms2.setNetcdfShuffleFlag(0)
     cdms2.setNetcdfDeflateFlag(0)
     cdms2.setNetcdfDeflateLevelFlag(0)
-except:
+except BaseException:
     print "This test code needs a recent cdms2 interface for i/0"
     sys.exit()
 
-if len(sys.argv)>1:
+if len(sys.argv) > 1:
     level = int(sys.argv[1])
 else:
-    level=int(os.environ.get("DEFLATE_LEVEL",0))
+    level = int(os.environ.get("DEFLATE_LEVEL", 0))
 
-if len(sys.argv)>2:
-    shuffle= int(sys.argv[2])
+if len(sys.argv) > 2:
+    shuffle = int(sys.argv[2])
 else:
-    shuffle=int(os.environ.get("SHUFFLE",0))
+    shuffle = int(os.environ.get("SHUFFLE", 0))
 
-if level==0:
+if level == 0:
     deflate = 0
 else:
     deflate = 1
 
-f=open("Test/speed_test_table_A")
-s=f.read()
+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")
+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="Tables",set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE_4, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
+cmor.setup(
+    inpath="Tables",
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE_4,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
 cmor.dataset_json("Test/common_user_input.json")
 
-tables=[]
+tables = []
 tables.append(cmor.load_table("mytable"))
-print 'Tables ids:',tables
+print 'Tables ids:', tables
 
 
-## read in data, just one slice
-f=cdms2.open('data/tas_ccsr-95a.xml')
+# read in data, just one slice
+f = cdms2.open('data/tas_ccsr-95a.xml')
 
 
-s=f("tas",time=slice(0,1),squeeze=1)
+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 = 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))
 
-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]]
 
-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'
+                          )
 
-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
+import time
+import 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)
-print 'shape:',sh
-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")
+totcmor = 0
+totcdms = 0
+maxcmor = 0
+mincmor = 1000
+maxcdms = 0
+mincdms = 1000
+c0 = st
+s2 = s * 1
+sh = list(s.shape)
+print 'shape:', sh
+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'
+    # 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
+    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()
+import cdtime
+import os
+ltime = cdtime.reltime(ntimes - 1, 'month since 1980').tocomp()
 #lcmor = os.stat("CMIP6/CMIP/CSIRO-BOM/NICAM/piControl/r1i1p1f1/Amon/tas/gn/v%s/tas_Amon_piControl_NICAM_r1i1p1f1_gn_198001-%i%.2i.nc" % (today,ltime.year,ltime.month))[6]
-lcmor = os.stat("CMIP6/ISMIP6/PCMDI/PCMDI-test-1-0/piControl-withism/r11i1p1f1/Amon/tas/gr/v%s/tas_Amon_piControl-withism_PCMDI-test-1-0_r11i1p1f1_gr_198001-%i%.2i.nc" % (today,ltime.year,ltime.month))[6]
-print 'level:',level,"shuffle:",shuffle
-print 'total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor
+lcmor = os.stat(
+    "CMIP6/ISMIP6/PCMDI/PCMDI-test-1-0/piControl-withism/r11i1p1f1/Amon/tas/gr/v%s/tas_Amon_piControl-withism_PCMDI-test-1-0_r11i1p1f1_gr_198001-%i%.2i.nc" %
+    (today, 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
+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()
+    s = f.read()
     f.close()
     dic = eval(s)
 else:
     dic = {}
 
-dic[(level,shuffle)]=(float(lcmor)/float(lcdms),totcmor/totcdms)
+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")
+    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
index b4fa43f..f57e53e 100644
--- a/Test/cmor_speed_and_compression_01.py
+++ b/Test/cmor_speed_and_compression_01.py
@@ -1,4 +1,7 @@
-import cmor,numpy,sys,os
+import cmor
+import numpy
+import sys
+import os
 from time import localtime, strftime
 today = strftime("%Y%m%d", localtime())
 
@@ -7,7 +10,7 @@ try:
     cdms2.setNetcdfShuffleFlag(0)
     cdms2.setNetcdfDeflateFlag(0)
     cdms2.setNetcdfDeflateLevelFlag(0)
-except:
+except BaseException:
     print "This test code needs a recent cdms2 interface for i/0"
     sys.exit()
 
@@ -36,7 +39,11 @@ f = open("mytable", "w")
 f.write(s)
 f.close()
 
-cmor.setup(inpath="Tables",set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE_4, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
+cmor.setup(
+    inpath="Tables",
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE_4,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
 cmor.dataset_json("Test/common_user_input.json")
 
 tables = []
@@ -44,9 +51,9 @@ tables.append(cmor.load_table("mytable"))
 print 'Tables ids:', tables
 
 
-## read in data, just one slice
-f=cdms2.open('data/tas_ccsr-95a.xml')
-s=f("tas",time=slice(0,12),squeeze=1)
+# read in data, just one slice
+f = cdms2.open('data/tas_ccsr-95a.xml')
+s = f("tas", time=slice(0, 12), squeeze=1)
 ntimes = 12
 varout = 'tas'
 
@@ -78,43 +85,46 @@ myvars[0] = cmor.variable(table_entry=varout,
 import time
 import 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
+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
+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()
+import cdtime
+import os
+ltime = cdtime.reltime(ntimes - 1, 'month since 1980').tocomp()
 #lcmor = os.stat("CMIP6/CMIP/CSIRO-BOM/NICAM/piControl/r1i1p1f1/Amon/tas/gn/v%s/tas_Amon_piControl_NICAM_r1i1p1f1_gn_197901-197912.nc"%(today))[6]
-lcmor = os.stat("CMIP6/ISMIP6/PCMDI/PCMDI-test-1-0/piControl-withism/r11i1p1f1/Amon/tas/gr/v%s/tas_Amon_piControl-withism_PCMDI-test-1-0_r11i1p1f1_gr_197901-197912.nc"%(today))[6]
-print 'level:',level,"shuffle:",shuffle
-print 'total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor
+lcmor = os.stat(
+    "CMIP6/ISMIP6/PCMDI/PCMDI-test-1-0/piControl-withism/r11i1p1f1/Amon/tas/gr/v%s/tas_Amon_piControl-withism_PCMDI-test-1-0_r11i1p1f1_gr_197901-197912.nc" %
+    (today))[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)
diff --git a/Test/cmor_speed_and_compression_02.py b/Test/cmor_speed_and_compression_02.py
index 7eff20c..2bed494 100644
--- a/Test/cmor_speed_and_compression_02.py
+++ b/Test/cmor_speed_and_compression_02.py
@@ -1,187 +1,192 @@
-import cmor,numpy,sys,os
+import cmor
+import numpy
+import sys
+import os
 from time import localtime, strftime
 today = strftime("%Y%m%d", localtime())
 
 try:
     import cdms2
-except:
-    print "This test code needs cdms2 interface for i/0"
+except BaseException: 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:
+if len(sys.argv) > 1:
     level = int(sys.argv[1])
 else:
-    level=int(os.environ.get("DEFLATE_LEVEL",0))
+    level = int(os.environ.get("DEFLATE_LEVEL", 0))
 
-if len(sys.argv)>2:
-    shuffle= int(sys.argv[2])
+if len(sys.argv) > 2:
+    shuffle = int(sys.argv[2])
 else:
-    shuffle=int(os.environ.get("SHUFFLE",0))
+    shuffle = int(os.environ.get("SHUFFLE", 0))
 
-if level==0:
+if level == 0:
     deflate = 0
 else:
     deflate = 1
 
-f=open("Test/speed_test_table_A")
-s=f.read()
+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")
+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.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",
+    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")
+    month_lengths=None, model_id="pcmdi-09a", forcing="co2")
 
-tables=[]
+tables = []
 tables.append(cmor.load_table("mytable"))
-print 'Tables ids:',tables
+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]
+# 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
+ntimes = 100
 Tim = s.getTime().clone()
-myaxes=numpy.arange(10)
-myvars=numpy.arange(10)
+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
+except BaseException: try:
+        missing_value = s.missing_value
+    except BaseException:        missing_value =None
 
-print 'Missing:',type(missing_value),missing_value
+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',
+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
+                           tolerance= 1.e-2
                            )
 
 
-import time,MV2
+import time
+import 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
+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
+        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
+import cdtime
+import 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
+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()
+    s =f.read()
     f.close()
     dic = eval(s)
 else:
     dic = {}
 
-dic[(level,shuffle)]=(float(lcmor)/float(lcdms),totcmor/totcdms)
+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")
+    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_03.py b/Test/cmor_speed_and_compression_03.py
index 89f44bb..8c9f55e 100644
--- a/Test/cmor_speed_and_compression_03.py
+++ b/Test/cmor_speed_and_compression_03.py
@@ -1,4 +1,7 @@
-import cmor,numpy,sys,os
+import cmor
+import numpy
+import sys
+import os
 from time import localtime, strftime
 today = strftime("%Y%m%d", localtime())
 
@@ -8,112 +11,118 @@ try:
     cdms2.setNetcdfShuffleFlag(0)
     cdms2.setNetcdfDeflateFlag(0)
     cdms2.setNetcdfDeflateLevelFlag(0)
-except:
+except BaseException:
     print "This test code needs a recent cdms2 interface for i/0"
     sys.exit()
 
 level = 3
 shuffle = 1
-cmor.setup(inpath="Tables",set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE_4, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
+cmor.setup(
+    inpath="Tables",
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE_4,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
 cmor.dataset_json("Test/common_user_input.json")
 
-tables=[]
+tables = []
 tables.append(cmor.load_table("CMIP6_Amon.json"))
-print 'Tables ids:',tables
+print 'Tables ids:', tables
 
 
-## read in data, just one slice
-f=cdms2.open('data/tas_ccsr-95a.xml')
-s=f("tas",time=slice(0,12),squeeze=1)
+# read in data, just one slice
+f = cdms2.open('data/tas_ccsr-95a.xml')
+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'
-                           )
+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'
+                          )
 cmor.set_deflate(myvars[0], shuffle, 1, level)
 
-import time,MV2
+import time
+import 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
+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
+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()
+import cdtime
+import os
+ltime = cdtime.reltime(ntimes - 1, 'month since 1980').tocomp()
 #lcmor = os.stat("CMIP6/CMIP/CSIRO-BOM/NICAM/piControl/r1i1p1f1/Amon/tas/gn/v%s/tas_Amon_piControl_NICAM_r1i1p1f1_gn_197901-197912.nc"%(today))[6]
-lcmor = os.stat("CMIP6/ISMIP6/PCMDI/PCMDI-test-1-0/piControl-withism/r11i1p1f1/Amon/tas/gr/v%s/tas_Amon_piControl-withism_PCMDI-test-1-0_r11i1p1f1_gr_197901-197912.nc"%(today))[6]
-print 'level:',level,"shuffle:",shuffle
-print 'total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor
+lcmor = os.stat(
+    "CMIP6/ISMIP6/PCMDI/PCMDI-test-1-0/piControl-withism/r11i1p1f1/Amon/tas/gr/v%s/tas_Amon_piControl-withism_PCMDI-test-1-0_r11i1p1f1_gr_197901-197912.nc" %
+    (today))[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
+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()
+    s = f.read()
     f.close()
     dic = eval(s)
 else:
     dic = {}
 
-dic[(level,shuffle)]=(float(lcmor)/float(lcdms),totcmor/totcdms)
+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")
+    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/common_user_input.json b/Test/common_user_input.json
index dd9a799..4b63eba 100644
--- a/Test/common_user_input.json
+++ b/Test/common_user_input.json
@@ -1,12 +1,12 @@
 {
            "_control_vocabulary_file": "CMIP6_CV.json",
+           "_AXIS_ENTRY_FILE":         "CMIP6_coordinate.json",
+           "_FORMULA_VAR_FILE":        "CMIP6_formula_terms.json",
            "_cmip6_option":           "CMIP6",
 
            "tracking_prefix":        "hdl:21.14100",
            "activity_id":            "ISMIP6",
 
-           "branch_method":          "standard",
-           "branch_time_in_child":   "365.0",
 
            "#output":                "Output Path where files are written",
            "outpath":                "CMIP6",
@@ -20,7 +20,6 @@
            "parent_mip_era":         "N/A",
            "mip_era":                "CMIP6",
            "calendar":               "360_day",
-           "branch_time":            "1.34",
 
            "realization_index":      "11",
            "initialization_index":   "1",
@@ -45,10 +44,17 @@
 
            "institution_id":         "PCMDI",
 
-           "parent_activity_id":     "CMIP",
            "parent_experiment_id":   "histALL",
-           "parent_source_id":       "GFDL-CM2-1",
-           "parent_variant_label":   "r1i1p1f3",
+           "parent_activity_id":     "ISMIP6",
+           "parent_mip_era":         "CMIP6",
+
+           "parent_source_id":       "PCMDI-test-1-0",
+           "parent_time_units":      "days since 1970-01-01",
+           "parent_variant_label":   "r123i1p33f5",
+
+           "branch_method":          "Spin-up documentation",
+           "branch_time_in_child":   2310.0,
+           "branch_time_in_parent":  12345.0,
 
 
            "#run_variant":           "Description of run variant (Recommended).",
@@ -62,10 +68,10 @@
 
 
            "#output_path_template":   "Template for output path directory using tables keys or global attributes",
-           "output_path_template":    "<activity_id><institution_id><source_id><experiment_id><variant_label><table><variable_id><grid_label><version>",
-           "output_file_template":    "<variable_id><table><experiment_id><source_id><variant_label><grid_label>",
+           "output_path_template":    "<mip_era><activity_id><institution_id><source_id><experiment_id><_member_id><table><variable_id><grid_label><version>",
+           "output_file_template":    "<variable_id><table><source_id><experiment_id><_member_id><grid_label>",
 
-           "license":                  "CMIP6 model data produced by PCMDI is licensed under a Creative Commons Attribution \"Share Alike\" 4.0 International License (http://creativecommons.org/licenses/by/4.0/). Use of the data should be acknowledged following guidelines found at https://pcmdi.llnl.gov/home/CMIP6/citation.html. [Permissions beyond the scope of this license may be available at http://pcmdi.llnl.gov.] Further information about this data, including some limitations, can be [...]
+           "license":                 "CMIP6 model data produced by Lawrence Livermore PCMDI is licensed under a Creative Commons Attribution ShareAlike 4.0 International License (https://creativecommons.org/licenses). Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 output, including citation requirements and proper acknowledgment. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global  [...]
 
 }
 
diff --git a/Test/common_user_input.json b/Test/common_user_input2.json
similarity index 76%
copy from Test/common_user_input.json
copy to Test/common_user_input2.json
index dd9a799..e388eac 100644
--- a/Test/common_user_input.json
+++ b/Test/common_user_input2.json
@@ -1,5 +1,7 @@
 {
            "_control_vocabulary_file": "CMIP6_CV.json",
+           "_AXIS_ENTRY_FILE":         "CMIP6_coordinate2.json",
+           "_FORMULA_VAR_FILE":        "CMIP6_formula_terms.json",
            "_cmip6_option":           "CMIP6",
 
            "tracking_prefix":        "hdl:21.14100",
@@ -65,7 +67,7 @@
            "output_path_template":    "<activity_id><institution_id><source_id><experiment_id><variant_label><table><variable_id><grid_label><version>",
            "output_file_template":    "<variable_id><table><experiment_id><source_id><variant_label><grid_label>",
 
-           "license":                  "CMIP6 model data produced by PCMDI is licensed under a Creative Commons Attribution \"Share Alike\" 4.0 International License (http://creativecommons.org/licenses/by/4.0/). Use of the data should be acknowledged following guidelines found at https://pcmdi.llnl.gov/home/CMIP6/citation.html. [Permissions beyond the scope of this license may be available at http://pcmdi.llnl.gov.] Further information about this data, including some limitations, can be [...]
+           "license":                  "CMIP6 model data produced by <Your_Center_name> is licensed under a Creative Commons Attribution NonCommercial \"Share Alike\" 4.0 International License (http://creativecommons.org/licenses/by/4.0/).  Use of the data must be acknowledged following guidelines found at https://pcmdi.llnl.gov/home/CMIP6/citation.html.  Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute [...]
 
 }
 
diff --git a/Test/common_user_input.json b/Test/common_user_inputNOBOUNDS.json
similarity index 74%
copy from Test/common_user_input.json
copy to Test/common_user_inputNOBOUNDS.json
index dd9a799..6696a1b 100644
--- a/Test/common_user_input.json
+++ b/Test/common_user_inputNOBOUNDS.json
@@ -1,5 +1,7 @@
 {
            "_control_vocabulary_file": "CMIP6_CV.json",
+           "_AXIS_ENTRY_FILE":         "CMIP6_coordinateTESTNOBOUNDS.json",
+           "_FORMULA_VAR_FILE":        "CMIP6_formula_terms.json",
            "_cmip6_option":           "CMIP6",
 
            "tracking_prefix":        "hdl:21.14100",
@@ -64,8 +66,8 @@
            "#output_path_template":   "Template for output path directory using tables keys or global attributes",
            "output_path_template":    "<activity_id><institution_id><source_id><experiment_id><variant_label><table><variable_id><grid_label><version>",
            "output_file_template":    "<variable_id><table><experiment_id><source_id><variant_label><grid_label>",
+           "license":                 "CMIP6 model data produced by Lawrence Livermore PCMDI is licensed under a Creative Commons Attribution ShareAlike 4.0 International License (https://creativecommons.org/licenses). Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 output, including citation requirements and proper acknowledgment. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global  [...]
 
-           "license":                  "CMIP6 model data produced by PCMDI is licensed under a Creative Commons Attribution \"Share Alike\" 4.0 International License (http://creativecommons.org/licenses/by/4.0/). Use of the data should be acknowledged following guidelines found at https://pcmdi.llnl.gov/home/CMIP6/citation.html. [Permissions beyond the scope of this license may be available at http://pcmdi.llnl.gov.] Further information about this data, including some limitations, can be [...]
 
 }
 
diff --git a/Test/common_user_input.json b/Test/common_user_input_NOID.json
similarity index 74%
copy from Test/common_user_input.json
copy to Test/common_user_input_NOID.json
index dd9a799..f3bd551 100644
--- a/Test/common_user_input.json
+++ b/Test/common_user_input_NOID.json
@@ -1,5 +1,7 @@
 {
            "_control_vocabulary_file": "CMIP6_CV.json",
+           "_AXIS_ENTRY_FILE":         "CMIP6_coordinate.json",
+           "_FORMULA_VAR_FILE":        "CMIP6_formula_terms.json",
            "_cmip6_option":           "CMIP6",
 
            "tracking_prefix":        "hdl:21.14100",
@@ -43,7 +45,6 @@
            "grid_label":             "gr",
            "nominal_resolution":     "5 km",
 
-           "institution_id":         "PCMDI",
 
            "parent_activity_id":     "CMIP",
            "parent_experiment_id":   "histALL",
@@ -65,7 +66,8 @@
            "output_path_template":    "<activity_id><institution_id><source_id><experiment_id><variant_label><table><variable_id><grid_label><version>",
            "output_file_template":    "<variable_id><table><experiment_id><source_id><variant_label><grid_label>",
 
-           "license":                  "CMIP6 model data produced by PCMDI is licensed under a Creative Commons Attribution \"Share Alike\" 4.0 International License (http://creativecommons.org/licenses/by/4.0/). Use of the data should be acknowledged following guidelines found at https://pcmdi.llnl.gov/home/CMIP6/citation.html. [Permissions beyond the scope of this license may be available at http://pcmdi.llnl.gov.] Further information about this data, including some limitations, can be [...]
+           "license":                 "CMIP6 model data produced by Lawrence Livermore PCMDI is licensed under a Creative Commons Attribution ShareAlike 4.0 International License (https://creativecommons.org/licenses). Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 output, including citation requirements and proper acknowledgment. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global  [...]
+
 
 }
 
diff --git a/Test/common_user_input.json b/Test/common_user_input_a.json
similarity index 76%
copy from Test/common_user_input.json
copy to Test/common_user_input_a.json
index dd9a799..beb914a 100644
--- a/Test/common_user_input.json
+++ b/Test/common_user_input_a.json
@@ -1,5 +1,7 @@
 {
            "_control_vocabulary_file": "CMIP6_CV.json",
+           "_AXIS_ENTRY_FILE":         "CMIP6_coordinate.json",
+           "_FORMULA_VAR_FILE":        "CMIP6_formula_terms.json",
            "_cmip6_option":           "CMIP6",
 
            "tracking_prefix":        "hdl:21.14100",
@@ -65,7 +67,7 @@
            "output_path_template":    "<activity_id><institution_id><source_id><experiment_id><variant_label><table><variable_id><grid_label><version>",
            "output_file_template":    "<variable_id><table><experiment_id><source_id><variant_label><grid_label>",
 
-           "license":                  "CMIP6 model data produced by PCMDI is licensed under a Creative Commons Attribution \"Share Alike\" 4.0 International License (http://creativecommons.org/licenses/by/4.0/). Use of the data should be acknowledged following guidelines found at https://pcmdi.llnl.gov/home/CMIP6/citation.html. [Permissions beyond the scope of this license may be available at http://pcmdi.llnl.gov.] Further information about this data, including some limitations, can be [...]
+           "license":                  "CMIP6 model data produced by <Your_Center_name> is licensed under a Creative Commons Attribution NonCommercial \"Share Alike\" 4.0 International License (http://creativecommons.org/licenses/by/4.0/).  Use of the data must be acknowledged following guidelines found at https://pcmdi.llnl.gov/home/CMIP6/citation.html.  Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute [...]
 
 }
 
diff --git a/Test/common_user_input_b.json b/Test/common_user_input_b.json
new file mode 100644
index 0000000..1dabe88
--- /dev/null
+++ b/Test/common_user_input_b.json
@@ -0,0 +1,73 @@
+{
+           "_control_vocabulary_file": "CMIP6_CV.json",
+           "_AXIS_ENTRY_FILE":         "CMIP6_coordinate.json",
+           "_FORMULA_VAR_FILE":        "CMIP6_formula_terms.json",
+           "_cmip6_option":           "CMIP6",
+
+           "tracking_prefix":        "hdl:21.14100",
+           "activity_id":            "a",
+
+           "branch_method":          "a",
+           "branch_time_in_child":   "a.0",
+
+           "#output":                "Output Path where files are written",
+           "outpath":                "CMIP6",
+
+           "#experiment_id":         "CMIP6 valid experiment_ids are found in CMIP6_CV.json",
+           "experiment_id":          "aaa",
+           "sub_experiment_id":      "a",
+           "sub_experiment":         "a",
+
+           "source_type":            "aaaaa",
+           "parent_mip_era":         "a",
+           "mip_era":                "a",
+           "calendar":               "360_day",
+           "branch_time":            "1.34",
+
+           "realization_index":      "a",
+           "initialization_index":   "a",
+           "physics_index":          "a",
+           "forcing_index":          "a",
+
+           "#contact ":              "Not required",
+           "contact ":              "a",
+
+           "#history":               "not required, supplemented by CMOR",
+           "history":                "Output from archivcl_A1.nce/giccm_03_std_2xCO2_2256.",
+
+           "#comment":               "Not required",
+           "comment":                "Equilibrium reached after 30-year spin-up after which data were output starting with nominal date of January 2030",
+
+           "#references":            "Not required",
+           "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.)'",
+
+           "grid":                   "a",
+           "grid_label":             "a",
+           "nominal_resolution":     "a km",
+
+           "institution_id":         "a",
+
+           "parent_activity_id":     "a",
+           "parent_experiment_id":   "a",
+           "parent_source_id":       "a-CM2-1",
+           "parent_variant_label":   "a",
+
+
+           "#run_variant":           "a of run variant (Recommended).",
+           "run_variant":            "a: black carbon aerosol only",
+
+           "#source_id":              "Model Source",
+           "source_id":               "a-test-1-0",
+
+           "#source":                "source title, first part is source_id",
+           "source":                 "a-test 1.0",
+
+
+           "#output_path_template":   "Template for output path directory using tables keys or global attributes",
+           "output_path_template":    "<activity_id><institution_id><source_id><experiment_id><variant_label><table><variable_id><grid_label><version>",
+           "output_file_template":    "<variable_id><table><experiment_id><source_id><variant_label><grid_label>",
+
+           "license":                  "CMIP6 model data produced by <Your_Center_name> is licensed under a Creative Commons Attribution NonCommercial \"Share Alike\" 4.0 International License (http://creativecommons.org/licenses/by/4.0/).  Use of the data must be acknowledged following guidelines found at https://pcmdi.llnl.gov/home/CMIP6/citation.html.  Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute [...]
+
+}
+
diff --git a/Test/in_files.py b/Test/in_files.py
index c010f74..e5b5ac6 100644
--- a/Test/in_files.py
+++ b/Test/in_files.py
@@ -1,31 +1,31 @@
 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'],
+    '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_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'],
-    }
+    '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/jamie_hybrid_height.py b/Test/jamie_hybrid_height.py
index 9685569..d0f10ad 100644
--- a/Test/jamie_hybrid_height.py
+++ b/Test/jamie_hybrid_height.py
@@ -3,34 +3,35 @@
 import cmor
 import numpy
 
+
 def main():
 
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE)
+               netcdf_file_action=cmor.CMOR_REPLACE)
     cmor.dataset_json("Test/common_user_input.json")
- 
+
     table = 'CMIP6_6hrLev.json'
     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([1.2,1.2], numpy.float32)
-    numpy.reshape(values, (2,1,1,1))
+    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([1.2, 1.2], numpy.float32)
+    numpy.reshape(values, (2, 1, 1, 1))
     axis_ids = list()
     for axis in axes:
         axis_id = cmor.axis(**axis)
@@ -38,23 +39,25 @@ def main():
 
     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.]]) 
+    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
+                          missing_value=-99
                           )
 
     print 'cmor.variable call complete'
-    
-    cmor.write(varid, values, time_vals = [6.0], time_bnds = [3., 12.])
+
+    cmor.write(varid, values, time_vals=[6.0], time_bnds=[3., 12.])
 
     print 'cmor.write call complete'
 
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/jamie_positive.py b/Test/jamie_positive.py
index 981c615..8702c4f 100644
--- a/Test/jamie_positive.py
+++ b/Test/jamie_positive.py
@@ -2,28 +2,29 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
+               netcdf_file_action=cmor.CMOR_REPLACE_3)
     cmor.dataset_json("Test/common_user_input.json")
- 
+
     table = 'CMIP6_Amon.json'
     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
+    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)
@@ -35,14 +36,15 @@ def main():
         varid = cmor.variable(var,
                               units,
                               axis_ids,
-                              history = 'variable history',
-                              missing_value = -99,
-                              positive = positive
+                              history='variable history',
+                              missing_value=-99,
+                              positive=positive
                               )
-        cmor.write(varid, values, time_vals = [15], time_bnds = [ [0,30] ])
+        cmor.write(varid, values, time_vals=[15], time_bnds=[[0, 30]])
 
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/nc2asc.py b/Test/nc2asc.py
index 88f2600..b3fa29b 100755
--- a/Test/nc2asc.py
+++ b/Test/nc2asc.py
@@ -1,69 +1,74 @@
 #!/usr/bin/env python
 
-import cdms2,sys, genutil
+import cdms2
+import sys
+import genutil
 cdms2.setAutoBounds('on')
 
 type = 'd'
 
-order='zxty'
-#order='xty'
+order = 'zxty'
+# order='xty'
 #order = None
 #order= 'txy'
-var ='ta'
-if len(sys.argv)>2:
-	fnm=sys.argv[1]
-	fout=sys.argv[2]
+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)
+    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)
+f = cdms2.open(fnm)
 
-ntimes= 3
-print 'var:',var
-#s=f(var,time=slice(0,3),latitude=(-20,20),order=order,squeeze=1)
+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'))
+    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
+    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)
+    p = s.getLevel()
+    p.id = 'pressure'
+    p.units = 'Pa'
+except BaseException:
+    pass
+# print genutil.minmax(s)
 f.close()
 
-f=open(fout,'w')
+f = open(fout, 'w')
 
-ndim=s.rank()
+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)
+    ax = s.getAxis(i)
     print >>f, len(ax)
-	
+
 for i in range(ndim):
-    ax=s.getAxis(i)
+    ax = s.getAxis(i)
     if ax.isLatitude():
-	    print >>f, 'latitude'
+        print >>f, 'latitude'
     elif ax.isLongitude():
-	    print >>f,'longitude'
+        print >>f, 'longitude'
     else:
-	    print >>f, ax.id
+        print >>f, ax.id
     print >>f, ax.units
-    print  ax.id
-    print  ax.units
+    print ax.id
+    print ax.units
     for j in ax[:]:
         print >>f, j,
     print >>f
@@ -72,13 +77,13 @@ for i in range(ndim):
     print >>f
 f.flush()
 
-s=s.filled(120).astype(type)
-s=s.flat
-j=0
+s = s.filled(120).astype(type)
+s = s.flat
+j = 0
 for i in s[:]:
     print >>f, i,
-    j+=1
+    j += 1
 print >>f
-print j,s[-1]
+print j, s[-1]
 
 f.close()
diff --git a/Test/out_files.py b/Test/out_files.py
index a448bfb..1211d42 100644
--- a/Test/out_files.py
+++ b/Test/out_files.py
@@ -400,94 +400,94 @@ IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls97
 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'],
-    }
+    '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/speed_test_table_A b/Test/speed_test_table_A
index 96a30b6..dfe9013 100644
--- a/Test/speed_test_table_A
+++ b/Test/speed_test_table_A
@@ -9,8 +9,9 @@
         "table_date": "24 February 2016",
         "realm": "atmos",
         "generic_levels": "alevel alevhalf",
-        "data_specs_version": "3.0",
-        "Conventions": "CF-1.8 CMIP-6.0"
+        "data_specs_version": "10.10.10",
+        "product": "model-output",
+        "Conventions": "CF-1.7 CMIP-6.0"
     },
     "axis_entry": {
         "olayer100m": {
diff --git a/Test/test_checker_works.py b/Test/test_checker_works.py
index fcee767..c00a06f 100644
--- a/Test/test_checker_works.py
+++ b/Test/test_checker_works.py
@@ -14,935 +14,935 @@ cdms2.setNetcdfDeflateLevelFlag(0)
 fo = sys.stdout
 
 if fo != sys.stdout:
-    fo=open(fo,"w")
-    
+    fo = open(fo, "w")
+
 # First of all run the Test script that generates the "good" file
-#execfile("Test/test_python_joerg_3.py")
+# execfile("Test/test_python_joerg_3.py")
 
 file = 'Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc'
 
 
-cmor.checkCMOR(fo,file,"Tables/CMIP5_6hrLev")
+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
+# 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/DcppC2/6hr/atmos/hus/hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/huhs/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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")
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/huhs/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmfos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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")
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmfos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/16hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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")
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/16hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolfdc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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")
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolfdc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10b/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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")
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10b/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
-## try:
-##     F="Test/CMIP5/output/INSTITUTEd_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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")
+# try:
+# F="Test/CMIP5/output/INSTITUTEd_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
-## try:
-##     F="Test/CMIP5/outputt/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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")
+# try:
+# F="Test/CMIP5/outputt/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
-## try:
-##     F="Test/CMIpP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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")
+# try:
+# F="Test/CMIpP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
 
-## try:
-##     F="Test/hus_6hrLev_pcmdi-10a_DcppC2_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")
+# try:
+# F="Test/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
-## try:
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_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")
+# try:
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
-## #The following should pass, DRS test turned off
-## F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# The following should pass, DRS test turned off
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_20f10010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_20100g10100-2010010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
+# os.remove(F)
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010g100-2010010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
+# os.remove(F)
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_201001010g0-2010010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
+# os.remove(F)
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# os.remove(F)
+# try:
 ##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2f01001041 8.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
+# 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:
+# 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/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010h010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
+# os.remove(F)
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010h418.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
+# os.remove(F)
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-201001041g8.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
+# os.remove(F)
+# try:
+# F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/DcppC2/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# os.remove(F)
 
-## try:
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# try:
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# 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_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##         shutil.copy(file,F)
+# for gatt in gbl:
+# try:
+# print 'Testing no %s global att' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##         raise Exception,err
-##     os.remove(F)
+# os.remove(F)
 
 # test validity of Creation Time
-## try:
+# try:
 ##     gatt = "creation_date"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing Validity of %s' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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?'
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
+# os.remove(F)
+# try:
 ##     gatt = "branch_time"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing Validity of %s' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
+# os.remove(F)
+# try:
 ##     gatt = "branch_time"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing Validity of %s' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
+# os.remove(F)
+# try:
 ##     gatt = "experiment_id"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing Validity of %s' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
+# os.remove(F)
+# try:
 ##     gatt = "experiment"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing Validity of %s' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
+# os.remove(F)
+# try:
 ##     gatt = "forcing"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing Validity of %s' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
+# os.remove(F)
+# try:
 ##     gatt = "frequency"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing Validity of %s' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
+# os.remove(F)
+# try:
 ##     gatt = "frequency"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing Validity of %s' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
+# os.remove(F)
+# try:
 ##     gatt = "parent_experiment_id"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing Validity of %s' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
+# os.remove(F)
+# try:
 ##     gatt = "parent_experiment_id"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing Validity of %s' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# if fglb is False:
+# f.write(l)
+# elif l.find(":%s" % gatt)==-1:
+# f.write(l)
+# else:
 ##             f.write(l.strip()[:-6]+'DcppC2" ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
+# os.remove(F)
+# try:
 ##     gatt = "project_id"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing Validity of %s' % (gatt)
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
+# os.remove(F)
 
-## try:
-##     print 'Testing Validity of variable type'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# try:
+# print 'Testing Validity of variable type'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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"))
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing Validity of coordinate type'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing Validity of coordinate type'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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"))
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing Validity of coordinate type'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing Validity of coordinate type'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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"))
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing Validity of coordinate name'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing Validity of coordinate name'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing Validity of coordinate units'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing Validity of coordinate units'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
+# os.remove(F)
+# try:
 ##     import cdms2
-##     print 'Testing Validity of time units'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     f=cdms2.open(F,"r+")
-##     t=f['hus'].getTime()
+# print 'Testing Validity of time units'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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")
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
+# os.remove(F)
 
 
-## data = """time_bnds =
+# data = """time_bnds =
 ##   -0.125, 0.125,
 ##   0.125, 0.375,
 ##   0.375, 0.625,
@@ -950,8 +950,8 @@ cmor.checkCMOR(fo,file,"Tables/CMIP5_6hrLev")
 ##   0.875, 1.125,
 ##   1.125, 1.375,
 ##   1.375, 1.625,
-##   1.625, 1.875 ;"""
-## data2 = """time_bnds =
+# 1.625, 1.875 ;"""
+# data2 = """time_bnds =
 ##   -0.1251, 0.1251,
 ##   0.1251, 0.3751,
 ##   0.3751, 0.6251,
@@ -959,35 +959,35 @@ cmor.checkCMOR(fo,file,"Tables/CMIP5_6hrLev")
 ##   0.8751, 1.1251,
 ##   1.1251, 1.3751,
 ##   1.3751, 1.6251,
-##   1.6251, 1.8751 ;"""
-## try:
+# 1.6251, 1.8751 ;"""
+# try:
 ##     import cdms2
-##     print 'Testing time is mean of bounds'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing time is mean of bounds'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
+# os.remove(F)
 
-## data = """ time_bnds =
+# data = """ time_bnds =
 ##   -0.125, 0.125,
 ##   0.125, 0.375,
 ##   0.375, 0.625,
@@ -995,45 +995,45 @@ cmor.checkCMOR(fo,file,"Tables/CMIP5_6hrLev")
 ##   0.875, 1.125,
 ##   1.125, 1.375,
 ##   1.375, 1.625,
-##   1.625, 1.875 ;"""
-## try:
+# 1.625, 1.875 ;"""
+# try:
 ##     import cdms2
-##     print 'Testing lack of bounds'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing lack of bounds'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## data = """ time_bnds =
+# os.remove(F)
+# data = """ time_bnds =
 ##   -0.125, 0.125,
 ##   0.125, 0.375,
 ##   0.375, 0.625,
@@ -1041,705 +1041,705 @@ cmor.checkCMOR(fo,file,"Tables/CMIP5_6hrLev")
 ##   0.875, 1.125,
 ##   1.125, 1.375,
 ##   1.375, 1.625,
-##   1.625, 1.875 ;"""
-## try:
+# 1.625, 1.875 ;"""
+# try:
 ##     import cdms2
-##     print 'Testing lack of bounds'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing lack of bounds'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
+# os.remove(F)
 ## data="""double ap(lev) ;"""
-## n=567
-## data=data[:15]
-## data2=""" ap = 0.1, 0.2, 0.3, 0.22, 0.1 ;
+# 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 ="""
+# ps ="""
 
-## data3=""" ap_bnds =
+# data3=""" ap_bnds =
 ##   0, 0.15,
 ##   0.15, 0.25,
 ##   0.25, 0.25,
 ##   0.25, 0.16,
 ##   0.16, 0 ;
 
-##  b_bnds =
+# b_bnds =
 ##   0, 0.05,
 ##   0.05, 0.15,
 ##   0.15, 0.35,
 ##   0.35, 0.65,
 ##   0.65, 1 ;
-## """
-## try:
+# """
+# try:
 ##     import cdms2
-##     print 'Testing lack of formulaterms'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# print 'Testing lack of formulaterms'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong names on zfactors axis for hybrid'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing wrong names on zfactors axis for hybrid'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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")
+# 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)
+# 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)
+# 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:
+# 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:
+# 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_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing wrong names on stabdard_name axis for hybrid'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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_DcppC2_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:
+# 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_DcppC2_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_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing calendar attribute'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong calendar attribute'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing wrong calendar attribute'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong variable datatype'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing wrong variable datatype'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong variable name'
-##     F="HUS_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing wrong variable name'
+# F="HUS_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong variable name'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing wrong variable name'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong variable units'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing wrong variable units'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong dim ordering'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing wrong dim ordering'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
+# 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 ;"""
+# 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_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# try:
+# print 'Testing wrong dim ordering'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong dim ordering'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing wrong dim ordering'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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"):
+# 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)
+# 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)
+# 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:
+# 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:
+# 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_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# 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_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
+# 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_DcppC2_r1i1p1_2010010100-2009123018.nc"
-##     shutil.copy(file,F)
+# try:
+# print 'Testing wrong dim ordering'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing fill and miss values different ordering'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing fill and miss values different ordering'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing fill and miss values different ordering'
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing fill and miss values different ordering'
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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:
+# 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)
+# 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)
+# 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:
+# 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:
+# 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_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##         shutil.copy(file,F)
+# 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_DcppC2_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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##         raise Exception,err
-##     os.remove(F)
+# os.remove(F)
 ## att = 'associated_files'
-## try:
-##     print 'Testing wrong var att %s' % att
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# try:
+# print 'Testing wrong var att %s' % att
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong var att %s' % att
-##     F="hus_6hrLev_pcmdi-10a_DcppC2_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
+# os.remove(F)
+# try:
+# print 'Testing wrong var att %s' % att
+# F="hus_6hrLev_pcmdi-10a_DcppC2_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:
+# 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_DcppC2_r0i0p0.nc cellAreaFile: areacellla_fx_pcmdi-10a_DcppC2_r0i0p0.nc" ;')
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
+# 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)
+# 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:
+# 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:
+# except Exception,err:
 ##     raise Exception,err
-## os.remove(F)
-att="cell_measures"
+# os.remove(F)
+att = "cell_measures"
 try:
     print 'Testing wrong var att %s' % att
-    F="hus_6hrLev_pcmdi-10a_DcppC2_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 = "hus_6hrLev_pcmdi-10a_DcppC2_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:
+        if ln.find("hus:%s" % att) > -1:
             f.write(' hus:%s = "area: cl" ;' % att)
             continue
         f.write(ln)
@@ -1749,19 +1749,16 @@ try:
     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
+    cmor.checkCMOR(fo, F, "Tables/CMIP5_6hrLev", dodrs=False)
+    raise Exception("missing var att %s test failed" % att)
+except cmor.check_CMOR_compliant.CMORError as 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
+        raise Exception(
+            "Checker of variable type failed for the wrong reason! %s" %
+            (err))
+except Exception as err:
+    raise Exception(err)
 os.remove(F)
-
-
-
-
-
diff --git a/Test/test_chunking.py b/Test/test_chunking.py
new file mode 100644
index 0000000..6e27463
--- /dev/null
+++ b/Test/test_chunking.py
@@ -0,0 +1,64 @@
+import cmor
+import numpy
+import sys
+import os
+from time import localtime, strftime
+today = strftime("%Y%m%d", localtime())
+
+try:
+    import cdms2
+    cdms2.setNetcdfShuffleFlag(0)
+    cdms2.setNetcdfDeflateFlag(0)
+    cdms2.setNetcdfDeflateLevelFlag(0)
+except BaseException:
+    print "This test code needs a recent cdms2 interface for i/0"
+    sys.exit()
+
+
+cmor.setup(
+    inpath="Tables",
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE_4,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
+cmor.dataset_json("Test/common_user_input.json")
+
+tables = []
+tables.append(cmor.load_table("CMIP6_chunking.json"))
+print 'Tables ids:', tables
+
+
+# read in data, just one slice
+f = cdms2.open('data/tas_ccsr-95a.xml')
+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'
+                          )
+
+
+cmor.write(myvars[0], s.filled(), ntimes_passed=ntimes)
+cmor.close()
+
+#lcmor = os.stat("CMIP6/ISMIP6/PCMDI/PCMDI-test-1-0/piControl-withism/r11i1p1f1/Amon/tas/gr/v%s/tas_Amon_piControl-withism_PCMDI-test-1-0_r11i1p1f1_gr_197901-197912.nc"%(today))[6]
diff --git a/Test/test_compression.py b/Test/test_compression.py
index 41561c1..fddaefc 100644
--- a/Test/test_compression.py
+++ b/Test/test_compression.py
@@ -1,56 +1,67 @@
-import sys,os
+import sys
+import os
 try:
     import cdms2
-except:
+except BaseException:
     print 'This test requires cdms2 for I/O'
     sys.exit()
-    
-import cmor,numpy
 
-f=cdms2.open(os.path.join('data/clt.nc'))
+import cmor
+import numpy
+
+f = cdms2.open(os.path.join('data/clt.nc'))
 
 
 pth = os.path.split(os.path.realpath(os.curdir))
-if pth[-1]=='Test':
+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)
+           netcdf_file_action=cmor.CMOR_REPLACE)
 
 cmor.dataset_json("Test/common_user_input.json")
 
 cmor.load_table("Tables/CMIP6_Amon.json")
 
-s=f("clt",slice(14))
+s = f("clt", slice(14))
 Saxes = s.getAxisList()
 
-axes=[]
+axes = []
 for ax in Saxes[1:]:
-    tmp = cmor.axis(ax.id,coord_vals=ax[:],cell_bounds=ax.getBounds(),units=ax.units)
+    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
+# Now creates a dummy HUGE axis for resizing s as really big
 factor = 100
-nt = s.shape[0]*factor
-print 'nt is:',nt
+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)
+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)*10000.
+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) * 10000.
 print s.shape
-cmor.write(var_id1,s)
+cmor.write(var_id1, s)
 cmor.close(var_id1)
-cmor.write(var_id2,s)
+cmor.write(var_id2, s)
 
 cmor.close()
diff --git a/Test/test_dimensionless.f90 b/Test/test_dimensionless.f90
index fd0fbbc..5a9edd0 100644
--- a/Test/test_dimensionless.f90
+++ b/Test/test_dimensionless.f90
@@ -128,14 +128,14 @@ PROGRAM ipcc_test_code
 
                                 ! My variable names for IPCC Table A1c fields
   CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'tro3 '/)
+                                 varin3d=(/'o3 '/)
 
                                 ! Units appropriate to my data
   CHARACTER (LEN=5), DIMENSION(n3d) :: &
                                   units3d=(/ '1e-9 '/)
 
                      ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=4), DIMENSION(n3d) :: entry3d = (/ 'tro3' /)
+  CHARACTER (LEN=4), DIMENSION(n3d) :: entry3d = (/ 'o3' /)
 
                                 ! My variable names for IPCC Table A1a fields
   CHARACTER (LEN=8), DIMENSION(n2d) :: &
diff --git a/Test/test_doc.py b/Test/test_doc.py
index 2dd20aa..8c24564 100644
--- a/Test/test_doc.py
+++ b/Test/test_doc.py
@@ -1,31 +1,29 @@
 import cmor
 
-cmor.setup(inpath='Tables',netcdf_file_action=cmor.CMOR_REPLACE_4)
+cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE_4)
 
 cmor.dataset_json("Test/common_user_input.json")
-    
-table='CMIP6_Amon.json'
+
+table = 'CMIP6_Amon.json'
 cmor.load_table(table)
 
-itime = cmor.axis(table_entry= 'time',
-                  units= 'days since 2000-01-01 00:00:00',
-                  coord_vals= [15,],
-                  cell_bounds= [0, 30])
-ilat = cmor.axis(table_entry= 'latitude',
-                 units= 'degrees_north',
-                 coord_vals= [0],
-                 cell_bounds= [-1, 1])
-ilon = cmor.axis(table_entry= 'longitude',
-                 units= 'degrees_east',
-                 coord_vals= [90],
-                 cell_bounds= [89, 91])
+itime = cmor.axis(table_entry='time',
+                  units='days since 2000-01-01 00:00:00',
+                  coord_vals=[15, ],
+                  cell_bounds=[0, 30])
+ilat = cmor.axis(table_entry='latitude',
+                 units='degrees_north',
+                 coord_vals=[0],
+                 cell_bounds=[-1, 1])
+ilon = cmor.axis(table_entry='longitude',
+                 units='degrees_east',
+                 coord_vals=[90],
+                 cell_bounds=[89, 91])
+
+axis_ids = [itime, ilat, ilon]
 
-axis_ids = [itime,ilat,ilon]
-              
 varid = cmor.variable('ts', 'K', axis_ids)
 cmor.write(varid, [273])
-outfile=cmor.close(varid, file_name=True)
-print "File written: ",outfile
+outfile = cmor.close(varid, file_name=True)
+print "File written: ", outfile
 cmor.close()
-
-
diff --git a/Test/test_grid_stub_jamie.py b/Test/test_grid_stub_jamie.py
index 76bbff4..0b33067 100644
--- a/Test/test_grid_stub_jamie.py
+++ b/Test/test_grid_stub_jamie.py
@@ -4,23 +4,24 @@ import numpy
 import unittest
 from cmor import grid
 
-import _cmor_stub #this should be a stub cmor implementation
+import _cmor_stub  # this should be a stub cmor implementation
+
 
 class TestGrid(unittest.TestCase):
-    
+
     def test_pass_only_axis_ids(self):
-        for axis_ids in ([1,2], numpy.array([1,2])):
+        for axis_ids in ([1, 2], numpy.array([1, 2])):
             args = grid(axis_ids)
             self.assert_on_axis_id_args(axis_ids, args)
             self.assert_on_default_coordinates(args)
             self.assert_on_default_vertices(args)
-            
+
     def test_lat_lon_grid(self):
         axis_ids = [1, 2]
         for atype in (numpy.array, list, tuple):
-            lats = atype(numpy.arange(2*3).reshape(2,3) + 0.1)
-            lons = atype(numpy.arange(2*3).reshape(2,3) - 0.1)
-            args = grid(axis_ids, latitude = lats, longitude = lons)
+            lats = atype(numpy.arange(2 * 3).reshape(2, 3) + 0.1)
+            lons = atype(numpy.arange(2 * 3).reshape(2, 3) - 0.1)
+            args = grid(axis_ids, latitude=lats, longitude=lons)
             self.assert_on_axis_id_args(axis_ids, args)
             self.assert_on_coordiantes(lats, lons, args)
             self.assert_on_default_vertices(args)
@@ -29,15 +30,31 @@ class TestGrid(unittest.TestCase):
         axis_ids = [1, 2]
         nvert = 4
         for atype in (numpy.array, list, tuple):
-            lats = atype(numpy.arange(2*3).reshape(2,3) + 0.1)
-            lons = atype(numpy.arange(2*3).reshape(2,3) - 0.1)
-            lat_vert = atype(numpy.arange(2*3*nvert).reshape(2,3,nvert) + 0.5)
-            lon_vert = atype(numpy.arange(2*3*nvert).reshape(2,3,nvert) - 0.5)
+            lats = atype(numpy.arange(2 * 3).reshape(2, 3) + 0.1)
+            lons = atype(numpy.arange(2 * 3).reshape(2, 3) - 0.1)
+            lat_vert = atype(
+                numpy.arange(
+                    2 *
+                    3 *
+                    nvert).reshape(
+                    2,
+                    3,
+                    nvert) +
+                0.5)
+            lon_vert = atype(
+                numpy.arange(
+                    2 *
+                    3 *
+                    nvert).reshape(
+                    2,
+                    3,
+                    nvert) -
+                0.5)
             args = grid(axis_ids,
-                        latitude = lats,
-                        longitude = lons,
-                        latitude_vertices = lat_vert,
-                        longitude_vertices = lon_vert)
+                        latitude=lats,
+                        longitude=lons,
+                        latitude_vertices=lat_vert,
+                        longitude_vertices=lon_vert)
             self.assert_on_axis_id_args(axis_ids, args)
             self.assert_on_coordiantes(lats, lons, args)
             self.assert_on_vertices(nvert, lat_vert, lon_vert, args)
@@ -55,110 +72,120 @@ class TestGrid(unittest.TestCase):
         self.assertEquals(nvert, args[5])
         self.assertTrue((lat_vert == args[6]).all())
         self.assertTrue((lon_vert == args[7]).all())
-        
+
     def assert_on_default_coordinates(self, args):
         self.assertEquals('f', args[2])
         self.assertEquals(None, args[3])
         self.assertEquals(None, args[4])
-        
+
     def assert_on_default_vertices(self, args):
         self.assertEquals(0, args[5])
         self.assertEquals(None, args[6])
         self.assertEquals(None, args[7])
 
+
 class TestGridCallErrors(unittest.TestCase):
     def test_error_rank_axis_ids(self):
         try:
             grid([[1], [2]])
             self.fail('should raise exception')
-        except Exception, e:
+        except Exception as e:
             self.assertEquals('error axes list/array must be 1D', str(e))
-            
+
     def test_error_on_axis_ids(self):
-        bad_axis_ids = ( 0, 'astring')
+        bad_axis_ids = (0, 'astring')
         for axis_ids in bad_axis_ids:
             try:
                 grid(axis_ids)
                 self.fail('should raise exception')
-            except Exception, e:
+            except Exception as e:
                 self.assertEquals('Error could not convert axis_ids list to a numpy array',
                                   str(e))
 
     def test_error_latitude_no_longitude(self):
         try:
-            grid([0], latitude = numpy.arange(2))
+            grid([0], latitude=numpy.arange(2))
             self.fail('should raise exception')
-        except Exception, e:
-            self.assertEquals("Error could not convert longitude to a numpy array", str(e))
+        except Exception as e:
+            self.assertEquals(
+                "Error could not convert longitude to a numpy array", str(e))
 
     def test_error_longitude_no_latitude(self):
         try:
-            grid([0], longitude = numpy.arange(2))
+            grid([0], longitude=numpy.arange(2))
             self.fail('should raise exception')
-        except Exception, e:
-            self.assertEquals("latitude and longitude must be BOTH an array or None", str(e))
+        except Exception as e:
+            self.assertEquals(
+                "latitude and longitude must be BOTH an array or None", str(e))
 
     def test_error_type_lats(self):
-        lons = numpy.arange(2*3).reshape(2,3)
+        lons = numpy.arange(2 * 3).reshape(2, 3)
         for lats in (0, 0.1, 'string', {}):
             try:
-                grid([0, 11], latitude = lats, longitude = lons)
+                grid([0, 11], latitude=lats, longitude=lons)
                 self.fail('should raise exception')
-            except Exception, e:
-                self.assertEquals('Error could not convert latitude to a numpy array', str(e))
+            except Exception as e:
+                self.assertEquals(
+                    'Error could not convert latitude to a numpy array', str(e))
+
     def test_error_type_lons(self):
-        lats = numpy.arange(2*3).reshape(2,3)
+        lats = numpy.arange(2 * 3).reshape(2, 3)
         for lons in (0, 0.1, 'string', {}):
             try:
-                grid([0, 1], latitude = lats, longitude = lons)
+                grid([0, 1], latitude=lats, longitude=lons)
                 self.fail('should raise exception')
-            except Exception, e:
-                self.assertEquals('Error could not convert longitude to a numpy array', str(e))            
+            except Exception as e:
+                self.assertEquals(
+                    'Error could not convert longitude to a numpy array', str(e))
+
     def test_error_rank_lons(self):
         axis_ids = [1, 2]
-        lats = numpy.arange(2*3).reshape(2,3)
+        lats = numpy.arange(2 * 3).reshape(2, 3)
         lons = numpy.arange(3)
         try:
-            grid(axis_ids, latitude = lats, longitude = lons)
+            grid(axis_ids, latitude=lats, longitude=lons)
             self.fail('should raise exception')
-        except Exception, e:
-            self.assertEquals("longitude's rank does not match number of axes passed via axis_ids", str(e))
+        except Exception as e:
+            self.assertEquals(
+                "longitude's rank does not match number of axes passed via axis_ids", str(e))
 
     def test_error_rank_lats(self):
         axis_ids = [1, 2]
         lats = numpy.arange(2)
-        lons = numpy.arange(2*3).reshape(2,3)
+        lons = numpy.arange(2 * 3).reshape(2, 3)
         try:
-            grid(axis_ids, latitude = lats, longitude = lons)
+            grid(axis_ids, latitude=lats, longitude=lons)
             self.fail('should raise exception')
-        except Exception, e:
-            self.assertEquals("latitude's rank does not match number of axes passed via axis_ids", str(e))
+        except Exception as e:
+            self.assertEquals(
+                "latitude's rank does not match number of axes passed via axis_ids", str(e))
 
-    def test_error_rank_lat_verts(self): # this test may be fragile?
+    def test_error_rank_lat_verts(self):  # this test may be fragile?
         axis_ids = [1, 2]
-        lats = numpy.arange(2*3).reshape(2,3)
-        lons = numpy.arange(2*3).reshape(2,3)
+        lats = numpy.arange(2 * 3).reshape(2, 3)
+        lons = numpy.arange(2 * 3).reshape(2, 3)
         lat_verts = lats
         try:
-            grid(axis_ids, latitude = lats, longitude = lons,
-                 latitude_vertices = lat_verts)
+            grid(axis_ids, latitude=lats, longitude=lons,
+                 latitude_vertices=lat_verts)
             self.fail('should raise exception')
-        except Exception, e:
+        except Exception as e:
             self.assertEquals("latitude_vertices's rank does not match number of axes passed via axis_ids +1 (for vertices)",
-            str(e))
+                              str(e))
 
-    def test_error_rank_lon_verts(self): # this test may be fragile?
+    def test_error_rank_lon_verts(self):  # this test may be fragile?
         axis_ids = [1, 2]
-        lats = numpy.arange(2*3).reshape(2,3)
-        lons = numpy.arange(2*3).reshape(2,3)
+        lats = numpy.arange(2 * 3).reshape(2, 3)
+        lons = numpy.arange(2 * 3).reshape(2, 3)
         lon_verts = lons
         try:
-            grid(axis_ids, latitude = lats, longitude = lons,
-                 longitude_vertices = lon_verts)
+            grid(axis_ids, latitude=lats, longitude=lons,
+                 longitude_vertices=lon_verts)
             self.fail('should raise exception')
-        except Exception, e:
+        except Exception as e:
             self.assertEquals("longitude_vertices's rank does not match number of axes passed via axis_ids +1 (for vertices)",
-            str(e))
-            
+                              str(e))
+
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/Test/test_lon_gt_360.py b/Test/test_lon_gt_360.py
index e98b535..4fe9d56 100644
--- a/Test/test_lon_gt_360.py
+++ b/Test/test_lon_gt_360.py
@@ -1,54 +1,59 @@
 import cmor
 import numpy
 
+
 def cmor_initialisation():
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3,
-               create_subdirectories = 0)
+               netcdf_file_action=cmor.CMOR_REPLACE_3,
+               create_subdirectories=0)
     cmor.dataset_json("Test/common_user_input.json")
 
+
 def setup_data():
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00'
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees',
-              'coord_vals': [0],
-              'cell_bounds': [-0.5, 0.5]},
-             {'table_entry': 'longitude',
-              'units': 'degrees',
-              'coord_vals': [361., 362.],
-              'cell_bounds': [360., 361., 362.]},
-             ]
+    axes = [{'table_entry': 'time',
+             'units': 'days since 2000-01-01 00:00:00'
+             },
+            {'table_entry': 'latitude',
+             'units': 'degrees',
+             'coord_vals': [0],
+             'cell_bounds': [-0.5, 0.5]},
+            {'table_entry': 'longitude',
+             'units': 'degrees',
+             'coord_vals': [361., 362.],
+             'cell_bounds': [360., 361., 362.]},
+            ]
 
     values = numpy.array([215., 216.], numpy.float32)
     return values, axes
 
+
 def cmor_define_and_write(values, axes):
     table = 'CMIP6_Amon.json'
     cmor.load_table(table)
 
     axis_ids = list()
     for axis in axes:
-       axis_ids.append(cmor.axis(**axis))
-                    
+        axis_ids.append(cmor.axis(**axis))
+
     table = 'CMIP6_Amon.json'
     cmor.load_table(table)
 
     varid = cmor.variable('rlut',
                           'W m-2',
                           axis_ids,
-                          history = 'variable history',
-                          missing_value = -99,
-                          positive = 'up'
+                          history='variable history',
+                          missing_value=-99,
+                          positive='up'
                           )
 
-    cmor.write(varid, values, time_vals = [15], time_bnds = [0, 30])
+    cmor.write(varid, values, time_vals=[15], time_bnds=[0, 30])
+
 
 def version(cmor):
-   return '%s.%s.%s' % (cmor.CMOR_VERSION_MAJOR,
-                        cmor.CMOR_VERSION_MINOR,
-                        cmor.CMOR_VERSION_PATCH)
+    return '%s.%s.%s' % (cmor.CMOR_VERSION_MAJOR,
+                         cmor.CMOR_VERSION_MINOR,
+                         cmor.CMOR_VERSION_PATCH)
+
 
 def main():
     assert version(cmor) >= '3.0.0'
@@ -56,7 +61,8 @@ def main():
     values, axes = setup_data()
     cmor_define_and_write(values, axes)
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_lon_thro_360.py b/Test/test_lon_thro_360.py
index 4ca0fae..75e17d7 100644
--- a/Test/test_lon_thro_360.py
+++ b/Test/test_lon_thro_360.py
@@ -1,64 +1,70 @@
 import cmor
 import numpy
 
+
 def cmor_initialisation():
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3,
-               create_subdirectories = 0)
+               netcdf_file_action=cmor.CMOR_REPLACE_3,
+               create_subdirectories=0)
     cmor.dataset_json("Test/common_user_input.json")
 
+
 def setup_data():
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00'
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees',
-              'coord_vals': [0],
-              'cell_bounds': [-0.5, 0.5]},
-             {'table_entry': 'longitude',
-              'units': 'degrees',
-              'coord_vals': [359., 361.,363.],
-              'cell_bounds': [[358,359.9],
-                              [359.9, 362.],
-                              [362.,364.]]},
-             ]
-
-    values = numpy.array([360., 1.,3.], numpy.float32)
+    axes = [{'table_entry': 'time',
+             'units': 'days since 2000-01-01 00:00:00'
+             },
+            {'table_entry': 'latitude',
+             'units': 'degrees',
+             'coord_vals': [0],
+             'cell_bounds': [-0.5, 0.5]},
+            {'table_entry': 'longitude',
+             'units': 'degrees',
+             'coord_vals': [359., 361., 363.],
+             'cell_bounds': [[358, 359.9],
+                             [359.9, 362.],
+                             [362., 364.]]},
+            ]
+
+    values = numpy.array([360., 1., 3.], numpy.float32)
     return values, axes
 
+
 def cmor_define_and_write(values, axes):
     table = 'CMIP6_Amon.json'
     cmor.load_table(table)
 
     axis_ids = list()
     for axis in axes:
-       axis_ids.append(cmor.axis(**axis))
-                    
+        axis_ids.append(cmor.axis(**axis))
+
     table = 'CMIP6_Amon.json'
     cmor.load_table(table)
 
     varid = cmor.variable('rlut',
                           'W m-2',
                           axis_ids,
-                          history = 'variable history',
-                          missing_value = -99,
-                          positive = 'up'
+                          history='variable history',
+                          missing_value=-99,
+                          positive='up'
                           )
 
-    cmor.write(varid, values, time_vals = [15], time_bnds = [0, 30])
+    cmor.write(varid, values, time_vals=[15], time_bnds=[0, 30])
+
 
 def version(cmor):
-   return '%s.%s.%s' % (cmor.CMOR_VERSION_MAJOR,
-                        cmor.CMOR_VERSION_MINOR,
-                        cmor.CMOR_VERSION_PATCH)
-    
+    return '%s.%s.%s' % (cmor.CMOR_VERSION_MAJOR,
+                         cmor.CMOR_VERSION_MINOR,
+                         cmor.CMOR_VERSION_PATCH)
+
+
 def main():
     #assert version(cmor) == '2.8.3'
     cmor_initialisation()
     values, axes = setup_data()
     cmor_define_and_write(values, axes)
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_non_monotonic_climo_bonds_ok.py b/Test/test_non_monotonic_climo_bonds_ok.py
index 16b8bce..10f0cdb 100644
--- a/Test/test_non_monotonic_climo_bonds_ok.py
+++ b/Test/test_non_monotonic_climo_bonds_ok.py
@@ -1,54 +1,56 @@
 import cmor
 
-## Hypothetical data are going from march 2000 thru feb 2010
-times = [72,75,78]
-times_bnds = [[11,134],[2,125],[5,128]] # first full djf one year later than first full mam
+# Hypothetical data are going from march 2000 thru feb 2010
+times = [72, 75, 78]
+# first full djf one year later than first full mam
+times_bnds = [[11, 134], [2, 125], [5, 128]]
 
 
 def path_test():
-    cmor.setup(inpath='TestTables',netcdf_file_action=cmor.CMOR_REPLACE)
+    cmor.setup(inpath='TestTables', netcdf_file_action=cmor.CMOR_REPLACE)
 
-    cmor.dataset('historical', 'ukmo', 'HadCM3', '360_day',model_id='HadCM3',forcing='Nat',
+    cmor.dataset('historical', 'ukmo', 'HadCM3', '360_day', model_id='HadCM3', forcing='Nat',
                  contact="J.T. Snow",
                  institute_id="PCMDI",
                  parent_experiment_id="N/A",
                  parent_experiment_rip="N/A",
                  branch_time=0)
-    
-    table='CMIP6_Amon.json'
+
+    table = 'CMIP6_Amon.json'
     cmor.load_table(table)
-    axes = [ {'table_entry': 'time2',
-              'units': 'months since 2000-01-01 00:00:00',
-              'coord_vals':  times,
-              'cell_bounds': times_bnds,
-              },
-             {'table_entry': 'plevs',
-              'units': 'Pa',
-              'coord_vals': [100000., 92500., 85000., 70000., 60000., 50000., 
-                40000., 30000., 25000., 20000., 15000.,
-                10000., 7000., 5000., 3000., 2000., 1000.]},
-             {'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]},
-             ]
-              
+    axes = [{'table_entry': 'time2',
+             'units': 'months since 2000-01-01 00:00:00',
+             'coord_vals': times,
+             'cell_bounds': times_bnds,
+             },
+            {'table_entry': 'plevs',
+             'units': 'Pa',
+             'coord_vals': [100000., 92500., 85000., 70000., 60000., 50000.,
+                            40000., 30000., 25000., 20000., 15000.,
+                            10000., 7000., 5000., 3000., 2000., 1000.]},
+            {'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('co2Clim', '1.e-6', axis_ids)
     import numpy
-    data =numpy.array([3,4,5])
-    data.resize((3,17,1,1))
+    data = numpy.array([3, 4, 5])
+    data.resize((3, 17, 1, 1))
     cmor.write(varid, data)
-    path=cmor.close(varid, file_name=True)
+    path = cmor.close(varid, file_name=True)
 
     print path
 
+
 if __name__ == '__main__':
     path_test()
diff --git a/Test/test_python_1D_var.py b/Test/test_python_1D_var.py
index a918034..2c775ad 100644
--- a/Test/test_python_1D_var.py
+++ b/Test/test_python_1D_var.py
@@ -5,16 +5,16 @@ error_flag = cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
 error_flag = cmor.dataset_json("Test/common_user_input.json")
 
 cmor.load_table("CMIP6_Omon.json")
-itim = cmor.axis(  
-    table_entry='time',           
+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])
+    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='deg_C',axis_ids=[itim,])
+ivar = cmor.variable('thetaoga', units='deg_C', axis_ids=[itim, ])
 
-data=[280.,]*12 # 12 months worth of data
+data = [280., ] * 12  # 12 months worth of data
 
-cmor.write(ivar,data)
+cmor.write(ivar, data)
 
 cmor.close()
diff --git a/Test/test_python_2Gb_file.py b/Test/test_python_2Gb_file.py
index f3300dd..2c8842f 100644
--- a/Test/test_python_2Gb_file.py
+++ b/Test/test_python_2Gb_file.py
@@ -1,47 +1,76 @@
 
-import cmor,numpy
-
-
+import cmor
+import numpy
 
 
 nlat = 360
-dlat = 180./nlat
+dlat = 180. / nlat
 nlon = 720
-dlon = 360./nlon
+dlon = 360. / nlon
 nlev = 19
 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)
+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='Tables',netcdf_file_action=cmor.CMOR_REPLACE)
+cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
 cmor.dataset_json("Test/common_user_input.json")
-table='CMIP6_Amon.json'
+table = 'CMIP6_Amon.json'
 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='plev19',coord_vals=numpy.array([1000.,925,850,700,600,500,400,300,250,200,150,100,70,50,30,20,10,5,1]),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
+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')
+# ,coord_vals=numpy.arange(ntimes,dtype=numpy.float),cell_bounds=numpy.arange(ntimes+1,dtype=float),units='months since 2000')
+itim = cmor.axis(table_entry='time', units='months since 2010')
+ilev = cmor.axis(table_entry='plev19',
+                 coord_vals=numpy.array([1000.,
+                                         925,
+                                         850,
+                                         700,
+                                         600,
+                                         500,
+                                         400,
+                                         300,
+                                         250,
+                                         200,
+                                         150,
+                                         100,
+                                         70,
+                                         50,
+                                         30,
+                                         20,
+                                         10,
+                                         5,
+                                         1]),
+                 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.]))
+    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)
+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
index 66d8ffe..0d44443 100644
--- a/Test/test_python_2Gb_slice.py
+++ b/Test/test_python_2Gb_slice.py
@@ -1,52 +1,61 @@
 
-import cmor,numpy
-
-
-
+import cmor
+import numpy
 
 
 nlat = 3600
-dlat = 180./nlat
+dlat = 180. / nlat
 nlon = 7200
-dlon = 360./nlon
+dlon = 360. / nlon
 nlev = 26
-dlev = 1000./nlev
+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)
+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,.5,.1])
-alllevs = numpy.arange(1000,0,-dlev).tolist()
+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, .5, .1])
+alllevs = numpy.arange(1000, 0, -dlev).tolist()
 print len(alllevs)
 
 cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
 cmor.dataset_json("Test/common_user_input.json")
-table='CMIP6_Amon.json'
+table = 'CMIP6_Amon.json'
 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='plev19',coord_vals=levs,units='hPa')
-    
-axes=[itim,ilev,ilat,ilon]
+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')
+# ,coord_vals=numpy.arange(ntimes,dtype=numpy.float),cell_bounds=numpy.arange(ntimes+1,dtype=float),units='months since 2000')
+itim = cmor.axis(table_entry='time', units='months since 2010')
+ilev = cmor.axis(table_entry='plev19', coord_vals=levs, units='hPa')
+
+axes = [itim, ilev, ilat, ilon]
 
-var = cmor.variable(table_entry='ta',units='K',axis_ids=axes)
+var = cmor.variable(table_entry='ta', units='K', axis_ids=axes)
 
 print "allocating mem for data"
-data = numpy.random.random((nlev,nlat,nlon))*30+273.15
+data = numpy.random.random((nlev, nlat, nlon)) * 30 + 273.15
 print "moving on to writing"
 
 for i in range(ntimes):
-    print 'Writing time:',i
-    cmor.write(var,data,time_vals=numpy.array([float(i),]),time_bnds=numpy.array([i,i+1.]))
+    print 'Writing time:', i
+    cmor.write(var, data, time_vals=numpy.array(
+        [float(i), ]), time_bnds=numpy.array([i, i + 1.]))
 
 print "closing var"
-print cmor.close(var_id=var,file_name=True)
+print cmor.close(var_id=var, file_name=True)
 print "closing cmor"
 cmor.close()
 print "done"
diff --git a/Test/test_python_3hr.py b/Test/test_python_3hr.py
deleted file mode 100644
index 890dc24..0000000
--- a/Test/test_python_3hr.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import cmor,numpy
-
-error_flag = cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
-  
-error_flag = cmor.dataset_json("Test/common_user_input.json")
-
-n_lev = 40
-zlevs = 480.*numpy.arange(0,n_lev)+240.
-zbnds = numpy.zeros((n_lev,2))
-
-zbnds[:,0]=zlevs-240.
-zbnds[:,1]=zlevs+240.
-
-# creates 1 degree grid
-cmor.load_table("CMIP6_cf3hr.json")
-
-
-ialt40 = cmor.axis("alt40",units="m",coord_vals=zlevs,cell_bounds=zbnds)
-
-itm = cmor.axis("time1",units="months since 2000")
-iloc = cmor.axis("location",units="1",coord_vals=numpy.arange(2))
-
-igrid = cmor.grid(axis_ids=[iloc,itm])
-
-print igrid
-
-ilat = cmor.time_varying_grid_coordinate(igrid,table_entry='latitude',units='degrees_north')
-ilon = cmor.time_varying_grid_coordinate(igrid,table_entry='longitude',units='degrees_east')
-
-#cmor.load_table("Tables/CMIP6_cf3hr.json")
-ivar = cmor.variable("clcalipso",axis_ids=[igrid,ialt40],units="%")
-
-ierr =cmor.write(ivar,numpy.ones((2,3,n_lev)),time_vals=numpy.arange(3))
-ierr =cmor.write(ilat,-90.*numpy.ones((2,3,n_lev)),time_vals=numpy.arange(3),store_with=ivar)
-ierr =cmor.write(ilon,180.*numpy.ones((2,3,n_lev)),time_vals=numpy.arange(3),store_with=ivar)
-error_flag = cmor.close()
-
diff --git a/Test/test_python_CMIP6_CV_HISTORY.py b/Test/test_python_CMIP6_CV_HISTORY.py
index ac30991..b89b2ab 100644
--- a/Test/test_python_CMIP6_CV_HISTORY.py
+++ b/Test/test_python_CMIP6_CV_HISTORY.py
@@ -76,9 +76,9 @@ class TestCase(unittest.TestCase):
         sys.stdout = os.fdopen(self.newstdout, 'w', 0)
         sys.stderr = os.fdopen(self.newstderr, 'w', 0)
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_baddirectory.py b/Test/test_python_CMIP6_CV_baddirectory.py
index 127b2f1..bc18ab2 100644
--- a/Test/test_python_CMIP6_CV_baddirectory.py
+++ b/Test/test_python_CMIP6_CV_baddirectory.py
@@ -16,8 +16,6 @@ import unittest
 import sys
 import os
 import tempfile
-import numpy
-import shutil
 
 
 def run():
@@ -60,7 +58,7 @@ class TestdirectoryMethods(unittest.TestCase):
         try:
             cmor.dataset_json("Test/baddirectory.json")
 
-        except:
+        except BaseException:
             testOK = self.getAssertTest()
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
@@ -69,7 +67,5 @@ class TestdirectoryMethods(unittest.TestCase):
             self.assertIn("unable to create this directory", testOK)
 
 
-
-
 if __name__ == '__main__':
     run()
diff --git a/Test/test_python_CMIP6_CV_badgridgr.py b/Test/test_python_CMIP6_CV_badgridgr.py
index 0f867d7..3048cb2 100644
--- a/Test/test_python_CMIP6_CV_badgridgr.py
+++ b/Test/test_python_CMIP6_CV_badgridgr.py
@@ -71,13 +71,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
             sys.stdout = os.fdopen(self.newstdout, 'w', 0)
@@ -90,8 +93,7 @@ class TestCase(unittest.TestCase):
 
     def tearDown(self):
         import shutil
-        shutil.rmtree("./CMIP6")                                                                                                               
-
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badgridlabel.py b/Test/test_python_CMIP6_CV_badgridlabel.py
index e83f13f..cafbf89 100644
--- a/Test/test_python_CMIP6_CV_badgridlabel.py
+++ b/Test/test_python_CMIP6_CV_badgridlabel.py
@@ -79,13 +79,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
             testOK = self.getAssertTest()
@@ -97,9 +100,9 @@ class TestCase(unittest.TestCase):
             # ------------------------------------------
             self.assertIn("\"gs1n\"", testOK)
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badgridresolution.py b/Test/test_python_CMIP6_CV_badgridresolution.py
index 198da55..e1bc433 100644
--- a/Test/test_python_CMIP6_CV_badgridresolution.py
+++ b/Test/test_python_CMIP6_CV_badgridresolution.py
@@ -71,13 +71,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
             sys.stdout = os.fdopen(self.newstdout, 'w', 0)
@@ -85,6 +88,10 @@ class TestCase(unittest.TestCase):
         testOK = self.getAssertTest()
         self.assertIn("\"335 km\"", testOK)
 
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
+
 
 if __name__ == '__main__':
     run()
diff --git a/Test/test_python_CMIP6_CV_badgridresolution2.py b/Test/test_python_CMIP6_CV_badgridresolution2.py
deleted file mode 100644
index bf6faaa..0000000
--- a/Test/test_python_CMIP6_CV_badgridresolution2.py
+++ /dev/null
@@ -1,98 +0,0 @@
-# If this example is not executed from the directory containing the
-# CMOR code, please first complete the following steps:
-#
-#   1. In any directory, create 'Tables/', 'Test/' and 'CMIP6/' directories.
-#
-#   2. Download
-#      https://github.com/PCMDI/cmor/blob/master/TestTables/CMIP6_Omon.json
-#      and https://github.com/PCMDI/cmor/blob/master/TestTables/CMIP6_CV.json
-#      to the 'Tables/' directory.
-#
-#   3. Download
-#      https://github.com/PCMDI/cmor/blob/master/Test/<filename>.json
-#      to the 'Test/' directory.
-
-import cmor
-import numpy
-import unittest
-import sys
-import os
-import tempfile
-
-
-
-
-# ==============================
-#  main thread
-# ==============================
-def run():
-    unittest.main()
-
-
-class TestCase(unittest.TestCase):
-    def setUp(self, *args, **kwargs):
-        # ------------------------------------------------------
-        # Copy stdout and stderr file descriptor for cmor output
-        # ------------------------------------------------------
-        self.newstdout = os.dup(1)
-        self.newstderr = os.dup(2)
-        # --------------
-        # Create tmpfile
-        # --------------
-        self.tmpfile = tempfile.mkstemp()
-        os.dup2(self.tmpfile[0], 1)
-        os.dup2(self.tmpfile[0], 2)
-        os.close(self.tmpfile[0])
-
-    def getAssertTest(self):
-        f = open(self.tmpfile[1], 'r')
-        lines = f.readlines()
-        for line in lines:
-            if line.find('Error:') != -1:
-                testOK = line.strip()
-                break
-        f.close()
-        os.unlink(self.tmpfile[1])
-        return testOK
-
-    def testCMIP6(self):
-        try:
-            # -------------------------------------------
-            # Try to call cmor with a bad institution_ID
-            # -------------------------------------------
-            cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
-            cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("nominal_resolution", "2x2")
-
-
-            # ------------------------------------------
-            # load Omon table and create masso variable
-            # ------------------------------------------
-            cmor.load_table("CMIP6_Omon.json")
-            itime = cmor.axis(table_entry="time", units='months since 2010',
-                              coord_vals=numpy.array([0, 1, 2, 3, 4.]),
-                              cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
-
-            data = numpy.random.random(5)
-            for i in range(0, 5):
-                cmor.write(ivar, data[i:i])
-            cmor.close()
-        except:
-            os.dup2(self.newstdout, 1)
-            os.dup2(self.newstderr, 2)
-            sys.stdout = os.fdopen(self.newstdout, 'w', 0)
-            sys.stderr = os.fdopen(self.newstderr, 'w', 0)
-        # ------------------------------------------
-        # Check error after signal handler is back
-        # ------------------------------------------
-        testOK = self.getAssertTest()
-        self.assertIn("\"2x2\"", testOK)
-
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
-
-
-if __name__ == '__main__':
-    run()
diff --git a/Test/test_python_CMIP6_CV_badinstitution.py b/Test/test_python_CMIP6_CV_badinstitution.py
index 34f791c..aed2aa1 100644
--- a/Test/test_python_CMIP6_CV_badinstitution.py
+++ b/Test/test_python_CMIP6_CV_badinstitution.py
@@ -43,7 +43,6 @@ class TestCase(unittest.TestCase):
             cmor.dataset_json("Test/common_user_input.json")
             cmor.set_cur_dataset_attribute("institution", "NCC2")
 
-
             # ------------------------------------------
             # load Omon table and create masso variable
             # ------------------------------------------
@@ -51,13 +50,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             pass
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
@@ -72,9 +74,9 @@ class TestCase(unittest.TestCase):
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badinstitutionID.json b/Test/test_python_CMIP6_CV_badinstitutionID.json
index 6360005..aaa7c25 100644
--- a/Test/test_python_CMIP6_CV_badinstitutionID.json
+++ b/Test/test_python_CMIP6_CV_badinstitutionID.json
@@ -48,7 +48,7 @@
            "references":             "Model described by Koder and Tolkien ",
 
            "#institution_id":         "",
-           "institution_id":          "PCMDI",
+           "institution_id":          "ddPCMDI",
 
            "#institution":           "Controlled Vocabulary",
            "institution":            "PCMDI",
diff --git a/Test/test_python_CMIP6_CV_badinstitutionID.py b/Test/test_python_CMIP6_CV_badinstitutionID.py
index 575d20c..173d229 100644
--- a/Test/test_python_CMIP6_CV_badinstitutionID.py
+++ b/Test/test_python_CMIP6_CV_badinstitutionID.py
@@ -12,7 +12,6 @@
 #      https://github.com/PCMDI/cmor/blob/master/Test/<filename>.json
 #      to the 'Test/' directory.
 
-from threading import Thread
 import cmor
 import numpy
 import unittest
@@ -26,6 +25,7 @@ def run():
 
 
 class TestCase(unittest.TestCase):
+
     def setUp(self, *args, **kwargs):
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
@@ -51,14 +51,14 @@ class TestCase(unittest.TestCase):
         os.unlink(self.tmpfile[1])
         return testOK
 
-    def TestCase(self):
+    def testCMIP6(self):
         try:
             # -------------------------------------------
             # Try to call cmor with a bad institution_ID
             # -------------------------------------------
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("institution_id", "PCMDI")
+            cmor.set_cur_dataset_attribute("institution_id", "ddPCMDI")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -67,27 +67,27 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
-            cmor.close()                                                                                                                       
+            cmor.close()
 
-        except:
+        except BaseException:
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
             sys.stdout = os.fdopen(self.newstdout, 'w', 0)
         testOK = self.getAssertTest()
-        self.assertIn("PCMDI", testOK)
+        self.assertIn("ddPCMDI", testOK)
 
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
 
 if __name__ == '__main__':
-    t = Thread(target=run)
-    t.start()
-    while t.is_alive():
-        t.join(1)
+    run()
diff --git a/Test/test_python_CMIP6_CV_badinstitutionIDNotSet.py b/Test/test_python_CMIP6_CV_badinstitutionIDNotSet.py
index 6eb099e..ae31bd7 100644
--- a/Test/test_python_CMIP6_CV_badinstitutionIDNotSet.py
+++ b/Test/test_python_CMIP6_CV_badinstitutionIDNotSet.py
@@ -20,7 +20,6 @@ import os
 import tempfile
 
 
-
 def run():
     unittest.main()
 
@@ -51,14 +50,13 @@ class TestCase(unittest.TestCase):
         os.unlink(self.tmpfile[1])
         return testOK
 
-    def TestCase(self):
+    def testCMIP6(self):
         try:
             # -------------------------------------------
             # Try to call cmor with a bad institution_ID
             # -------------------------------------------
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
-            cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("insitution_id", "")
+            cmor.dataset_json("Test/common_user_input_NOID.json")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -67,22 +65,26 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
-            cmor.close()                                                                                                                       
-        except:
+            cmor.close()
+        except BaseException:
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
             sys.stdout = os.fdopen(self.newstdout, 'w', 0)
             sys.stderr = os.fdopen(self.newstderr, 'w', 0)
         testOK = self.getAssertTest()
         self.assertIn("Control Vocabulary file", testOK)
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badsource.py b/Test/test_python_CMIP6_CV_badsource.py
index a2e2379..3b8d754 100644
--- a/Test/test_python_CMIP6_CV_badsource.py
+++ b/Test/test_python_CMIP6_CV_badsource.py
@@ -20,10 +20,9 @@ import os
 import tempfile
 
 
-
 class TestCase(unittest.TestCase):
 
-    def TestCase(self):
+    def testCMIP6(self):
 
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
@@ -52,13 +51,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             raise
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
@@ -67,15 +69,15 @@ class TestCase(unittest.TestCase):
         f = open(tmpfile[1], 'r')
         lines = f.readlines()
         for line in lines:
-            if line.find('Warning:') != -1:
-                self.assertIn('\"source\"', line.strip())
+            if line.find('Error:') != -1:
+                self.assertIn('bad_source', line.strip())
                 break
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badsourceid.py b/Test/test_python_CMIP6_CV_badsourceid.py
index 30e2409..451ee07 100644
--- a/Test/test_python_CMIP6_CV_badsourceid.py
+++ b/Test/test_python_CMIP6_CV_badsourceid.py
@@ -20,7 +20,6 @@ import os
 import tempfile
 
 
-
 def run():
     unittest.main()
 
@@ -51,7 +50,7 @@ class TestCase(unittest.TestCase):
         os.unlink(self.tmpfile[1])
         return testOK
 
-    def TestCase(self):
+    def testCMIP6(self):
         try:
             # -------------------------------------------
             # Try to call cmor with a bad institution_ID
@@ -59,6 +58,7 @@ class TestCase(unittest.TestCase):
             global testOK
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
+            cmor.set_cur_dataset_attribute("source_id", "bad_sourceid")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -67,13 +67,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
             sys.stdout = os.fdopen(self.newstdout, 'w', 0)
@@ -81,9 +84,9 @@ class TestCase(unittest.TestCase):
         testOK = self.getAssertTest()
         self.assertIn("bad_sourceid", testOK)
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badsourcetype.py b/Test/test_python_CMIP6_CV_badsourcetype.py
index 2849de7..698e43a 100644
--- a/Test/test_python_CMIP6_CV_badsourcetype.py
+++ b/Test/test_python_CMIP6_CV_badsourcetype.py
@@ -51,7 +51,7 @@ class TestCase(unittest.TestCase):
         os.unlink(self.tmpfile[1])
         return testOK
 
-    def TestCase(self):
+    def testCMIP6(self):
         try:
             # -------------------------------------------
             # Try to call cmor with a bad institution_ID
@@ -68,23 +68,27 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
-            os.dup2(self.newstdout, 1)
-            os.dup2(self.newstderr, 2)
-            sys.stdout = os.fdopen(self.newstdout, 'w', 0)
-            sys.stderr = os.fdopen(self.newstderr, 'w', 0)
+        except BaseException:
+            pass
+        os.dup2(self.newstdout, 1)
+        os.dup2(self.newstderr, 2)
+        sys.stdout = os.fdopen(self.newstdout, 'w', 0)
+        sys.stderr = os.fdopen(self.newstderr, 'w', 0)
         testOK = self.getAssertTest()
-        self.assertIn("source_type", testOK)
+        self.assertIn("source type", testOK)
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badsourcetypeCHEMAER.json b/Test/test_python_CMIP6_CV_badsourcetypeCHEMAER.json
index 8612aad..22082d6 100644
--- a/Test/test_python_CMIP6_CV_badsourcetypeCHEMAER.json
+++ b/Test/test_python_CMIP6_CV_badsourcetypeCHEMAER.json
@@ -2,14 +2,15 @@
            "_control_vocabulary_file": "CMIP6_CV.json",
            "_cmip6_option":           "CMIP6",
 
+           "tracking_prefix":        "hdl:21.14100",
            "#activity_id":           "Specify an activity PMIP, GeoMIP, (must start with CMIP6-)",
-           "activity_id":            "CMIP",
+           "activity_id":            "ISMIP6",
 
            "#output":                "Output Path where files are written",
            "outpath":                "CMIP6",
 
            "#experiment_id":         "Correspond to id found in experiments.json",
-           "experiment_id":          "piControl-withism",
+           "experiment_id":          "hist-spAer-aer",
            "source_type":            "AOGCM ISM CHEM AER",
            "sub_experiment":         "none",
            "sub_experiment_id":      "none",
@@ -18,7 +19,7 @@
            "mip_era":                "CMIP6",
 
            "#source":                "",
-           "source":                 "PCMDI-test-1-0",
+           "source":                 "PCMDI-test 1.0",
 
            "#calendar":              "",
            "calendar":               "gregorian",
@@ -82,7 +83,7 @@
 
            "grid":                   "native atmosphere T63 gaussian grid (64x128 latxlon)",
            "grid_label":             "gn",
-           "grid_resolution":        "5 km",
+           "nominal_resolution":     "5 km",
            "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.)",
            "run_variant":            "forcing: black carbon aerosol only",
            "source_id":              "PCMDI-test-1-0",
diff --git a/Test/test_python_CMIP6_CV_badsourcetypeCHEMAER.py b/Test/test_python_CMIP6_CV_badsourcetypeCHEMAER.py
index 5742585..2b65b78 100644
--- a/Test/test_python_CMIP6_CV_badsourcetypeCHEMAER.py
+++ b/Test/test_python_CMIP6_CV_badsourcetypeCHEMAER.py
@@ -50,14 +50,14 @@ class TestCase(unittest.TestCase):
         os.unlink(self.tmpfile[1])
         return testOK
 
-    def TestCase(self):
+    def testCMIP6(self):
         try:
             # -------------------------------------------
             # Try to call cmor with a bad institution_ID
             # -------------------------------------------
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
-            cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("source_type", "AOGCM ISM CHEM AER")
+            cmor.dataset_json(
+                "Test/test_python_CMIP6_CV_badsourcetypeCHEMAER.json")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -66,25 +66,29 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
-            cmor.close()                                                                                                                       
+            cmor.close()
+
+        except BaseException:
+            pass
 
-        except:
-            raise
         os.dup2(self.newstdout, 1)
         os.dup2(self.newstderr, 2)
         sys.stdout = os.fdopen(self.newstdout, 'w', 0)
         sys.stderr = os.fdopen(self.newstderr, 'w', 0)
-#        testOK = getAssertTest()
-#        self.assertIn("\"CHEM\" and \"AER\"", testOK)
+        testOK = self.getAssertTest()
+        self.assertIn("invalid source", testOK)
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badsourcetypeRequired.py b/Test/test_python_CMIP6_CV_badsourcetypeRequired.py
index cb8ae95..b0b33c0 100644
--- a/Test/test_python_CMIP6_CV_badsourcetypeRequired.py
+++ b/Test/test_python_CMIP6_CV_badsourcetypeRequired.py
@@ -48,7 +48,7 @@ class TestCase(unittest.TestCase):
         f = open(self.tmpfile[1], 'r')
         lines = f.readlines()
         for line in lines:
-            if line.find('Your ') != -1:
+            if line.find('source type is set to') != -1:
                 testOK = line.strip()
                 break
         f.close()
@@ -62,7 +62,8 @@ class TestCase(unittest.TestCase):
             # -------------------------------------------
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("source_type", "AOGCM ISM BGCM LAND")
+            cmor.set_cur_dataset_attribute(
+                "source_type", "AOGCM ISM BGCM LAND")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -71,27 +72,31 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 a = cmor.write(ivar, data[i:i])
-            cmor.close()                                                                                                                       
+            cmor.close()
 
-        except:
-            os.dup2(self.newstdout, 1)
-            os.dup2(self.newstderr, 2)
-            sys.stdout = os.fdopen(self.newstdout, 'w', 0)
-            sys.stderr = os.fdopen(self.newstderr, 'w', 0)
+        except BaseException:
+            pass
+        os.dup2(self.newstdout, 1)
+        os.dup2(self.newstderr, 2)
+        sys.stdout = os.fdopen(self.newstdout, 'w', 0)
+        sys.stderr = os.fdopen(self.newstderr, 'w', 0)
         testOK = self.getAssertTest()
         # ------------------------------------------
         # Check error after signal handler is back
         # ------------------------------------------
         self.assertIn("\"AOGCM ISM BGCM LAND\"", testOK)
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badvariant.py b/Test/test_python_CMIP6_CV_badvariant.py
index 3f117f8..0cb5f6b 100644
--- a/Test/test_python_CMIP6_CV_badvariant.py
+++ b/Test/test_python_CMIP6_CV_badvariant.py
@@ -62,7 +62,7 @@ class TestCase(unittest.TestCase):
             # -------------------------------------------
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("physics_index", "1A") 
+            cmor.set_cur_dataset_attribute("physics_index", "1A")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -71,14 +71,17 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
-            cmor.close()                                                                                                                       
+            cmor.close()
 
-        except:
+        except BaseException:
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
             sys.stdout = os.fdopen(self.newstdout, 'w', 0)
@@ -89,10 +92,10 @@ class TestCase(unittest.TestCase):
         testOK = self.getAssertTest()
         self.assertIn("\"1A\"", testOK)
 
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
 
 if __name__ == '__main__':
 
diff --git a/Test/test_python_CMIP6_CV_externalvariables.py b/Test/test_python_CMIP6_CV_externalvariables.py
index 287bf55..4dea5b9 100644
--- a/Test/test_python_CMIP6_CV_externalvariables.py
+++ b/Test/test_python_CMIP6_CV_externalvariables.py
@@ -70,12 +70,22 @@ class TestCase(unittest.TestCase):
         itime = cmor.axis(table_entry="time", units='months since 2010',
                           coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                           cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-        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')
+        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')
         ilev = cmor.axis(table_entry='depth_coord', length=5,
                          cell_bounds=numpy.arange(0, 12000, 2000), coord_vals=numpy.arange(0, 10000, 2000), units="m")
 
-        ivar = cmor.variable(table_entry="masscello", axis_ids=[itime, ilev, ilat, ilon, ], units='kg/m2')
+        ivar = cmor.variable(
+            table_entry="masscello", axis_ids=[
+                itime, ilev, ilat, ilon, ], units='kg/m2')
 
         data = numpy.random.random((ntimes, nlev, nlat, nlon)) * 100.
 
@@ -90,9 +100,9 @@ class TestCase(unittest.TestCase):
         a = f.getglobal("external_variables")
         self.assertEqual("areacello volcello", a)
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_forcemultipleparent.py b/Test/test_python_CMIP6_CV_forcemultipleparent.py
new file mode 100644
index 0000000..f688356
--- /dev/null
+++ b/Test/test_python_CMIP6_CV_forcemultipleparent.py
@@ -0,0 +1,151 @@
+# If this example is not executed from the directory containing the
+# CMOR code, please first complete the following steps:
+#
+#   1. In any directory, create 'Tables/', 'Test/' and 'CMIP6/' directories.
+#
+#   2. Download
+#      https://github.com/PCMDI/cmor/blob/master/TestTables/CMIP6_Omon.json
+#      and https://github.com/PCMDI/cmor/blob/master/TestTables/CMIP6_CV.json
+#      to the 'Tables/' directory.
+#
+#   3. Download
+#      https://github.com/PCMDI/cmor/blob/master/Test/<filename>.json
+#      to the 'Test/' directory.
+
+import cmor
+import numpy
+import unittest
+import sys
+import os
+import tempfile
+
+
+class TestCase(unittest.TestCase):
+
+    def testParentActivityID(self):
+
+        # ------------------------------------------------------
+        # Copy stdout and stderr file descriptor for cmor output
+        # ------------------------------------------------------
+        newstdout = os.dup(1)
+        newstderr = os.dup(2)
+        # --------------
+        # Create tmpfile
+        # --------------
+        tmpfile = tempfile.mkstemp()
+        os.dup2(tmpfile[0], 1)
+        os.dup2(tmpfile[0], 2)
+        os.close(tmpfile[0])
+        # -------------------------------------------
+        # Try to call cmor with a bad institution_ID
+        # -------------------------------------------
+        try:
+            cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
+            cmor.dataset_json("Test/common_user_input.json")
+            cmor.set_cur_dataset_attribute(
+                "parent_experiment_id", "dcppA-assim")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "CMIP")
+            cmor.set_cur_dataset_attribute(
+                "experiment_id", "dcppC-forecast-addAgung")
+            cmor.set_cur_dataset_attribute("activity_id", "DCPP")
+            cmor.set_cur_dataset_attribute("source_type", "AOGCM AER")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "s2014")
+
+            # ------------------------------------------
+            # load Omon table and create masso variable
+            # ------------------------------------------
+            cmor.load_table("CMIP6_Omon.json")
+            itime = cmor.axis(table_entry="time", units='months since 2010',
+                              coord_vals=numpy.array([0, 1, 2, 3, 4.]),
+                              cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
+
+            data = numpy.random.random(5)
+            for i in range(0, 5):
+                cmor.write(ivar, data[i:i])
+            cmor.close()
+        except BaseException:
+            pass
+        os.dup2(newstdout, 1)
+        os.dup2(newstderr, 2)
+        sys.stdout = os.fdopen(newstdout, 'w', 0)
+        sys.stderr = os.fdopen(newstderr, 'w', 0)
+        f = open(tmpfile[1], 'r')
+        lines = f.readlines()
+        for line in lines:
+            if line.find('Error:') != -1:
+                self.assertIn('parent_activity_id', line.strip())
+                break
+        f.close()
+        os.unlink(tmpfile[1])
+
+    def testParentExperimentID(self):
+
+        # ------------------------------------------------------
+        # Copy stdout and stderr file descriptor for cmor output
+        # ------------------------------------------------------
+        newstdout = os.dup(1)
+        newstderr = os.dup(2)
+        # --------------
+        # Create tmpfile
+        # --------------
+        tmpfile = tempfile.mkstemp()
+        os.dup2(tmpfile[0], 1)
+        os.dup2(tmpfile[0], 2)
+        os.close(tmpfile[0])
+        # -------------------------------------------
+        # Try to call cmor with a bad institution_ID
+        # -------------------------------------------
+        try:
+            cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
+            cmor.dataset_json("Test/common_user_input.json")
+            cmor.set_cur_dataset_attribute(
+                "parent_experiment_id", "historical")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "DCPP")
+            cmor.set_cur_dataset_attribute(
+                "experiment_id", "dcppC-forecast-addAgung")
+            cmor.set_cur_dataset_attribute("activity_id", "DCPP")
+            cmor.set_cur_dataset_attribute("source_type", "AOGCM AER")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "s2014")
+
+            # ------------------------------------------
+            # load Omon table and create masso variable
+            # ------------------------------------------
+            cmor.load_table("CMIP6_Omon.json")
+            itime = cmor.axis(table_entry="time", units='months since 2010',
+                              coord_vals=numpy.array([0, 1, 2, 3, 4.]),
+                              cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
+
+            data = numpy.random.random(5)
+            for i in range(0, 5):
+                cmor.write(ivar, data[i:i])
+            cmor.close()
+        except BaseException:
+            pass
+        os.dup2(newstdout, 1)
+        os.dup2(newstderr, 2)
+        sys.stdout = os.fdopen(newstdout, 'w', 0)
+        sys.stderr = os.fdopen(newstderr, 'w', 0)
+        f = open(tmpfile[1], 'r')
+        lines = f.readlines()
+        for line in lines:
+            if line.find('Error:') != -1:
+                self.assertIn('parent_experiment_id', line.strip())
+                break
+        f.close()
+        os.unlink(tmpfile[1])
+
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Test/test_python_CMIP6_CV_badinstitution.py b/Test/test_python_CMIP6_CV_forcenoparent.py
similarity index 76%
copy from Test/test_python_CMIP6_CV_badinstitution.py
copy to Test/test_python_CMIP6_CV_forcenoparent.py
index 34f791c..5c442e3 100644
--- a/Test/test_python_CMIP6_CV_badinstitution.py
+++ b/Test/test_python_CMIP6_CV_forcenoparent.py
@@ -23,6 +23,7 @@ import tempfile
 class TestCase(unittest.TestCase):
 
     def testCMIP6(self):
+
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
         # ------------------------------------------------------
@@ -41,8 +42,6 @@ class TestCase(unittest.TestCase):
         try:
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("institution", "NCC2")
-
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -51,30 +50,35 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
-            pass
+        except BaseException:
+            raise
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
         sys.stdout = os.fdopen(newstdout, 'w', 0)
         sys.stderr = os.fdopen(newstderr, 'w', 0)
         f = open(tmpfile[1], 'r')
         lines = f.readlines()
+        count = 0
+        # We need 8 attributes to be replaced
         for line in lines:
-            if line.find('Your attribute') != -1:
-                self.assertIn('bad institution', line.strip())
-                break
+            if line.find('replaced') != -1:
+                count = count + 1
+        self.assertEqual(count, 9)
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badinstitution.py b/Test/test_python_CMIP6_CV_forceparent.py
similarity index 65%
copy from Test/test_python_CMIP6_CV_badinstitution.py
copy to Test/test_python_CMIP6_CV_forceparent.py
index 34f791c..09db07d 100644
--- a/Test/test_python_CMIP6_CV_badinstitution.py
+++ b/Test/test_python_CMIP6_CV_forceparent.py
@@ -23,6 +23,7 @@ import tempfile
 class TestCase(unittest.TestCase):
 
     def testCMIP6(self):
+
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
         # ------------------------------------------------------
@@ -41,8 +42,21 @@ class TestCase(unittest.TestCase):
         try:
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("institution", "NCC2")
-
+            cmor.set_cur_dataset_attribute("experiment_id", "ssp434")
+            cmor.set_cur_dataset_attribute(
+                "parent_experiment_id", "historical")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "CMIP")
+            cmor.set_cur_dataset_attribute("activity_id", "ScenarioMIP")
+            cmor.set_cur_dataset_attribute("source_type", "AOGCM")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "none")
+            cmor.set_cur_dataset_attribute(
+                "parent_variant_label", "r11i123p4556f333")
+            cmor.set_cur_dataset_attribute("parent_source_id", "child")
+            cmor.set_cur_dataset_attribute("parent_mip_era", "CMIP6")
+            cmor.set_cur_dataset_attribute("parent_timeunits", "no parent")
+            cmor.set_cur_dataset_attribute("branch_method", "no parent")
+            cmor.set_cur_dataset_attribute(
+                "branc_child_in_parent", "no parent")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -51,13 +65,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             pass
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
@@ -66,15 +83,15 @@ class TestCase(unittest.TestCase):
         f = open(tmpfile[1], 'r')
         lines = f.readlines()
         for line in lines:
-            if line.find('Your attribute') != -1:
-                self.assertIn('bad institution', line.strip())
+            if line.find('Error:') != -1:
+                self.assertIn('child', line.strip())
                 break
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_furtherinfourl.py b/Test/test_python_CMIP6_CV_furtherinfourl.py
index 821a113..8d5ef71 100644
--- a/Test/test_python_CMIP6_CV_furtherinfourl.py
+++ b/Test/test_python_CMIP6_CV_furtherinfourl.py
@@ -21,7 +21,6 @@ import tempfile
 import cdms2
 
 
-
 # ==============================
 #  main thread
 # ==============================
@@ -30,38 +29,37 @@ def run():
 
 
 class TestCase(unittest.TestCase):
-    def setUp(self, *args, **kwargs):                                                                                                          
-        # ------------------------------------------------------                                                                               
-        # Copy stdout and stderr file descriptor for cmor output                                                                               
-        # ------------------------------------------------------                                                                               
-        self.newstdout = os.dup(1)                                                                                                             
-        self.newstderr = os.dup(2)                                                                                                             
-        # --------------                                                                                                                       
-        # Create tmpfile                                                                                                                       
-        # --------------                                                                                                                       
+    def setUp(self, *args, **kwargs):
+        # ------------------------------------------------------
+        # Copy stdout and stderr file descriptor for cmor output
+        # ------------------------------------------------------
+        self.newstdout = os.dup(1)
+        self.newstderr = os.dup(2)
+        # --------------
+        # Create tmpfile
+        # --------------
         self.tmpfile = tempfile.mkstemp()
-        os.dup2(self.tmpfile[0], 1)     
-        os.dup2(self.tmpfile[0], 2)    
-        os.close(self.tmpfile[0])     
-                                                                                                                                               
-    def getAssertTest(self):                                                                                                                   
-        f = open(self.tmpfile[1], 'r')                                                                                                         
-        lines = f.readlines()                                                                                                                  
-        for line in lines:                                                                                                                     
-            if line.find('Error:') != -1:                                                                                                      
-                testOK = line.strip()                                                                                                          
-                break                                                                                                                          
-        f.close()                                                                                                                              
-        os.unlink(self.tmpfile[1])                                                                                                             
-        return testOK                                                                                                                          
+        os.dup2(self.tmpfile[0], 1)
+        os.dup2(self.tmpfile[0], 2)
+        os.close(self.tmpfile[0])
 
+    def getAssertTest(self):
+        f = open(self.tmpfile[1], 'r')
+        lines = f.readlines()
+        for line in lines:
+            if line.find('Error:') != -1:
+                testOK = line.strip()
+                break
+        f.close()
+        os.unlink(self.tmpfile[1])
+        return testOK
 
     def testCMIP6(self):
         try:
             # -------------------------------------------
             # Try to call cmor with a bad institution_ID
             # -------------------------------------------
-            cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)                                                                  
+            cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
 
             # ------------------------------------------
@@ -71,26 +69,32 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2000',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             raise
-        os.dup2(self.newstdout, 1)                                                                                                         
-        os.dup2(self.newstderr, 2)                                                                                                         
-        sys.stdout = os.fdopen(self.newstdout, 'w', 0)                                                                                     
-        sys.stderr = os.fdopen(self.newstderr, 'w', 0)                                                                                     
+        os.dup2(self.newstdout, 1)
+        os.dup2(self.newstderr, 2)
+        sys.stdout = os.fdopen(self.newstdout, 'w', 0)
+        sys.stderr = os.fdopen(self.newstderr, 'w', 0)
 
         f = cdms2.open(cmor.get_final_filename(), "r")
         a = f.getglobal("further_info_url")
-        self.assertEqual("http://furtherinfo.es-doc.org/CMIP6.PCMDI.PCMDI-test-1-0.piControl-withism.none.r11i1p1f1", a)
+        self.assertEqual(
+            "http://furtherinfo.es-doc.org/CMIP6.PCMDI.PCMDI-test-1-0.piControl-withism.none.r11i1p1f1",
+            a)
+
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
 if __name__ == '__main__':
     run()
diff --git a/Test/test_python_CMIP6_CV_fxtable.py b/Test/test_python_CMIP6_CV_fxtable.py
index e15053e..138d306 100644
--- a/Test/test_python_CMIP6_CV_fxtable.py
+++ b/Test/test_python_CMIP6_CV_fxtable.py
@@ -69,13 +69,23 @@ class TestCase(unittest.TestCase):
 
         data = (data + 1e10) / 750. + 233.2
 
-        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')
+        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')
 
         # ------------------------------------------
         # load Omon table and create masso variable
         # ------------------------------------------
-        ivar = cmor.variable(table_entry="areacella", axis_ids=[ilat, ilon], units='m2')
+        ivar = cmor.variable(
+            table_entry="areacella", axis_ids=[
+                ilat, ilon], units='m2')
 
         cmor.write(ivar, data)
         cmor.close()
@@ -84,9 +94,10 @@ class TestCase(unittest.TestCase):
         sys.stdout = os.fdopen(self.newstdout, 'w', 0)
         sys.stderr = os.fdopen(self.newstderr, 'w', 0)
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
+
 
 if __name__ == '__main__':
     run()
diff --git a/Test/test_python_CMIP6_CV_longrealizationindex.py b/Test/test_python_CMIP6_CV_longrealizationindex.py
index 444835a..977f9f1 100644
--- a/Test/test_python_CMIP6_CV_longrealizationindex.py
+++ b/Test/test_python_CMIP6_CV_longrealizationindex.py
@@ -61,10 +61,9 @@ class TestCase(unittest.TestCase):
             # -------------------------------------------
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("initialization_index", 
+            cmor.set_cur_dataset_attribute("initialization_index",
                                            "1209374928349823498274987234987")
 
-
             # ------------------------------------------
             # load Omon table and create masso variable
             # ------------------------------------------
@@ -72,14 +71,17 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 1):
                 cmor.write(ivar, data[i:i])
-            cmor.close()                                                                                                                       
+            cmor.close()
 
-        except:
+        except BaseException:
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
             sys.stdout = os.fdopen(self.newstdout, 'w', 0)
@@ -90,9 +92,9 @@ class TestCase(unittest.TestCase):
             # ------------------------------------------
             self.assertIn("1209374928349823498274987234987", testOK)
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_nomipera.py b/Test/test_python_CMIP6_CV_nomipera.py
index 34d23bd..e7ab919 100644
--- a/Test/test_python_CMIP6_CV_nomipera.py
+++ b/Test/test_python_CMIP6_CV_nomipera.py
@@ -60,7 +60,9 @@ class TestCase(unittest.TestCase):
             # -------------------------------------------
             # Try to call cmor with a bad institution_ID
             # -------------------------------------------
-            cmor.setup(inpath='TestTables', netcdf_file_action=cmor.CMOR_REPLACE)
+            cmor.setup(
+                inpath='TestTables',
+                netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
 
             # ------------------------------------------
@@ -70,13 +72,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
-            cmor.close()                                                                                                                       
-        except:
+            cmor.close()
+        except BaseException:
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
             sys.stdout = os.fdopen(self.newstdout, 'w', 0)
@@ -84,9 +89,9 @@ class TestCase(unittest.TestCase):
             testOK = self.getAssertTest()
             self.assertIn("mip_era", testOK)
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badinstitution.py b/Test/test_python_CMIP6_CV_parentmipera.py
similarity index 69%
copy from Test/test_python_CMIP6_CV_badinstitution.py
copy to Test/test_python_CMIP6_CV_parentmipera.py
index 34f791c..f54b523 100644
--- a/Test/test_python_CMIP6_CV_badinstitution.py
+++ b/Test/test_python_CMIP6_CV_parentmipera.py
@@ -23,6 +23,7 @@ import tempfile
 class TestCase(unittest.TestCase):
 
     def testCMIP6(self):
+
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
         # ------------------------------------------------------
@@ -41,8 +42,18 @@ class TestCase(unittest.TestCase):
         try:
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("institution", "NCC2")
-
+            cmor.set_cur_dataset_attribute("experiment_id", "ssp434")
+            cmor.set_cur_dataset_attribute(
+                "parent_experiment_id", "historical")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "CMIP")
+            cmor.set_cur_dataset_attribute("activity_id", "ScenarioMIP")
+            cmor.set_cur_dataset_attribute("source_type", "AOGCM")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "none")
+            cmor.set_cur_dataset_attribute(
+                "parent_variant_label", "r11i123p4556f333")
+            cmor.set_cur_dataset_attribute(
+                "parent_source_id", "PCMDI-test-1-0")
+            cmor.set_cur_dataset_attribute("parent_mip_era", "CMIP-6")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -51,13 +62,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             pass
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
@@ -66,15 +80,15 @@ class TestCase(unittest.TestCase):
         f = open(tmpfile[1], 'r')
         lines = f.readlines()
         for line in lines:
-            if line.find('Your attribute') != -1:
-                self.assertIn('bad institution', line.strip())
+            if line.find('parent_mip_era') != -1:
+                self.assertIn('CMIP-6', line.strip())
                 break
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badinstitution.py b/Test/test_python_CMIP6_CV_parentsourceid.py
similarity index 69%
copy from Test/test_python_CMIP6_CV_badinstitution.py
copy to Test/test_python_CMIP6_CV_parentsourceid.py
index 34f791c..989c8f6 100644
--- a/Test/test_python_CMIP6_CV_badinstitution.py
+++ b/Test/test_python_CMIP6_CV_parentsourceid.py
@@ -23,6 +23,7 @@ import tempfile
 class TestCase(unittest.TestCase):
 
     def testCMIP6(self):
+
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
         # ------------------------------------------------------
@@ -41,8 +42,17 @@ class TestCase(unittest.TestCase):
         try:
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("institution", "NCC2")
-
+            cmor.set_cur_dataset_attribute("experiment_id", "ssp434")
+            cmor.set_cur_dataset_attribute(
+                "parent_experiment_id", "historical")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "CMIP")
+            cmor.set_cur_dataset_attribute("activity_id", "ScenarioMIP")
+            cmor.set_cur_dataset_attribute("source_type", "AOGCM")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "none")
+            cmor.set_cur_dataset_attribute(
+                "parent_variant_label", "r11i123p4556f333")
+            cmor.set_cur_dataset_attribute("parent_source_id", "OLD-SOURCE")
+            cmor.set_cur_dataset_attribute("parent_mip_era", "CMIP6")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -51,13 +61,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             pass
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
@@ -66,15 +79,15 @@ class TestCase(unittest.TestCase):
         f = open(tmpfile[1], 'r')
         lines = f.readlines()
         for line in lines:
-            if line.find('Your attribute') != -1:
-                self.assertIn('bad institution', line.strip())
+            if line.find('Error:') != -1:
+                self.assertIn('OLD', line.strip())
                 break
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badinstitution.py b/Test/test_python_CMIP6_CV_parenttimeunits.py
similarity index 66%
copy from Test/test_python_CMIP6_CV_badinstitution.py
copy to Test/test_python_CMIP6_CV_parenttimeunits.py
index 34f791c..9ea71f5 100644
--- a/Test/test_python_CMIP6_CV_badinstitution.py
+++ b/Test/test_python_CMIP6_CV_parenttimeunits.py
@@ -23,6 +23,7 @@ import tempfile
 class TestCase(unittest.TestCase):
 
     def testCMIP6(self):
+
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
         # ------------------------------------------------------
@@ -41,8 +42,20 @@ class TestCase(unittest.TestCase):
         try:
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("institution", "NCC2")
-
+            cmor.set_cur_dataset_attribute("experiment_id", "ssp434")
+            cmor.set_cur_dataset_attribute(
+                "parent_experiment_id", "historical")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "CMIP")
+            cmor.set_cur_dataset_attribute("activity_id", "ScenarioMIP")
+            cmor.set_cur_dataset_attribute("source_type", "AOGCM")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "none")
+            cmor.set_cur_dataset_attribute(
+                "parent_variant_label", "r11i123p4556f333")
+            cmor.set_cur_dataset_attribute(
+                "parent_source_id", "PCMDI-test-1-0")
+            cmor.set_cur_dataset_attribute("parent_mip_era", "CMIP6")
+            cmor.set_cur_dataset_attribute(
+                "parent_time_units", "days since 1980-01")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -51,14 +64,17 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
-            pass
+        except BaseException:
+            raise
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
         sys.stdout = os.fdopen(newstdout, 'w', 0)
@@ -66,15 +82,15 @@ class TestCase(unittest.TestCase):
         f = open(tmpfile[1], 'r')
         lines = f.readlines()
         for line in lines:
-            if line.find('Your attribute') != -1:
-                self.assertIn('bad institution', line.strip())
+            if line.find('Error:') != -1:
+                self.assertIn('1980-01', line.strip())
                 break
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badinstitution.py b/Test/test_python_CMIP6_CV_parentvariantlabel.py
similarity index 69%
copy from Test/test_python_CMIP6_CV_badinstitution.py
copy to Test/test_python_CMIP6_CV_parentvariantlabel.py
index 34f791c..2d35a5d 100644
--- a/Test/test_python_CMIP6_CV_badinstitution.py
+++ b/Test/test_python_CMIP6_CV_parentvariantlabel.py
@@ -23,6 +23,7 @@ import tempfile
 class TestCase(unittest.TestCase):
 
     def testCMIP6(self):
+
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
         # ------------------------------------------------------
@@ -41,8 +42,18 @@ class TestCase(unittest.TestCase):
         try:
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("institution", "NCC2")
-
+            cmor.set_cur_dataset_attribute("experiment_id", "ssp434")
+            cmor.set_cur_dataset_attribute(
+                "parent_experiment_id", "historical")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "CMIP")
+            cmor.set_cur_dataset_attribute("activity_id", "ScenarioMIP")
+            cmor.set_cur_dataset_attribute("source_type", "AOGCM")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "none")
+            cmor.set_cur_dataset_attribute(
+                "parent_variant_label", "r11i123p4556")
+            cmor.set_cur_dataset_attribute(
+                "parent_source_id", "PCMDI-test-1-0")
+            cmor.set_cur_dataset_attribute("parent_mip_era", "CMIP6")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -51,13 +62,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             pass
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
@@ -66,15 +80,15 @@ class TestCase(unittest.TestCase):
         f = open(tmpfile[1], 'r')
         lines = f.readlines()
         for line in lines:
-            if line.find('Your attribute') != -1:
-                self.assertIn('bad institution', line.strip())
+            if line.find('Error:') != -1:
+                self.assertIn('r11i123p4556', line.strip())
                 break
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badinstitution.py b/Test/test_python_CMIP6_CV_sub_experimentIDbad.py
similarity index 68%
copy from Test/test_python_CMIP6_CV_badinstitution.py
copy to Test/test_python_CMIP6_CV_sub_experimentIDbad.py
index 34f791c..5830ea1 100644
--- a/Test/test_python_CMIP6_CV_badinstitution.py
+++ b/Test/test_python_CMIP6_CV_sub_experimentIDbad.py
@@ -23,6 +23,7 @@ import tempfile
 class TestCase(unittest.TestCase):
 
     def testCMIP6(self):
+
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
         # ------------------------------------------------------
@@ -41,8 +42,18 @@ class TestCase(unittest.TestCase):
         try:
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("institution", "NCC2")
-
+            cmor.set_cur_dataset_attribute("experiment_id", "dcppA-hindcast")
+            cmor.set_cur_dataset_attribute(
+                "parent_experiment_id", "dcppA-assim")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "DCPP")
+            cmor.set_cur_dataset_attribute("activity_id", "DCPP")
+            cmor.set_cur_dataset_attribute("source_type", "AOGCM AER")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "s3000")
+            cmor.set_cur_dataset_attribute(
+                "parent_variant_label", "r11i123p4556f333")
+            cmor.set_cur_dataset_attribute(
+                "parent_source_id", "PCMDI-test-1-0")
+            cmor.set_cur_dataset_attribute("parent_mip_era", "CMIP6")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -51,13 +62,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             pass
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
@@ -65,16 +79,17 @@ class TestCase(unittest.TestCase):
         sys.stderr = os.fdopen(newstderr, 'w', 0)
         f = open(tmpfile[1], 'r')
         lines = f.readlines()
+        # We need 8 attributes to be replaced
         for line in lines:
-            if line.find('Your attribute') != -1:
-                self.assertIn('bad institution', line.strip())
+            if line.find('Error') != -1:
+                self.assertIn('sub_experiment_id', line.strip())
                 break
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badinstitution.py b/Test/test_python_CMIP6_CV_sub_experiment_id.py
similarity index 68%
copy from Test/test_python_CMIP6_CV_badinstitution.py
copy to Test/test_python_CMIP6_CV_sub_experiment_id.py
index 34f791c..5830ea1 100644
--- a/Test/test_python_CMIP6_CV_badinstitution.py
+++ b/Test/test_python_CMIP6_CV_sub_experiment_id.py
@@ -23,6 +23,7 @@ import tempfile
 class TestCase(unittest.TestCase):
 
     def testCMIP6(self):
+
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
         # ------------------------------------------------------
@@ -41,8 +42,18 @@ class TestCase(unittest.TestCase):
         try:
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("institution", "NCC2")
-
+            cmor.set_cur_dataset_attribute("experiment_id", "dcppA-hindcast")
+            cmor.set_cur_dataset_attribute(
+                "parent_experiment_id", "dcppA-assim")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "DCPP")
+            cmor.set_cur_dataset_attribute("activity_id", "DCPP")
+            cmor.set_cur_dataset_attribute("source_type", "AOGCM AER")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "s3000")
+            cmor.set_cur_dataset_attribute(
+                "parent_variant_label", "r11i123p4556f333")
+            cmor.set_cur_dataset_attribute(
+                "parent_source_id", "PCMDI-test-1-0")
+            cmor.set_cur_dataset_attribute("parent_mip_era", "CMIP6")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -51,13 +62,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             pass
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
@@ -65,16 +79,17 @@ class TestCase(unittest.TestCase):
         sys.stderr = os.fdopen(newstderr, 'w', 0)
         f = open(tmpfile[1], 'r')
         lines = f.readlines()
+        # We need 8 attributes to be replaced
         for line in lines:
-            if line.find('Your attribute') != -1:
-                self.assertIn('bad institution', line.strip())
+            if line.find('Error') != -1:
+                self.assertIn('sub_experiment_id', line.strip())
                 break
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badinstitution.py b/Test/test_python_CMIP6_CV_sub_experimentbad.py
similarity index 64%
copy from Test/test_python_CMIP6_CV_badinstitution.py
copy to Test/test_python_CMIP6_CV_sub_experimentbad.py
index 34f791c..fcfe5df 100644
--- a/Test/test_python_CMIP6_CV_badinstitution.py
+++ b/Test/test_python_CMIP6_CV_sub_experimentbad.py
@@ -1,4 +1,4 @@
-# If this example is not executed from the directory containing the
+# Irf this example is not executed from the directory containing the
 # CMOR code, please first complete the following steps:
 #
 #   1. In any directory, create 'Tables/', 'Test/' and 'CMIP6/' directories.
@@ -23,6 +23,7 @@ import tempfile
 class TestCase(unittest.TestCase):
 
     def testCMIP6(self):
+
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
         # ------------------------------------------------------
@@ -41,8 +42,17 @@ class TestCase(unittest.TestCase):
         try:
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("institution", "NCC2")
-
+            cmor.set_cur_dataset_attribute("parent_source_id", "no parent")
+            cmor.set_cur_dataset_attribute("parent_time_units", "no parent")
+            cmor.set_cur_dataset_attribute("parent_variant_label", "no parent")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "no parent")
+            cmor.set_cur_dataset_attribute("parent_experiment_id", "no parent")
+            cmor.set_cur_dataset_attribute("branch_method", "no parent")
+            cmor.set_cur_dataset_attribute("parent_mip_era", "no parent")
+            cmor.set_cur_dataset_attribute("branch_time_in_child", "0.0")
+            cmor.set_cur_dataset_attribute("branch_time_in_parent", "0.0")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "none")
+            cmor.set_cur_dataset_attribute("sub_experiment", "iasdf")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -51,13 +61,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             pass
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
@@ -65,16 +78,17 @@ class TestCase(unittest.TestCase):
         sys.stderr = os.fdopen(newstderr, 'w', 0)
         f = open(tmpfile[1], 'r')
         lines = f.readlines()
+        # We need 8 attributes to be replaced
         for line in lines:
-            if line.find('Your attribute') != -1:
-                self.assertIn('bad institution', line.strip())
+            if line.find('sub_experiment') != -1:
+                self.assertIn('iasdf', line.strip())
                 break
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_badinstitution.py b/Test/test_python_CMIP6_CV_sub_experimentnotset.py
similarity index 65%
copy from Test/test_python_CMIP6_CV_badinstitution.py
copy to Test/test_python_CMIP6_CV_sub_experimentnotset.py
index 34f791c..752c3d9 100644
--- a/Test/test_python_CMIP6_CV_badinstitution.py
+++ b/Test/test_python_CMIP6_CV_sub_experimentnotset.py
@@ -1,4 +1,4 @@
-# If this example is not executed from the directory containing the
+# Irf this example is not executed from the directory containing the
 # CMOR code, please first complete the following steps:
 #
 #   1. In any directory, create 'Tables/', 'Test/' and 'CMIP6/' directories.
@@ -23,6 +23,7 @@ import tempfile
 class TestCase(unittest.TestCase):
 
     def testCMIP6(self):
+
         # ------------------------------------------------------
         # Copy stdout and stderr file descriptor for cmor output
         # ------------------------------------------------------
@@ -41,8 +42,19 @@ class TestCase(unittest.TestCase):
         try:
             cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
             cmor.dataset_json("Test/common_user_input.json")
-            cmor.set_cur_dataset_attribute("institution", "NCC2")
-
+            cmor.set_cur_dataset_attribute("experiment_id", "dcppA-hindcast")
+            cmor.set_cur_dataset_attribute(
+                "parent_experiment_id", "dcppA-assim")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "DCPP")
+            cmor.set_cur_dataset_attribute("activity_id", "DCPP")
+            cmor.set_cur_dataset_attribute("source_type", "AOGCM AER")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "s2000")
+            cmor.set_cur_dataset_attribute("sub_experiment", "none")
+            cmor.set_cur_dataset_attribute(
+                "parent_variant_label", "r11i123p4556f333")
+            cmor.set_cur_dataset_attribute(
+                "parent_source_id", "PCMDI-test-1-0")
+            cmor.set_cur_dataset_attribute("parent_mip_era", "CMIP6")
 
             # ------------------------------------------
             # load Omon table and create masso variable
@@ -51,13 +63,16 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             pass
         os.dup2(newstdout, 1)
         os.dup2(newstderr, 2)
@@ -65,16 +80,17 @@ class TestCase(unittest.TestCase):
         sys.stderr = os.fdopen(newstderr, 'w', 0)
         f = open(tmpfile[1], 'r')
         lines = f.readlines()
+        # We need 8 attributes to be replaced
         for line in lines:
-            if line.find('Your attribute') != -1:
-                self.assertIn('bad institution', line.strip())
+            if line.find('sub_experiment') != -1:
+                self.assertIn('none', line.strip())
                 break
         f.close()
         os.unlink(tmpfile[1])
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_trackingNoprefix.py b/Test/test_python_CMIP6_CV_trackingNoprefix.py
index d1ff3e7..36156a5 100644
--- a/Test/test_python_CMIP6_CV_trackingNoprefix.py
+++ b/Test/test_python_CMIP6_CV_trackingNoprefix.py
@@ -72,7 +72,10 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2010',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
@@ -85,12 +88,12 @@ class TestCase(unittest.TestCase):
             f = cdms2.open(cmor.get_final_filename(), "r")
             a = f.getglobal("tracking_id").split('/')[0]
             self.assertNotIn("hdl:21.14100/", a)
-        except:
+        except BaseException:
             raise
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_CV_trackingprefix.py b/Test/test_python_CMIP6_CV_trackingprefix.py
index be5b60f..48a2d1e 100644
--- a/Test/test_python_CMIP6_CV_trackingprefix.py
+++ b/Test/test_python_CMIP6_CV_trackingprefix.py
@@ -30,20 +30,19 @@ def run():
 
 class TestCase(unittest.TestCase):
 
-    def setUp(self, *args, **kwargs):                                                                                                          
-        # ------------------------------------------------------                                                                               
-        # Copy stdout and stderr file descriptor for cmor output                                                                               
-        # ------------------------------------------------------                                                                               
-        self.newstdout = os.dup(1)                                                                                                             
-        self.newstderr = os.dup(2)                                                                                                             
-        # --------------                                                                                                                       
-        # Create tmpfile                                                                                                                       
-        # --------------                                                                                                                       
-        self.tmpfile = tempfile.mkstemp()                                                                                                      
-        os.dup2(self.tmpfile[0], 1)                                                                                                            
-        os.dup2(self.tmpfile[0], 2)                                                                                                            
-        os.close(self.tmpfile[0])                                                                                                              
-
+    def setUp(self, *args, **kwargs):
+        # ------------------------------------------------------
+        # Copy stdout and stderr file descriptor for cmor output
+        # ------------------------------------------------------
+        self.newstdout = os.dup(1)
+        self.newstderr = os.dup(2)
+        # --------------
+        # Create tmpfile
+        # --------------
+        self.tmpfile = tempfile.mkstemp()
+        os.dup2(self.tmpfile[0], 1)
+        os.dup2(self.tmpfile[0], 2)
+        os.close(self.tmpfile[0])
 
     def testCMIP6(self):
         try:
@@ -61,26 +60,29 @@ class TestCase(unittest.TestCase):
             itime = cmor.axis(table_entry="time", units='months since 2011',
                               coord_vals=numpy.array([0, 1, 2, 3, 4.]),
                               cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
                 a = cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             raise
-        os.dup2(self.newstdout, 1)                                                                                                         
-        os.dup2(self.newstderr, 2)                                                                                                         
-        sys.stdout = os.fdopen(self.newstdout, 'w', 0)                                                                                     
-        sys.stderr = os.fdopen(self.newstderr, 'w', 0)                                                                                     
+        os.dup2(self.newstdout, 1)
+        os.dup2(self.newstderr, 2)
+        sys.stdout = os.fdopen(self.newstdout, 'w', 0)
+        sys.stderr = os.fdopen(self.newstderr, 'w', 0)
 
         f = cdms2.open(cmor.get_final_filename(), "r")
         a = f.getglobal("tracking_id").split('/')[0]
         self.assertIn("hdl:21.14100", a)
 
-    def tearDown(self):                                                                                                                        
-        import shutil                                                                                                                          
-        shutil.rmtree("./CMIP6")                                                                                                               
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
 
 
 if __name__ == '__main__':
diff --git a/Test/test_python_CMIP6_driving.py b/Test/test_python_CMIP6_driving.py
index ad93a74..0b78ce4 100644
--- a/Test/test_python_CMIP6_driving.py
+++ b/Test/test_python_CMIP6_driving.py
@@ -65,18 +65,23 @@ class TestCase(unittest.TestCase):
             cmor.load_table("CMIP6_Omon.json")
             itime = cmor.axis(table_entry="time", units='months since 2010', coord_vals=numpy.array(
                 [0, 1, 2, 3, 4.]), cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
-                cmor.write(ivar, data[i:i])  # ,time_vals=numpy.array([i,]),time_bnds=numpy.array([i,i+1]))
+                # ,time_vals=numpy.array([i,]),time_bnds=numpy.array([i,i+1]))
+                cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
             sys.stdout = os.fdopen(self.newstdout, 'w', 0)
             sys.stderr = os.fdopen(self.newstderr, 'w', 0)
             self.assertIn('d', testOK)
 
+
 if __name__ == '__main__':
     run()
diff --git a/Test/test_python_CMIP6_experimentID.py b/Test/test_python_CMIP6_experimentID.py
index 095a6b0..88c3ebc 100644
--- a/Test/test_python_CMIP6_experimentID.py
+++ b/Test/test_python_CMIP6_experimentID.py
@@ -65,13 +65,17 @@ class TestCase(unittest.TestCase):
             cmor.load_table("CMIP6_Omon.json")
             itime = cmor.axis(table_entry="time", units='months since 2010', coord_vals=numpy.array(
                 [0, 1, 2, 3, 4.]), cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
 
             data = numpy.random.random(5)
             for i in range(0, 5):
-                cmor.write(ivar, data[i:i])  # ,time_vals=numpy.array([i,]),time_bnds=numpy.array([i,i+1]))
+                # ,time_vals=numpy.array([i,]),time_bnds=numpy.array([i,i+1]))
+                cmor.write(ivar, data[i:i])
             cmor.close()
-        except:
+        except BaseException:
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
             sys.stdout = os.fdopen(self.newstdout, 'w', 0)
@@ -79,5 +83,6 @@ class TestCase(unittest.TestCase):
             testOK = self.getAssertTest()
             self.assertIn('piControlbad', testOK)
 
+
 if __name__ == '__main__':
     run()
diff --git a/Test/test_python_CMIP6_projections.py b/Test/test_python_CMIP6_projections.py
new file mode 100644
index 0000000..fb0bd71
--- /dev/null
+++ b/Test/test_python_CMIP6_projections.py
@@ -0,0 +1,112 @@
+# If this example is not executed from the directory containing the
+# CMOR code, please first complete the following steps:
+#
+#   1. In any directory, create 'Tables/', 'Test/' and 'CMIP6/' directories.
+#
+#   2. Download
+#      https://github.com/PCMDI/cmor/blob/master/TestTables/CMIP6_Omon.json
+#      and https://github.com/PCMDI/cmor/blob/master/TestTables/CMIP6_CV.json
+#      to the 'Tables/' directory.
+#
+#   3. Download
+#      https://github.com/PCMDI/cmor/blob/master/Test/<filename>.json
+#      to the 'Test/' directory.
+
+import cmor
+import numpy
+import unittest
+import os
+import sys
+import tempfile
+
+# ==============================
+#  main thread
+# ==============================
+
+
+def run():
+    unittest.main()
+
+
+class TestCase(unittest.TestCase):
+
+    def testCMIP6(self):
+
+        # Create x and y coordinates and bounds.
+        #
+        coordVals = numpy.arange(-533750.0, 533750.0 +
+                                 2500.0, 2500.0, numpy.float32)
+        coordBnds = numpy.zeros((coordVals.shape[0], 2), numpy.float32)
+
+        coordBnds[:, 0] = coordVals - 1250.0
+        coordBnds[:, 1] = coordVals + 1250.0
+
+        # Create longitude and latitude fields for a polar stereographic projection.
+        #
+        xgrid, ygrid = numpy.broadcast_arrays(
+            numpy.expand_dims(
+                coordVals, 0), numpy.expand_dims(
+                coordVals, 1))
+
+        rhogrid = numpy.sqrt(xgrid**2 + ygrid**2)
+        cgrid = 2.0 * numpy.arctan((0.5 / 6378137.0) * rhogrid)
+        latgrid = (180.0 / 3.141592654) * numpy.arcsin(numpy.cos(cgrid))
+        longrid = (180.0 / 3.141592654) * numpy.arctan2(xgrid, -ygrid)
+
+        # Set up CMOR with information from the CMOR config dictionary.
+        #
+
+        cmor.setup("Tables", netcdf_file_action=cmor.CMOR_REPLACE_4)
+
+        # Create the output CMOR dataset using the output configuration.
+        #
+        cmor.dataset_json("Test/common_user_input.json")
+
+        # Load the grid table.
+        #
+        cmor_table_obj = cmor.load_table("CMIP6_grids.json")
+
+        # Create ygre and xgre axes.
+        #
+        entry = {
+            'table_entry': 'y',
+            'units': 'm',
+            'coord_vals': coordVals,
+            'cell_bounds': coordBnds}
+
+        axis_ygre = cmor.axis(**entry)
+
+        entry = {
+            'table_entry': 'x',
+            'units': 'm',
+            'coord_vals': coordVals,
+            'cell_bounds': coordBnds}
+
+        axis_xgre = cmor.axis(**entry)
+
+        # Create the grid
+        #
+        grid_id = cmor.grid(
+            axis_ids=[
+                axis_ygre,
+                axis_xgre],
+            latitude=latgrid,
+            longitude=longrid)
+
+        # Set the CMOR grid mapping.
+        #
+        #    mapnm = 'polar_stereographic'
+        param_dict = {
+            'latitude_of_projection_origin': [90.0, 'degrees_north'],
+            'straight_vertical_longitude_from_pole': [135.0, 'degrees_east'],
+            'standard_parallel': [70.0, 'degrees_north'],
+            'false_northing': [0.0, 'meters'],
+            'false_easting': [0.0, 'meters']
+        }
+        ierr = cmor.set_grid_mapping(
+            grid_id, 'polar_stereographic', param_dict)
+        self.assertEqual(ierr, 0)
+
+
+if __name__ == '__main__':
+    run()
diff --git a/Test/test_python_CMIP6_wrong_activity.py b/Test/test_python_CMIP6_wrong_activity.py
index 5143681..48c60ba 100644
--- a/Test/test_python_CMIP6_wrong_activity.py
+++ b/Test/test_python_CMIP6_wrong_activity.py
@@ -66,10 +66,14 @@ class TestCase(unittest.TestCase):
             cmor.load_table("CMIP6_Omon.json")
             itime = cmor.axis(table_entry="time", units='months since 2010', coord_vals=numpy.array(
                 [0, 1, 2, 3, 4.]), cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
-            ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
+            ivar = cmor.variable(
+                table_entry="masso",
+                axis_ids=[itime],
+                units='kg')
             data = numpy.random.random(5)
             for i in range(0, 5):
-                cmor.write(ivar, data[i:i])  # ,time_vals=numpy.array([i,]),time_bnds=numpy.array([i,i+1]))
+                # ,time_vals=numpy.array([i,]),time_bnds=numpy.array([i,i+1]))
+                cmor.write(ivar, data[i:i])
             cmor.close()
             os.dup2(self.newstdout, 1)
             os.dup2(self.newstderr, 2)
@@ -77,8 +81,9 @@ class TestCase(unittest.TestCase):
             sys.stderr = os.fdopen(self.newstderr, 'w', 0)
             testOK = self.getAssertTest()
             self.assertIn('CMIP5-PMIP', testOK)
-        except:
+        except BaseException:
             raise
 
+
 if __name__ == '__main__':
     run()
diff --git a/Test/test_python_YYYMMDDHH_exp_fmt.py b/Test/test_python_YYYMMDDHH_exp_fmt.py
index 873fe35..714648a 100644
--- a/Test/test_python_YYYMMDDHH_exp_fmt.py
+++ b/Test/test_python_YYYMMDDHH_exp_fmt.py
@@ -1,36 +1,38 @@
 import cmor
 
+
 def path_test():
-    cmor.setup(inpath='Test',netcdf_file_action=cmor.CMOR_REPLACE)
+    cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
 
     cmor.dataset_json("Test/common_user_input.json")
-    
-    table='Tables/CMIP6_Amon.json'
+
+    table = 'Tables/CMIP6_Amon.json'
     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]},
-             ]
-              
+    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)
+    path = cmor.close(varid, file_name=True)
+
+    print "Saved file: ", path
 
-    print "Saved file: ",path
 
 if __name__ == '__main__':
     path_test()
diff --git a/Test/test_python_alastair_1.py b/Test/test_python_alastair_1.py
index 8a4e9d1..7a7442c 100644
--- a/Test/test_python_alastair_1.py
+++ b/Test/test_python_alastair_1.py
@@ -1,71 +1,70 @@
-import cmor,numpy
+import cmor
+import numpy
 
 error_flag = cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
-  
+
 error_flag = cmor.dataset_json("Test/common_user_input.json")
 
 # 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)
+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("CMIP6_Amon.json")
-ilat = cmor.axis(  
-    table_entry='latitude',       
-    units='degrees_north',          
-    length=nlat,                   
-    coord_vals=alats,              
-    cell_bounds=bnds_lat)        
+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)      
+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., 500., 100.])
-plevs=plevs[::-1]
+ntimes = 12
+plevs = numpy.array([100000., 92500., 85000., 70000., 60000., 50000., 40000., 30000., 25000.,
+                     20000., 15000., 10000., 7000., 5000., 3000., 2000., 1000., 500., 100.])
+plevs = plevs[::-1]
 
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2030-1-1',  
-    length=ntimes,                
+itim = cmor.axis(
+    table_entry='time',
+    units='months since 2030-1-1',
+    length=ntimes,
     interval='1 month')
 
-ilev = cmor.axis(  
-        table_entry='plev19',       
-        units='Pa',
-        coord_vals=plevs,             
-        cell_bounds=None)
-    
+ilev = cmor.axis(
+    table_entry='plev19',
+    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], 
+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.
+    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.write(
+        var_id=var3d_ids,
+        data=data3d,
+        ntimes_passed=1,
+        time_vals=time,
+        time_bnds=bnds_time)
 
-  
-error_flag = cmor.close()  
 
+error_flag = cmor.close()
diff --git a/Test/test_python_appending.py b/Test/test_python_appending.py
index 474d4d3..e462f14 100644
--- a/Test/test_python_appending.py
+++ b/Test/test_python_appending.py
@@ -1,84 +1,104 @@
-import cmor,numpy
+import cmor
+import numpy
 
 nlat = 90
 nlon = 180
 
-def mywrite(data = None, time_vals = None, append_to = None,cell_bounds=None):
+
+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)
+    bnds_req = numpy.array(bnds_req)
+    bnds_req.shape = (7, 2)
 
     print bnds_req[-2], bnds_req.shape
 
-    levs=[]
+    levs = []
 
     for b in bnds_req:
-        levs.append((b[0]+b[1])/2.)
+        levs.append((b[0] + b[1]) / 2.)
 
-    levs=numpy.array(levs)
+    levs = numpy.array(levs)
 
     print levs
 
-    ipth="Test"
+    ipth = "Test"
     if append_to is None:
         mode = cmor.CMOR_REPLACE
     else:
         mode = cmor.CMOR_APPEND
-    print 'Mode in python:',mode
+    print 'Mode in python:', mode
     cmor.setup(inpath=ipth,
                set_verbosity=cmor.CMOR_NORMAL,
-               netcdf_file_action = mode,
-               logfile = None)
+               netcdf_file_action=mode,
+               logfile=None)
 
     cmor.dataset_json("Test/common_user_input.json")
 
     cmor.load_table("Tables/CMIP6_Amon.json")
 
-    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.
+    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., 500., 100.])
 
-    itim = cmor.axis(table_entry='time',units='month since 2008')
+    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="plev19",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)
+    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="plev19", 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")
+        print 'time:', time_vals
+        print 'bnds:', cell_bounds
+        # ,file_suffix="with-appending")
+        cmor.write(iv, data, time_vals=time_vals, time_bnds=cell_bounds)
     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 '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
+    file = cmor.close(iv, file_name=True)
+    print 'Ok dumped to:', file
     cmor.close()
     return file
 
 
 ntime = 12
-data = numpy.random.random((ntime,19,nlat,nlon))+280.
+data = numpy.random.random((ntime, 19, 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)
+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_bad_date.py b/Test/test_python_bad_date.py
index f194b47..79b57f7 100644
--- a/Test/test_python_bad_date.py
+++ b/Test/test_python_bad_date.py
@@ -1,60 +1,63 @@
 import cmor
 import numpy
 
+
 def cmor_initialisation():
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3,
-               create_subdirectories = 0)
+               netcdf_file_action=cmor.CMOR_REPLACE_3,
+               create_subdirectories=0)
     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',
-                 parent_experiment_rip = 'N/A',
-                 branch_time = 0.,
-                 contact = 'bob',
-                 outpath = 'Test')
+                 institute_id='ukmo',
+                 model_id='HadCM3',
+                 history='some global history',
+                 forcing='N/A',
+                 parent_experiment_id='N/A',
+                 parent_experiment_rip='N/A',
+                 branch_time=0.,
+                 contact='bob',
+                 outpath='Test')
+
 
 def setup_data():
-    ntimes=7200
-    tvals = numpy.arange(ntimes)*6.
+    ntimes = 7200
+    tvals = numpy.arange(ntimes) * 6.
     tbnds = list(tvals)
     tbnds.append(43200)
-    tbnds=numpy.array(tbnds)-3.
-    print "tvals:",tvals
-    print "tbnds:",tbnds
+    tbnds = numpy.array(tbnds) - 3.
+    print "tvals:", tvals
+    print "tbnds:", tbnds
     import cdtime
-    tunits='hours since 209-01-01 06:00:00'
-    t1=cdtime.reltime(tvals[0],tunits)
-    t2=cdtime.reltime(tvals[-1],tunits)
-    t3=cdtime.reltime(tbnds[-1],tunits)
-    print t1.tocomp(),t1.tocomp(cdtime.Calendar360)
-    print t2.tocomp(),t2.tocomp(cdtime.Calendar360)
-    print t3.tocomp(),t3.tocomp(cdtime.Calendar360)
-    
-    axes = [ {'table_entry': 'time1',
-              'units': tunits,
-              'coord_vals' : tvals,
-              'cell_bounds' : tbnds,
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [-5,5]},
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [0],
-              'cell_bounds':[-10,10]},
-             ## {'table_entry': 'depth',
-             ##  'units': 'm',
-             ##  'coord_vals': [10],
-             ##  'cell_bounds': [5,15]},
-             ]
-
-    values = numpy.ones(ntimes)*1013.
+    tunits = 'hours since 209-01-01 06:00:00'
+    t1 = cdtime.reltime(tvals[0], tunits)
+    t2 = cdtime.reltime(tvals[-1], tunits)
+    t3 = cdtime.reltime(tbnds[-1], tunits)
+    print t1.tocomp(), t1.tocomp(cdtime.Calendar360)
+    print t2.tocomp(), t2.tocomp(cdtime.Calendar360)
+    print t3.tocomp(), t3.tocomp(cdtime.Calendar360)
+
+    axes = [{'table_entry': 'time1',
+             'units': tunits,
+             'coord_vals': tvals,
+             'cell_bounds': tbnds,
+             },
+            {'table_entry': 'latitude',
+             'units': 'degrees_north',
+             'coord_vals': [0],
+             'cell_bounds': [-5, 5]},
+            {'table_entry': 'longitude',
+             'units': 'degrees_east',
+             'coord_vals': [0],
+             'cell_bounds':[-10, 10]},
+            # {'table_entry': 'depth',
+            # 'units': 'm',
+            # 'coord_vals': [10],
+            # 'cell_bounds': [5,15]},
+            ]
+
+    values = numpy.ones(ntimes) * 1013.
     return values.astype("f"), axes
 
+
 def cmor_define_and_write(values, axes):
     table = '/git/cmip5-cmor-tables/Tables/CMIP5_6hrPlev'
     cmor.load_table(table)
@@ -67,26 +70,26 @@ def cmor_define_and_write(values, axes):
 
     #gid = cmor.grid([site_axis_id,],latitude=numpy.array([-20,]),longitude=numpy.array([150,]))
 
-
-    axis_ids = [time_axis_id,lat_axis_id,lon_axis_id]
+    axis_ids = [time_axis_id, lat_axis_id, lon_axis_id]
     varid = cmor.variable('psl',
                           'hPa',
                           axis_ids,
-                          history = 'variable history',
-                          missing_value = -99,
+                          history='variable history',
+                          missing_value=-99,
                           )
 
     cmor.write(varid, values)
     return varid
-    
-    
+
+
 def main():
-    
+
     cmor_initialisation()
-    values,axes = setup_data()
+    values, axes = setup_data()
     vid = cmor_define_and_write(values, axes)
-    print cmor.close(var_id=vid,file_name=True)
-    
+    print cmor.close(var_id=vid, file_name=True)
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_bentley_01.py b/Test/test_python_bentley_01.py
index c50dc81..ccc7fdd 100644
--- a/Test/test_python_bentley_01.py
+++ b/Test/test_python_bentley_01.py
@@ -2,38 +2,41 @@ import cmor
 import numpy
 import cdtime
 
+
 def cmor_initialisation():
     cmor.setup(inpath='/git/cmip5-cmor-tables/Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3,
-               create_subdirectories = 0)
+               netcdf_file_action=cmor.CMOR_REPLACE_3,
+               create_subdirectories=0)
     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',
-                 parent_experiment_rip = 'N/A',
-                 branch_time = 0.,
-                 contact = 'bob',
-                 outpath = './out')
+                 institute_id='ukmo',
+                 model_id='HadCM3',
+                 history='some global history',
+                 forcing='N/A',
+                 parent_experiment_id='N/A',
+                 parent_experiment_rip='N/A',
+                 branch_time=0.,
+                 contact='bob',
+                 outpath='./out')
+
 
 def setup_data():
-    axes = [ {'table_entry': 'time1',
-              'units': 'days since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'site',
-              'units': '',
-              'coord_vals': [0]},
-             {'table_entry': 'hybrid_height',
-              'units': 'm',
-              'coord_vals': range(2),
-              'cell_bounds': [[x-0.5, x+0.5] for x in range(2)],
-              },
-             ]
+    axes = [{'table_entry': 'time1',
+             'units': 'days since 2000-01-01 00:00:00',
+             },
+            {'table_entry': 'site',
+             'units': '',
+             'coord_vals': [0]},
+            {'table_entry': 'hybrid_height',
+             'units': 'm',
+             'coord_vals': range(2),
+             'cell_bounds': [[x - 0.5, x + 0.5] for x in range(2)],
+             },
+            ]
 
     values = numpy.array([0.5, 0.5], numpy.float32)
     return values, axes
 
+
 def cmor_define_and_write(values, axes):
     table = 'CMIP5_cfSites'
     cmor.load_table(table)
@@ -44,38 +47,38 @@ def cmor_define_and_write(values, axes):
         axis_ids.append(axis_id)
 
     igrid = cmor.grid([axis_ids[1]], [0.], [0.])
-    cmor.zfactor(axis_ids[2], 'b', axis_ids = [axis_ids[2]],
-                 zfactor_values = range(2),
-                 zfactor_bounds = [[x-0.5, x+0.5] for x in range(2)])
+    cmor.zfactor(axis_ids[2], 'b', axis_ids=[axis_ids[2]],
+                 zfactor_values=range(2),
+                 zfactor_bounds=[[x - 0.5, x + 0.5] for x in range(2)])
 
-    cmor.zfactor(axis_ids[2], 'orog', 'm', axis_ids = [igrid],
-                 zfactor_values = [0])
+    cmor.zfactor(axis_ids[2], 'orog', 'm', axis_ids=[igrid],
+                 zfactor_values=[0])
 
     ids_for_var = [axis_ids[0], igrid, axis_ids[2]]
     varid = cmor.variable('tnhus',
                           's-1',
                           ids_for_var,
-                          history = 'variable history',
-                          missing_value = -99,
+                          history='variable history',
+                          missing_value=-99,
                           )
 
-    for time in [x * 1800./ 86400 for x in range(48)]:
-        time += 1./3600./24.
-        tr = cdtime.reltime(time,axes[0]["units"])
-        print "Writing: %.03f" % time,"|",tr.tocomp(cdtime.Calendar360),"|",tr.tocomp()
-        cmor.write(varid, values, time_vals = [time])
+    for time in [x * 1800. / 86400 for x in range(48)]:
+        time += 1. / 3600. / 24.
+        tr = cdtime.reltime(time, axes[0]["units"])
+        print "Writing: %.03f" % time, "|", tr.tocomp(cdtime.Calendar360), "|", tr.tocomp()
+        cmor.write(varid, values, time_vals=[time])
     return varid
 
 
 def main():
-    
+
     cmor_initialisation()
     values, axes = setup_data()
     varid = cmor_define_and_write(values, axes)
-    fname =  cmor.close(varid, file_name = True)
-    print "Done:",fname
+    fname = cmor.close(varid, file_name=True)
+    print "Done:", fname
+
 
-    
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_bounds_request.py b/Test/test_python_bounds_request.py
index 943e343..4c6eab0 100644
--- a/Test/test_python_bounds_request.py
+++ b/Test/test_python_bounds_request.py
@@ -1,4 +1,5 @@
-import cmor,numpy
+import cmor
+import numpy
 
 breq = "100000. 80000. 80000. 68000. 68000. 56000. 56000. 44000. 44000. 31000. 31000. 18000. 18000.  0.".split()
 
@@ -6,48 +7,66 @@ bnds_req = []
 for b in breq:
     bnds_req.append(float(b))
 
-bnds_req=numpy.array(bnds_req)
-bnds_req.shape=(7,2)
+bnds_req = numpy.array(bnds_req)
+bnds_req.shape = (7, 2)
 
 print bnds_req[-2], bnds_req.shape
 
-levs=[]
+levs = []
 
 for b in bnds_req:
-    levs.append((b[0]+b[1])/2.)
+    levs.append((b[0] + b[1]) / 2.)
 
-levs=numpy.array(levs)
+levs = numpy.array(levs)
 
 print levs
 
 cmor.setup(inpath="Tables",
            set_verbosity=cmor.CMOR_NORMAL,
-           netcdf_file_action = cmor.CMOR_REPLACE,
-           logfile = None)
+           netcdf_file_action=cmor.CMOR_REPLACE,
+           logfile=None)
 
-cmor.dataset_json("Test/common_user_input.json")
+cmor.dataset_json("Test/common_user_inputNOBOUNDS.json")
 
-cmor.load_table("Test/python_test_table_A")
+cmor.load_table("TestTables/python_test_table_A")
 
 nlat = 90
-dlat = 180/nlat
+dlat = 180 / nlat
 nlon = 180
-dlon = 360./nlon
+dlon = 360. / nlon
 
-lats = numpy.arange(-90+dlat/2.,90,dlat)
-lons = numpy.arange(0,360.,dlon)
+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
+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
 print bnds_req
-ilev = cmor.axis(table_entry="pressure2",coord_vals=levs,cell_bounds=bnds_req,units="Pa")
+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')
+iv = cmor.variable(
+    table_entry='ta', axis_ids=numpy.array(
+        (itim, ilev, ilat, ilon)), units='K')
 
-cmor.write(iv,data)
+cmor.write(iv, data)
diff --git a/Test/test_python_cfmip_site_axis_test.py b/Test/test_python_cfmip_site_axis_test.py
index afd6300..18c8ff0 100644
--- a/Test/test_python_cfmip_site_axis_test.py
+++ b/Test/test_python_cfmip_site_axis_test.py
@@ -33,65 +33,76 @@ import numpy
 
 MIP_TABLE_DIR = 'Tables'   # set according to your MIP table location
 
-#---------------------------------------------------------------------------------------------------
-def setup_cmor() :
-#---------------------------------------------------------------------------------------------------
-   # Initialise CMOR library
-   cmor.setup(inpath=MIP_TABLE_DIR, netcdf_file_action=cmor.CMOR_REPLACE_3,
-      set_verbosity=cmor.CMOR_NORMAL, create_subdirectories=0)
-
-   # Create CMOR dataset
-   cmor.dataset_json("Test/common_user_input.json")
-
-#---------------------------------------------------------------------------------------------------
-if __name__ == '__main__' :
-#---------------------------------------------------------------------------------------------------
-
-   # Initialise CMOR dataset and table
-   setup_cmor()
-   
-   # Set dummy site lats and longs.
-   site_lats = numpy.array([-90.0, 0.0, 90.0], dtype=numpy.float32)
-   site_lons = numpy.array([0.0, 0.0, 0.0], dtype=numpy.float32)
-
-   # Create CMOR axes and grids
-   table_id = cmor.load_table('CMIP6_cfSites.json')
-   taxis_id = cmor.axis('time1', units='days since 2000-01-01 00:00:00') #, length=1, interval='30 minutes')
-   print 'ok: created time axis'
-
-   saxis_id = cmor.axis('site', units='1', coord_vals=[1,2,3])
-   print 'ok: created site axis',saxis_id
-
-   zaxis_id = cmor.axis('hybrid_height', units='m', coord_vals=[1.0], cell_bounds=[0.0,2.0])
-   print 'ok: created height axis',zaxis_id
-
-   # Create zfactors for b and orog for hybrid height axis.
-   # Where do these get used, if anywhere?
-   bfact_id = cmor.zfactor(zaxis_id, 'b', '1', [zaxis_id], 'd', zfactor_values=[1.0],
-      zfactor_bounds=[0.0,2.0])
-   print 'ok: created b zfactors'
-
-   # Create grid object to link site-dimensioned variables to (lat,long).
-   # Need to make CMIP6_grids the current MIP table for this to work.
-   table_id = cmor.load_table('CMIP6_grids.json')
-   gaxis_id = cmor.grid([saxis_id], site_lats, site_lons)
-   print 'ok: created site grid'
-
-   # Create CMOR variable for cloud area fraction: MIP name = 'cl', STASH = m01s02i261*100
-   table_id = cmor.load_table('CMIP6_cfSites.json')
-   var_id = cmor.variable('cl', '%', [taxis_id, gaxis_id, zaxis_id], type='f',
-      missing_value=-99.0, original_name='STASH m01s02i261*100')
-   print 'ok: created variable for "cl"'
-
-   ofact_id = cmor.zfactor(zaxis_id, 'orog', 'm', [gaxis_id], 'd',
-      zfactor_values=[123.0])
-   print 'ok: created orog zfactors'
-   # Write some data to this variable. First convert raw data to numpy arrays.
-   shape = (1, 3, 1)
-   data = numpy.array([10, 20, 30], dtype=numpy.float32)
-   data = data.reshape(shape)
-   cmor.write(var_id, data, time_vals=[1.0])
-   print 'ok: wrote variable data'
-
-   # Close CMOR.
-   cmor.close()
+#-------------------------------------------------------------------------
+
+
+def setup_cmor():
+    #-------------------------------------------------------------------------
+    # Initialise CMOR library
+    cmor.setup(inpath=MIP_TABLE_DIR, netcdf_file_action=cmor.CMOR_REPLACE_3,
+               set_verbosity=cmor.CMOR_NORMAL, create_subdirectories=0)
+
+    # Create CMOR dataset
+    cmor.dataset_json("Test/common_user_input.json")
+
+
+#-------------------------------------------------------------------------
+if __name__ == '__main__':
+    #-------------------------------------------------------------------------
+
+    # Initialise CMOR dataset and table
+    setup_cmor()
+
+    # Set dummy site lats and longs.
+    site_lats = numpy.array([-90.0, 0.0, 90.0], dtype=numpy.float32)
+    site_lons = numpy.array([0.0, 0.0, 0.0], dtype=numpy.float32)
+
+    # Create CMOR axes and grids
+    table_id = cmor.load_table('CMIP6_CFsubhr.json')
+    # , length=1, interval='30 minutes')
+    taxis_id = cmor.axis('time1', units='days since 2000-01-01 00:00:00')
+    print 'ok: created time axis'
+
+    saxis_id = cmor.axis('site', units='1', coord_vals=[1, 2, 3])
+    print 'ok: created site axis', saxis_id
+
+    zaxis_id = cmor.axis(
+        'hybrid_height',
+        units='m',
+        coord_vals=[1.0],
+        cell_bounds=[
+            0.0,
+            2.0])
+    print 'ok: created height axis', zaxis_id
+
+    # Create zfactors for b and orog for hybrid height axis.
+    # Where do these get used, if anywhere?
+    bfact_id = cmor.zfactor(zaxis_id, 'b', '1', [zaxis_id], 'd', zfactor_values=[1.0],
+                            zfactor_bounds=[0.0, 2.0])
+    print 'ok: created b zfactors'
+
+    # Create grid object to link site-dimensioned variables to (lat,long).
+    # Need to make CMIP6_grids the current MIP table for this to work.
+    table_id = cmor.load_table('CMIP6_grids.json')
+    gaxis_id = cmor.grid([saxis_id], site_lats, site_lons)
+    print 'ok: created site grid'
+
+    # Create CMOR variable for cloud area fraction: MIP name = 'cl', STASH =
+    # m01s02i261*100
+    table_id = cmor.load_table('CMIP6_CFsubhr.json')
+    var_id = cmor.variable('cl', '%', [taxis_id, gaxis_id, zaxis_id], type='f',
+                           missing_value=-99.0, original_name='STASH m01s02i261*100')
+    print 'ok: created variable for "cl"'
+
+    ofact_id = cmor.zfactor(zaxis_id, 'orog', 'm', [gaxis_id], 'd',
+                            zfactor_values=[123.0])
+    print 'ok: created orog zfactors'
+    # Write some data to this variable. First convert raw data to numpy arrays.
+    shape = (1, 3, 1)
+    data = numpy.array([10, 20, 30], dtype=numpy.float32)
+    data = data.reshape(shape)
+    cmor.write(var_id, data, time_vals=[1.0])
+    print 'ok: wrote variable data'
+
+    # Close CMOR.
+    cmor.close()
diff --git a/Test/test_python_clim_bounds.py b/Test/test_python_clim_bounds.py
index 19cba4c..01f60a2 100644
--- a/Test/test_python_clim_bounds.py
+++ b/Test/test_python_clim_bounds.py
@@ -2,58 +2,62 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='/git/cmip5-cmor-tables/Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
+               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',
-                 parent_experiment_rip = 'N/A',
-                 branch_time = 0,
-                 contact = 'brian clough')
- 
+                 institute_id='ukmo',
+                 model_id='HadCM3',
+                 history='some global history',
+                 forcing='N/A',
+                 parent_experiment_id='N/A',
+                 parent_experiment_rip='N/A',
+                 branch_time=0,
+                 contact='brian clough')
+
     table = 'CMIP5_Oclim'
     cmor.load_table(table)
-    axes = [ {'table_entry': 'time2',
-              'units': 'days since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'depth_coord',
-              'units': 'm',
-              'coord_vals': [ 500,1000.],
-              'cell_bounds': [ 0.,750.,1200.]},
-             {'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]},
-             ]
+    axes = [{'table_entry': 'time2',
+             'units': 'days since 2000-01-01 00:00:00',
+             },
+            {'table_entry': 'depth_coord',
+             'units': 'm',
+             'coord_vals': [500, 1000.],
+             'cell_bounds': [0., 750., 1200.]},
+            {'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:
-        print 'doing:',axis
+        print 'doing:', axis
         axis_id = cmor.axis(**axis)
         axis_ids.append(axis_id)
 
     for var, units, value in (('tnpeot', 'W m-2', 274),):
-        values = numpy.array([value,]*len(axes[1]['coord_vals']), numpy.float32)
+        values = numpy.array([value, ] *
+                             len(axes[1]['coord_vals']), numpy.float32)
         varid = cmor.variable(var,
                               units,
                               axis_ids,
-                              history = 'variable history',
-                              missing_value = -99
+                              history='variable history',
+                              missing_value=-99
                               )
         for i in range(12):
-            cmor.write(varid, values, time_vals = [30*i+15], time_bnds = [ [30*i,360+30*(i+1)] ])
+            cmor.write(varid, values, time_vals=[
+                       30 * i + 15], time_bnds=[[30 * i, 360 + 30 * (i + 1)]])
 
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_clim_bounds_02.py b/Test/test_python_clim_bounds_02.py
index 228cb37..98a7703 100644
--- a/Test/test_python_clim_bounds_02.py
+++ b/Test/test_python_clim_bounds_02.py
@@ -2,71 +2,74 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='/git/cmip5-cmor-tables/Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
+               netcdf_file_action=cmor.CMOR_REPLACE_3)
     cmor.dataset('pre-industrial control', 'ukmo', 'HadCM3', 'noleap',
-                 institute_id = 'ukmo',
-                 model_id = 'HadCM3',
-                 history = 'some global history',
-                 forcing = 'N/A',
-                 parent_experiment_id = 'N/A',
-                 parent_experiment_rip = 'N/A',
-                 branch_time = 0,
-                 contact = 'brian clough')
- 
+                 institute_id='ukmo',
+                 model_id='HadCM3',
+                 history='some global history',
+                 forcing='N/A',
+                 parent_experiment_id='N/A',
+                 parent_experiment_rip='N/A',
+                 branch_time=0,
+                 contact='brian clough')
+
     table = 'CMIP5_Oclim'
     cmor.load_table(table)
-    axes = [ {'table_entry': 'time2',
-              'units': 'days since 1861',
-              'coord_vals': [48925.5, 48955, 48984.5, 49015, 49045.5, 49076, 49106.5, 49137.5, 49168, 49198.5, 49229, 49259.5 ],
-              'cell_bounds': [ [ 45625, 52591],
-                               [ 45656, 52619,],
-                               [ 45684, 52650,],
-                               [ 45715, 52680,],
-                               [ 45745, 52711,],
-                               [45776, 52741,],
-                               [45806, 52772,],
-                               [45837, 52803,],
-                               [45868, 52833,],
-                               [45898, 52864,],
-                               [45929, 52894,],
-                               [45959, 52925]],
-              },
-             {'table_entry': 'depth_coord',
-              'units': 'm',
-              'coord_vals': [ 500,1000.],
-              'cell_bounds': [ 0.,750.,1200.]},
-             {'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]},
-             ]
+    axes = [{'table_entry': 'time2',
+             'units': 'days since 1861',
+             'coord_vals': [48925.5, 48955, 48984.5, 49015, 49045.5, 49076, 49106.5, 49137.5, 49168, 49198.5, 49229, 49259.5],
+             'cell_bounds': [[45625, 52591],
+                             [45656, 52619, ],
+                             [45684, 52650, ],
+                             [45715, 52680, ],
+                             [45745, 52711, ],
+                             [45776, 52741, ],
+                             [45806, 52772, ],
+                             [45837, 52803, ],
+                             [45868, 52833, ],
+                             [45898, 52864, ],
+                             [45929, 52894, ],
+                             [45959, 52925]],
+             },
+            {'table_entry': 'depth_coord',
+             'units': 'm',
+             'coord_vals': [500, 1000.],
+             'cell_bounds': [0., 750., 1200.]},
+            {'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:
-        print 'doing:',axis
+        print 'doing:', axis
         axis_id = cmor.axis(**axis)
         axis_ids.append(axis_id)
 
     for var, units, value in (('tnpeot', 'W m-2', 274),):
-        values = numpy.array([value,]*len(axes[1]['coord_vals']), numpy.float32)
+        values = numpy.array([value, ] *
+                             len(axes[1]['coord_vals']), numpy.float32)
         varid = cmor.variable(var,
                               units,
                               axis_ids,
-                              history = 'variable history',
-                              missing_value = -99
+                              history='variable history',
+                              missing_value=-99
                               )
         for i in range(12):
             cmor.write(varid, values, ntimes_passed=1)
 
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_clim_bounds_03.py b/Test/test_python_clim_bounds_03.py
index d62f335..d48aa1b 100644
--- a/Test/test_python_clim_bounds_03.py
+++ b/Test/test_python_clim_bounds_03.py
@@ -2,72 +2,77 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='/git/cmip5-cmor-tables/Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
+               netcdf_file_action=cmor.CMOR_REPLACE_3)
     cmor.dataset('pre-industrial control', 'ukmo', 'HadCM3', 'noleap',
-                 institute_id = 'ukmo',
-                 model_id = 'HadCM3',
-                 history = 'some global history',
-                 forcing = 'N/A',
-                 parent_experiment_id = 'N/A',
-                 parent_experiment_rip = 'N/A',
-                 branch_time = 0,
-                 contact = 'brian clough')
- 
+                 institute_id='ukmo',
+                 model_id='HadCM3',
+                 history='some global history',
+                 forcing='N/A',
+                 parent_experiment_id='N/A',
+                 parent_experiment_rip='N/A',
+                 branch_time=0,
+                 contact='brian clough')
+
     table = 'CMIP5_Oclim'
     cmor.load_table(table)
-    axes = [ {'table_entry': 'time2',
-              'units': 'days since 1861',
-              'coord_vals': [48925.5, 48955, 48984.5, 49015, 49045.5, 49076, 49106.5, 49137.5, 49168, 49198.5, 49229, 49259.5 ],
-              'cell_bounds': [ [ 45625, 52591],
-                               [ 45656, 52619,],
-                               [ 45684, 52650,],
-                               [ 45715, 52680,],
-                               [ 45745, 52711,],
-                               [45776, 52741,],
-                               [45806, 52772,],
-                               [45837, 52803,],
-                               [45868, 52833,],
-                               [45898, 52864,],
-                               [45929, 52894,],
-                               [45959, 52925]],
-              },
-             {'table_entry': 'depth_coord',
-              'units': 'm',
-              'coord_vals': [ 500,1000.],
-              'cell_bounds': [ 0.,750.,1200.]},
-             {'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]},
-             ]
+    axes = [{'table_entry': 'time2',
+             'units': 'days since 1861',
+             'coord_vals': [48925.5, 48955, 48984.5, 49015, 49045.5, 49076, 49106.5, 49137.5, 49168, 49198.5, 49229, 49259.5],
+             'cell_bounds': [[45625, 52591],
+                             [45656, 52619, ],
+                             [45684, 52650, ],
+                             [45715, 52680, ],
+                             [45745, 52711, ],
+                             [45776, 52741, ],
+                             [45806, 52772, ],
+                             [45837, 52803, ],
+                             [45868, 52833, ],
+                             [45898, 52864, ],
+                             [45929, 52894, ],
+                             [45959, 52925]],
+             },
+            {'table_entry': 'depth_coord',
+             'units': 'm',
+             'coord_vals': [500, 1000.],
+             'cell_bounds': [0., 750., 1200.]},
+            {'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:
-        print 'doing:',axis
+        print 'doing:', axis
         axis_id = cmor.axis(**axis)
         axis_ids.append(axis_id)
 
     for var, units, value in (('tnpeot', 'W m-2', 274),):
-        values = numpy.ones((len(axes[0]['coord_vals']),len(axes[1]['coord_vals'])))*value
+        values = numpy.ones(
+            (len(
+                axes[0]['coord_vals']), len(
+                axes[1]['coord_vals']))) * value
         varid = cmor.variable(var,
                               units,
                               axis_ids,
-                              history = 'variable history',
-                              missing_value = -99
+                              history='variable history',
+                              missing_value=-99
                               )
         print values.shape
-        
-        cmor.write(varid, values)#, ntimes_passed=1)
+
+        cmor.write(varid, values)  # , ntimes_passed=1)
 
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_clim_bounds_04.py b/Test/test_python_clim_bounds_04.py
index 5049db6..5502b00 100644
--- a/Test/test_python_clim_bounds_04.py
+++ b/Test/test_python_clim_bounds_04.py
@@ -2,71 +2,78 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='/git/cmip5-cmor-tables/Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
+               netcdf_file_action=cmor.CMOR_REPLACE_3)
     cmor.dataset('pre-industrial control', 'ukmo', 'HadCM3', 'noleap',
-                 institute_id = 'ukmo',
-                 model_id = 'HadCM3',
-                 history = 'some global history',
-                 forcing = 'N/A',
-                 parent_experiment_id = 'N/A',
-                 parent_experiment_rip = 'N/A',
-                 branch_time = 0,
-                 contact = 'brian clough')
- 
+                 institute_id='ukmo',
+                 model_id='HadCM3',
+                 history='some global history',
+                 forcing='N/A',
+                 parent_experiment_id='N/A',
+                 parent_experiment_rip='N/A',
+                 branch_time=0,
+                 contact='brian clough')
+
     table = 'CMIP5_Oclim'
     cmor.load_table(table)
-    axes = [ {'table_entry': 'time2',
-              'units': 'days since 1861',
-              },
-             {'table_entry': 'depth_coord',
-              'units': 'm',
-              'coord_vals': [ 500,1000.],
-              'cell_bounds': [ 0.,750.,1200.]},
-             {'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]},
-             ]
+    axes = [{'table_entry': 'time2',
+             'units': 'days since 1861',
+             },
+            {'table_entry': 'depth_coord',
+             'units': 'm',
+             'coord_vals': [500, 1000.],
+             'cell_bounds': [0., 750., 1200.]},
+            {'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]},
+            ]
 
-    axes2={'coord_vals': [48925.5, 48955, 48984.5, 49015, 49045.5, 49076, 49106.5, 49137.5, 49168, 49198.5, 49229, 49259.5 ],
-              'cell_bounds': [ [ 45625, 52591],
-                               [ 45656, 52619,],
-                               [ 45684, 52650,],
-                               [ 45715, 52680,],
-                               [ 45745, 52711,],
-                               [45776, 52741,],
-                               [45806, 52772,],
-                               [45837, 52803,],
-                               [45868, 52833,],
-                               [45898, 52864,],
-                               [45929, 52894,],
-                               [45959, 52925]],}
+    axes2 = {'coord_vals': [48925.5, 48955, 48984.5, 49015, 49045.5, 49076, 49106.5, 49137.5, 49168, 49198.5, 49229, 49259.5],
+             'cell_bounds': [[45625, 52591],
+                             [45656, 52619, ],
+                             [45684, 52650, ],
+                             [45715, 52680, ],
+                             [45745, 52711, ],
+                             [45776, 52741, ],
+                             [45806, 52772, ],
+                             [45837, 52803, ],
+                             [45868, 52833, ],
+                             [45898, 52864, ],
+                             [45929, 52894, ],
+                             [45959, 52925]], }
     axis_ids = list()
     for axis in axes:
-        print 'doing:',axis
+        print 'doing:', axis
         axis_id = cmor.axis(**axis)
         axis_ids.append(axis_id)
 
     for var, units, value in (('tnpeot', 'W m-2', 274),):
-        values = numpy.array([value,]*len(axes[1]['coord_vals']), numpy.float32)
+        values = numpy.array([value, ] *
+                             len(axes[1]['coord_vals']), numpy.float32)
         varid = cmor.variable(var,
                               units,
                               axis_ids,
-                              history = 'variable history',
-                              missing_value = -99
+                              history='variable history',
+                              missing_value=-99
                               )
         for i in range(12):
-            cmor.write(varid, values, time_vals=axes2["coord_vals"][i],time_bnds=axes2["cell_bounds"][i])
+            cmor.write(
+                varid,
+                values,
+                time_vals=axes2["coord_vals"][i],
+                time_bnds=axes2["cell_bounds"][i])
 
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_common.py b/Test/test_python_common.py
index 2162412..280f0db 100644
--- a/Test/test_python_common.py
+++ b/Test/test_python_common.py
@@ -1,75 +1,76 @@
 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=19
-varin3d=["CLOUD", "U", "T" ];
-  
+ntimes = 2
+lon = 4
+lat = 3
+lev = 5
+lev2 = 19
+varin3d = ["CLOUD", "U", "T"]
+
 #  /* Units appropriate to my data */
-units3d=["%", "m s-1", "K"];
-  
+units3d = ["%", "m s-1", "K"]
+
 #  /* Corresponding IPCC Table A1c entry (variable name)  */
-entry3d=["cl","ua","ta"];
+entry3d = ["cl", "ua", "ta"]
 
 #  /* My variable names for IPCC Table A1a fields */
-varin2d=[ "LATENT","TSURF","SOIL_WET","PSURF" ];
-  
+varin2d = ["LATENT", "TSURF", "SOIL_WET", "PSURF"]
+
 #  /* Units appropriate to my data */
-units2d=[ "W m-2","K","kg m-2","Pa"];
-  
-positive2d=["down"," ", " ", " "];
-  
+units2d = ["W m-2", "K", "kg m-2", "Pa"]
+
+positive2d = ["down", " ", " ", " "]
+
 #  /* Corresponding IPCC Table A1a entry (variable name)  */
-entry2d=["hfls", "tas","mrsos","ps"];
+entry2d = ["hfls", "tas", "mrsos", "ps"]
 
 
-def gen_irreg_grid(lon,lat):
+def gen_irreg_grid(lon, lat):
     lon0 = 280.
-    lat0=0.;
-    delta_lon = 10.;
-    delta_lat = 10.;
+    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
+    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):
+
+
+def read_coords(lon, lat, lev):
     alons = numpy.zeros(lon)
-    bnds_lon = numpy.zeros(2*lon)
+    bnds_lon = numpy.zeros(2 * lon)
     alats = numpy.zeros(lat)
-    bnds_lat = numpy.zeros(2*lat)
-    plevs = numpy.zeros(lev,dtype='i')
+    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
-        
+        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.
-        
+        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.,
@@ -77,76 +78,80 @@ def read_coords(lon,lat,lev):
 
     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_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)
 
-    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
+
+    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.25;
-        offset = 100.;
+    if varname == "LATENT":
+        factor = 1.25
+        offset = 100.
     elif varname == "TSURF":
-        factor = 2.0;
-        offset = -230.;
-    elif varname=="SOIL_WET":
-        factor = 10.;
-        offset = 0.;
+        factor = 2.0
+        offset = -230.
+    elif varname == "SOIL_WET":
+        factor = 10.
+        offset = 0.
     elif varname == "PSURF":
-        factor = 1.;
-        offset = -9.7e2;
+        factor = 1.
+        offset = -9.7e2
 
-    field = numpy.zeros((n0,n1),dtype='d')
+    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;
+            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)
+alats, alons, plevs, bnds_lat, bnds_lon = read_coords(lon, lat, lev)
 
-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;
+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)
 
-zlev_bnds    = numpy.zeros(6,dtype='d')
+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
@@ -154,11 +159,14 @@ 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.])
-
+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
index fd6253a..d8f1f25 100644
--- a/Test/test_python_direct_calls.py
+++ b/Test/test_python_direct_calls.py
@@ -1,91 +1,166 @@
-from test_python_common import * # common subroutines
+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':
+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);
+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.dataset_json("Test/common_user_input.json")
-#cmor.dataset_json("Test/common_user_input.json")
+# cmor.dataset_json("Test/common_user_input.json")
 
-tables=[]
+tables = []
 a = cmor._cmor.load_table("Tables/CMIP6_Omon.json")
 tables.append(a)
 tables.append(cmor._cmor.load_table("Tables/CMIP6_Amon.json"))
-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="plev19"
-units="Pa"
+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 = "plev19"
+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)
+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)
+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];
+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")
+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,"down",varin3d[2],"no history","no future")
+myvars[1] = cmor._cmor.variable(
+    entry3d[2],
+    units3d[2],
+    4,
+    myaxes2,
+    'd',
+    None,
+    dtmp2,
+    "down",
+    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,"down",varin3d[0],"no history","no future")
+myaxes2[1] = myaxes[4]
+myvars[2] = cmor._cmor.variable(
+    entry3d[0],
+    units3d[0],
+    4,
+    myaxes2,
+    'd',
+    None,
+    dtmp2,
+    "down",
+    varin3d[0],
+    "no history",
+    "no future")
 
 print 'vars 2'
 
-print 'zfact',type(numpy.array(myaxes2[1])),type(myaxes2)
+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)
+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)
+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 */
@@ -94,14 +169,32 @@ 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")
+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)
+    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_free_wrapping_issue.py b/Test/test_python_free_wrapping_issue.py
index 256889f..839945d 100644
--- a/Test/test_python_free_wrapping_issue.py
+++ b/Test/test_python_free_wrapping_issue.py
@@ -6,52 +6,53 @@ import numpy as np
 import datetime
 import cmor
 
-def save(opts,threeD=True):
 
-    cmor.setup(inpath=opts['table_path'], 
-            netcdf_file_action=cmor.CMOR_REPLACE_3, 
-            set_verbosity=cmor.CMOR_NORMAL, 
-            exit_control=cmor.CMOR_NORMAL,
-            logfile=None, create_subdirectories=1)
+def save(opts, threeD=True):
+
+    cmor.setup(inpath=opts['table_path'],
+               netcdf_file_action=cmor.CMOR_REPLACE_3,
+               set_verbosity=cmor.CMOR_NORMAL,
+               exit_control=cmor.CMOR_NORMAL,
+               logfile=None, create_subdirectories=1)
 
     cmor.dataset_json("Test/common_user_input.json")
 
     # Load the CMIP tables into memory.
-    tables=[]
+    tables = []
     tables.append(cmor.load_table('CMIP6_grids.json'))
     tables.append(cmor.load_table(opts['cmip_table']))
 
     # Create the dimension axes
 
     # Monthly time axis
-    min_tvals=[]
-    max_tvals=[]
-    cmor_tName='time'
-    tvals=[]
-    axis_ids=[]
-    for year in range(1850,1851):
-        for mon in range(1,13):
-            tvals.append(datetime.date(year,mon,15).toordinal()-1)
+    min_tvals = []
+    max_tvals = []
+    cmor_tName = 'time'
+    tvals = []
+    axis_ids = []
+    for year in range(1850, 1851):
+        for mon in range(1, 13):
+            tvals.append(datetime.date(year, mon, 15).toordinal() - 1)
     # set up time values and bounds
-    for i,ordinaldate in enumerate(tvals):
-        model_date  = datetime.date.fromordinal(int(ordinaldate)+1)
-        #min bound is first day of month
-        model_date=model_date.replace(day=1)
-        min_tvals.append(model_date.toordinal()-1)
-        #max_bound is first day of next month
-        tyr=model_date.year+model_date.month/12
-        tmon=model_date.month%12+1                              
-        model_date=model_date.replace(year=tyr,month=tmon)
-        max_tvals.append(model_date.toordinal()-1)
-        #correct date to middle of month
-        mid=(max_tvals[i]-min_tvals[i])/2.
-        tvals[i]=min_tvals[i]+mid
+    for i, ordinaldate in enumerate(tvals):
+        model_date = datetime.date.fromordinal(int(ordinaldate) + 1)
+        # min bound is first day of month
+        model_date = model_date.replace(day=1)
+        min_tvals.append(model_date.toordinal() - 1)
+        # max_bound is first day of next month
+        tyr = model_date.year + model_date.month / 12
+        tmon = model_date.month % 12 + 1
+        model_date = model_date.replace(year=tyr, month=tmon)
+        max_tvals.append(model_date.toordinal() - 1)
+        # correct date to middle of month
+        mid = (max_tvals[i] - min_tvals[i]) / 2.
+        tvals[i] = min_tvals[i] + mid
     tval_bounds = np.column_stack((min_tvals, max_tvals))
     cmor.set_table(tables[1])
     time_axis_id = cmor.axis(table_entry=cmor_tName,
-        units='days since 0001-01-01', length=len(tvals),
-        coord_vals=tvals[:], cell_bounds=tval_bounds[:],
-        interval=None)
+                             units='days since 0001-01-01', length=len(tvals),
+                             coord_vals=tvals[:], cell_bounds=tval_bounds[:],
+                             interval=None)
     axis_ids.append(time_axis_id)
 
     if not threeD:
@@ -80,28 +81,28 @@ def save(opts,threeD=True):
             [750, 300],
             [300, 0]])
         plev_axis_id = cmor.axis(table_entry='plev19',
-                units='Pa', length=len(plev),
-                coord_vals=plev[:], cell_bounds=plev_bounds[:],
-                interval=None)
+                                 units='Pa', length=len(plev),
+                                 coord_vals=plev[:], cell_bounds=plev_bounds[:],
+                                 interval=None)
         axis_ids.append(plev_axis_id)
 
     # 1 degree resolution latitude and longitude
-    lat = np.linspace(-89.5,89.5,180)
-    lat_bounds = np.column_stack((np.linspace(-90.,89.,180.),
-                                  np.linspace(-89.,90.,180.)))
+    lat = np.linspace(-89.5, 89.5, 180)
+    lat_bounds = np.column_stack((np.linspace(-90., 89., 180.),
+                                  np.linspace(-89., 90., 180.)))
     lat_axis_id = cmor.axis(table_entry='latitude',
-        units='degrees_north', length=len(lat),
-        coord_vals=lat[:], cell_bounds=lat_bounds[:],
-        interval=None)
+                            units='degrees_north', length=len(lat),
+                            coord_vals=lat[:], cell_bounds=lat_bounds[:],
+                            interval=None)
     axis_ids.append(lat_axis_id)
 
-    lon = np.linspace(0.5,359.5,360)
-    lon_bounds = np.column_stack((np.linspace(0.,359.,360.),
-                                  np.linspace(1.,360.,360.)))
+    lon = np.linspace(0.5, 359.5, 360)
+    lon_bounds = np.column_stack((np.linspace(0., 359., 360.),
+                                  np.linspace(1., 360., 360.)))
     lon_axis_id = cmor.axis(table_entry='longitude',
-        units='degrees_north', length=len(lon),
-        coord_vals=lon[:], cell_bounds=lon_bounds[:],
-        interval=None)
+                            units='degrees_north', length=len(lon),
+                            coord_vals=lon[:], cell_bounds=lon_bounds[:],
+                            interval=None)
     axis_ids.append(lon_axis_id)
 
     #
@@ -110,37 +111,45 @@ def save(opts,threeD=True):
     cmor.set_table(tables[1])
     in_missing = float(1.e20)
     if threeD:
-        variable_id = cmor.variable(table_entry='ts', units='K', \
-            axis_ids=axis_ids, type='f', missing_value=in_missing)
+        variable_id = cmor.variable(table_entry='ts', units='K',
+                                    axis_ids=axis_ids, type='f', missing_value=in_missing)
     else:
-        variable_id = cmor.variable(table_entry='ta', units='K', \
-            axis_ids=axis_ids, type='f', missing_value=in_missing)
+        variable_id = cmor.variable(table_entry='ta', units='K',
+                                    axis_ids=axis_ids, type='f', missing_value=in_missing)
 
     #
-    # Write the data 
+    # Write the data
     #
     if threeD:
-        data_vals = np.zeros((len(tvals), len(lat), len(lon)), np.float32) + 290.
+        data_vals = np.zeros(
+            (len(tvals), len(lat), len(lon)), np.float32) + 290.
     else:
-        data_vals = np.zeros((len(tvals), len(plev), len(lat), len(lon)), np.float32) + 290.
+        data_vals = np.zeros(
+            (len(tvals),
+             len(plev),
+                len(lat),
+                len(lon)),
+            np.float32) + 290.
     try:
         print 'writing...'
-        cmor.write(variable_id, data_vals[:], ntimes_passed=np.shape(data_vals)[0]) #assuming time is the first dimension
-    except Exception, e:
+        cmor.write(variable_id, data_vals[:], ntimes_passed=np.shape(
+            data_vals)[0])  # assuming time is the first dimension
+    except Exception as e:
         raise Exception("ERROR writing data!")
 
     try:
         path = cmor.close(variable_id, file_name=True)
-    except:
+    except BaseException:
         raise Exception("ERROR closing cmor file!")
 
     print path
 
+
 if __name__ == "__main__":
 
-    opts={'cmip_table': 'CMIP6_Amon.json',
-          'outpath': 'Test',
-          'table_path': 'Tables'}
+    opts = {'cmip_table': 'CMIP6_Amon.json',
+            'outpath': 'Test',
+            'table_path': 'Tables'}
 
-    save(opts,threeD=True)
-    save(opts,threeD=False)
+    save(opts, threeD=True)
+    save(opts, threeD=False)
diff --git a/Test/test_python_grid_and_ocn_sigma.py b/Test/test_python_grid_and_ocn_sigma.py
index 38bc99a..1517137 100644
--- a/Test/test_python_grid_and_ocn_sigma.py
+++ b/Test/test_python_grid_and_ocn_sigma.py
@@ -1,136 +1,163 @@
 
-import cmor,numpy
+import cmor
+import numpy
 import os
-ntimes=2
-lon=300
-lat=100
-lev=5
+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_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)
 
-    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):
+def gen_irreg_grid(lon, lat):
     lon0 = 5.
-    lat0=-17.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
-
-
-
-
-myaxes=numpy.zeros(9,dtype='i')
-myaxes2=numpy.zeros(9,dtype='i')
-myvars=numpy.zeros(9,dtype='i')
-
-
-cmor.setup(inpath="Tables",set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
+    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
+
+
+myaxes = numpy.zeros(9, dtype='i')
+myaxes2 = numpy.zeros(9, dtype='i')
+myvars = numpy.zeros(9, dtype='i')
+
+
+cmor.setup(
+    inpath="Tables",
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
 cmor.dataset_json("Test/common_user_input.json")
 
-tables=[]
+tables = []
 a = cmor.load_table("CMIP6_grids.json")
 tables.append(a)
 tables.append(cmor.load_table("CMIP6_Omon.json"))
-print 'Tables ids:',tables
+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
+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" ]
+# 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],
+# cmor.set_grid_mapping(grid_id=myaxes[2],
 ##                       mapping_name = mapnm,
 ##                       parameter_names = params,
 ##                       parameter_values = pvalues,
-##                       parameter_units = punits)
+# parameter_units = punits)
 
 cmor.set_table(tables[1])
-myaxes[3] = cmor.axis(table_entry = 'time',
-                      units = 'months since 1980')
+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.)
+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)
+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]]
+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)
+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))*40.+273.15
-    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])
+    data3d = numpy.random.random((lev, lon, lat, ntimes)) * 40. + 273.15
+    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
index 9466d9a..9b0f112 100644
--- a/Test/test_python_index_coord.py
+++ b/Test/test_python_index_coord.py
@@ -1,44 +1,66 @@
-import cmor,numpy
+import cmor
+import numpy
 
-ipth="Test"
+ipth = "Test"
 cmor.setup(inpath=ipth,
            set_verbosity=cmor.CMOR_NORMAL,
-           netcdf_file_action = cmor.CMOR_REPLACE,
-           logfile = None)
+           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")
+    outpath=ipth,
+    experiment_id="lgm",
+    institution="PCMDI",
+    source="PCMDI",
+    calendar="standard",
+    model_id="pcmdi-09a", forcing="forcing")
 
 cmor.load_table("Tables/CMIP6_Omon.json")
 
 nlat = 90
-dlat = 180/nlat
+dlat = 180 / nlat
 nlon = 180
-dlon = 360./nlon
+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)
+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.
+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")
+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')
+iv = cmor.variable(
+    table_entry='thetao', axis_ids=numpy.array(
+        (itim, ilat, ilev, ilon)), units='K')
 
-cmor.write(iv,data)
+cmor.write(iv, data)
 
-f1 = cmor.close(iv,file_name=True)
+f1 = cmor.close(iv, file_name=True)
 print f1
diff --git a/Test/test_python_jamie.py b/Test/test_python_jamie.py
index 5a0de25..614494a 100644
--- a/Test/test_python_jamie.py
+++ b/Test/test_python_jamie.py
@@ -1,36 +1,38 @@
 import cmor
 
+
 def path_test():
-    cmor.setup(inpath='Tables',netcdf_file_action=cmor.CMOR_REPLACE)
+    cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
 
     cmor.dataset_json("Test/common_user_input.json")
-    
-    table='CMIP6_Amon.json'
+
+    table = 'CMIP6_Amon.json'
     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]},
-             ]
-              
+    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, [275])
-    path=cmor.close(varid, file_name=True)
+    path = cmor.close(varid, file_name=True)
 
     print path
 
+
 if __name__ == '__main__':
     path_test()
diff --git a/Test/test_python_jamie_10.py b/Test/test_python_jamie_10.py
index 5823cda..91f1ce8 100644
--- a/Test/test_python_jamie_10.py
+++ b/Test/test_python_jamie_10.py
@@ -2,50 +2,52 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_4)
+               netcdf_file_action=cmor.CMOR_REPLACE_4)
     cmor.dataset_json("Test/common_user_input.json")
- 
+
     table = 'CMIP6_Amon.json'
     cmor.load_table(table)
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'plev19',
-              'units': 'Pa',
-              'coord_vals': [100000., 92500., 85000., 70000., 60000., 50000., 40000., 30000., 25000., 20000., 15000., 10000., 7000., 5000., 3000., 2000., 1000., 500., 100.]},
-             {'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]},
-             ]
-
+    axes = [{'table_entry': 'time',
+             'units': 'days since 2000-01-01 00:00:00',
+             },
+            {'table_entry': 'plev19',
+             'units': 'Pa',
+             'coord_vals': [100000., 92500., 85000., 70000., 60000., 50000., 40000., 30000., 25000., 20000., 15000., 10000., 7000., 5000., 3000., 2000., 1000., 500., 100.]},
+            {'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:
-        print 'doing:',axis
+        print 'doing:', axis
         axis_id = cmor.axis(**axis)
         axis_ids.append(axis_id)
 
     for var, units, value in (('ta', 'K', 274), ('ua', 'm s-1', 10)):
-        values = numpy.array([value,]*len(axes[1]['coord_vals']), numpy.float32)
+        values = numpy.array([value, ] *
+                             len(axes[1]['coord_vals']), numpy.float32)
         varid = cmor.variable(var,
                               units,
                               axis_ids,
-                              history = 'variable history',
-                              missing_value = -99
+                              history='variable history',
+                              missing_value=-99
                               )
         cmor.set_variable_attribute(varid, 'cell_measures', 'BLABLABLA')
-        cmor.write(varid, values, time_vals = [15], time_bnds = [ [0,30] ])
+        cmor.write(varid, values, time_vals=[15], time_bnds=[[0, 30]])
 
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_jamie_11.py b/Test/test_python_jamie_11.py
deleted file mode 100644
index f60c00d..0000000
--- a/Test/test_python_jamie_11.py
+++ /dev/null
@@ -1,156 +0,0 @@
-import cmor,numpy
-
-error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-  
-error_flag = cmor.dataset_json("Test/test_python_jamie_11.json")
-  
-
-# 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/CMIP6_aero.json")
-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=1
-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, ))
-zlev_bnds=numpy.array(( 0.,.2, ))
-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, ))
-    b_coeff = numpy.array(( 0.0, ))
-    
-##  a_coeff_bnds=(/0.,.15, .25, .25, .15, 0./)
-    a_coeff_bnds=numpy.array((0.,.3,))
-    b_coeff_bnds=numpy.array((0.,.05,))
-    
-## 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')
-
-print "ILEV is:",ilev
-
-var3d_ids = cmor.variable(    
-    table_entry='sconcoa',     
-    units='kg m-3',           
-    axis_ids=numpy.array((ilev, ilon, ilat, itim)),
-    missing_value=1.0e28, 
-    original_name='cocoa is good, but concoa is better')
-
-
-  
-for it in range(ntimes):
-
-    time = numpy.array((it))
-    bnds_time = numpy.array((it,it+1))
-    data3d = numpy.random.random((lev,360,180)).astype('f')*40.
-    
-    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_12.py b/Test/test_python_jamie_12.py
index 76d9903..35927ef 100644
--- a/Test/test_python_jamie_12.py
+++ b/Test/test_python_jamie_12.py
@@ -3,6 +3,7 @@
 import cmor
 import numpy
 
+
 def define_axes(axes):
     axis_ids = list()
     for axis in axes:
@@ -12,57 +13,59 @@ def define_axes(axes):
     print 'MY:cmor.axis calls complete'
     return axis_ids
 
+
 def define_write_var(axis_ids, entry, unit, values):
     varid = cmor.variable(entry,
                           unit,
                           axis_ids,
-                          missing_value = -99
+                          missing_value=-99
                           )
 
-
-
-    cmor.write(varid, values, time_vals = [15.0], time_bnds = [0., 30.0])
-    cmor.close(varid, preserve = True)
-    cmor.write(varid, values, time_vals = [45.0], time_bnds = [30., 60.0])
+    cmor.write(varid, values, time_vals=[15.0], time_bnds=[0., 30.0])
+    cmor.close(varid, preserve=True)
+    cmor.write(varid, values, time_vals=[45.0], time_bnds=[30., 60.0])
     cmor.close()
 
 
 def cmor_ini():
     cmor.setup(inpath='/git/cmip5-cmor-tables/Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE)
+               netcdf_file_action=cmor.CMOR_REPLACE)
     cmor.dataset_json("Test/common_user_input.json")
 
+
 def define_write_landcoverfrac():
     cmor.load_table('Tables/CMIP6_Lmon.json')
-    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]},
-             {'table_entry': 'vegtype',
-              'coord_vals': ['landcover'],
-              'units': '1',
-              },
-             ]
+    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]},
+            {'table_entry': 'vegtype',
+             'coord_vals': ['landcover'],
+             'units': '1',
+             },
+            ]
 
     axis_ids = define_axes(axes)
 
     values = numpy.array([2.], numpy.float32)
     values = numpy.reshape(values, (1, 1, 1, 1))
-             
+
     define_write_var(axis_ids, 'landCoverFrac', '1', values)
-    
+
+
 def main():
 
     cmor_ini()
     define_write_landcoverfrac()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_jamie_2.py b/Test/test_python_jamie_2.py
index f69ad08..e01d411 100644
--- a/Test/test_python_jamie_2.py
+++ b/Test/test_python_jamie_2.py
@@ -1,35 +1,36 @@
 import cmor
 
+
 def multi_call_test():
-    cmor.setup(inpath='Tables',netcdf_file_action=cmor.CMOR_REPLACE)
+    cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
 
     cmor.dataset_json("Test/common_user_input.json")
-    table='CMIP6_Amon.json'
+    table = 'CMIP6_Amon.json'
     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]},
-             ]
-              
+    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, [275], time_vals = [15], time_bnds = [ [0,30] ])
+    cmor.write(varid, [275], time_vals=[15], time_bnds=[[0, 30]])
     print 'First write worked as expected'
     try:
-        cmor.write(varid, [275], time_vals = [15], time_bnds = [ [0], [30] ])
-        raise Exception,"We shouldn't be getting in here"
-    except:
+        cmor.write(varid, [275], time_vals=[15], time_bnds=[[0], [30]])
+        raise Exception("We shouldn't be getting in here")
+    except BaseException:
         print 'Second write that should have failed did fail, good!'
         pass
     cmor.close(varid)
diff --git a/Test/test_python_jamie_3.py b/Test/test_python_jamie_3.py
index 92de6ac..5f60a31 100644
--- a/Test/test_python_jamie_3.py
+++ b/Test/test_python_jamie_3.py
@@ -2,27 +2,28 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     missing = -99.
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE)
+               netcdf_file_action=cmor.CMOR_REPLACE)
     cmor.dataset_json("Test/common_user_input.json")
 
     table = 'CMIP6_Amon.json'
     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]},
-             ]
+    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)
@@ -30,12 +31,13 @@ def main():
     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)
+    varid = cmor.variable('ts', 'K', axis_ids, missing_value=myma.fill_value)
 
-    cmor.write(varid, myma, time_vals = [15], time_bnds = [ [0,30] ])
+    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
index 762ab13..ef49c36 100644
--- a/Test/test_python_jamie_3hr.py
+++ b/Test/test_python_jamie_3hr.py
@@ -2,35 +2,36 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
+               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')
- 
+                 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
+    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)
@@ -39,13 +40,14 @@ def main():
     varid = cmor.variable('tas',
                           'K',
                           axis_ids,
-                          history = 'variable history',
-                          missing_value = -99,
+                          history='variable history',
+                          missing_value=-99,
                           )
-    cmor.write(varid, values, time_vals = [0.], time_bnds = [ [0,3.] ])
+    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
index 5b3222a..589ddff 100644
--- a/Test/test_python_jamie_4.py
+++ b/Test/test_python_jamie_4.py
@@ -2,43 +2,45 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE)
+               netcdf_file_action=cmor.CMOR_REPLACE)
     cmor.dataset_json("Test/common_user_input.json")
 
     table = 'CMIP6_Amon.json'
     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]},
-             ]
+    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)
 
-    for var, units, val in (('ts', 'K',278),  ('ps', 'hPa',974.2)):
+    for var, units, val in (('ts', 'K', 278), ('ps', 'hPa', 974.2)):
         varid = cmor.variable(var,
                               units,
                               axis_ids,
                               )
 
         values = numpy.array([val], numpy.float32)
-        cmor.write(varid, values, time_vals = [15], time_bnds = [ [0,30] ])
+        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
index 14bb4f3..75f83fb 100644
--- a/Test/test_python_jamie_6.py
+++ b/Test/test_python_jamie_6.py
@@ -1,155 +1,154 @@
-import cmor,numpy
+import cmor
+import numpy
 
 error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-  
+
 error_flag = cmor.dataset_json("Test/common_user_input.json")
-  
+
 
 # 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)
+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/CMIP6_Amon.json")
-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,                
+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'
+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',       
+    ilev = cmor.axis(
+        table_entry='hybrid_height',
+        # table_entry='standard_sigma',
+        # table_entry='standard_hybrid_sigma',
         units='m',
-        length=lev,                   
-        coord_vals=zlevs,             
+        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,                        
+# 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, )),
+        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)
+# 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',       
+    ilev = cmor.axis(
+        table_entry='standard_sigma',
         units='1',
-        length=lev,                   
-        coord_vals=zlevs,             
+        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 )),
+    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='%',           
+var3d_ids = cmor.variable(
+    table_entry='cl',
+    units='%',
     axis_ids=numpy.array((ilev, ilon, ilat, itim)),
-    missing_value=1.0e28, 
+    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')*40.
-    
-    error_flag = cmor.write(                                  
-        var_id        = var3d_ids,                        
-        data          = data3d,                              
-        ntimes_passed = 1,                                   
-        time_vals     = time,                                
-        time_bnds     = bnds_time   )
-
-  
-error_flag = cmor.close()  
+    bnds_time = numpy.array((it, it + 1))
+    data3d = numpy.random.random((5, 360, 180)).astype('f') * 40.
+
+    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
index 8b2f32f..9ee2afc 100644
--- a/Test/test_python_jamie_7.py
+++ b/Test/test_python_jamie_7.py
@@ -1,73 +1,72 @@
-import cmor,numpy
+import cmor
+import numpy
 
 error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-  
+
 error_flag = cmor.dataset_json("Test/common_user_input.json")
-  
+
 
 # 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)
+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/CMIP6_Amon.json")
-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
+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, 500, 100])
+                     20000, 15000, 10000, 7000, 5000, 3000, 2000, 1000, 999, 998, 997, 996,
+                     995, 994, 500, 100])
 
 
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2030-1-1',  
-    length=ntimes,                
+itim = cmor.axis(
+    table_entry='time',
+    units='months since 2030-1-1',
+    length=ntimes,
     interval='1 month')
 
-ilev = cmor.axis(  
-        table_entry='plev19',       
-        units='Pa',
-        coord_vals=plevs,             
-        cell_bounds=None)
-    
+ilev = cmor.axis(
+    table_entry='plev19',
+    units='Pa',
+    coord_vals=plevs,
+    cell_bounds=None)
+
 
-var3d_ids = cmor.variable(    
-    table_entry='ta',     
-    units='K',           
+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], 
+    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.
+    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.write(
+        var_id=var3d_ids,
+        data=data3d,
+        ntimes_passed=1,
+        time_vals=time,
+        time_bnds=bnds_time)
 
-  
-error_flag = cmor.close()  
 
+error_flag = cmor.close()
diff --git a/Test/test_python_jamie_8.py b/Test/test_python_jamie_8.py
index 5d45794..22dad16 100644
--- a/Test/test_python_jamie_8.py
+++ b/Test/test_python_jamie_8.py
@@ -3,6 +3,7 @@
 import cmor
 import numpy
 
+
 def define_axes(axes):
     axis_ids = list()
     for axis in axes:
@@ -12,90 +13,94 @@ def define_axes(axes):
     print 'cmor.axis calls complete'
     return axis_ids
 
+
 def define_write_var(axis_ids, entry, unit, values):
     varid = cmor.variable(entry,
                           unit,
                           axis_ids,
-                          missing_value = -99
+                          missing_value=-99
                           )
 
     print 'cmor.variable call complete'
-    
-    cmor.write(varid, values, time_vals = [15.0], time_bnds = [0., 30.0])
+
+    cmor.write(varid, values, time_vals=[15.0], time_bnds=[0., 30.0])
 
     print 'cmor.write call complete'
 
 
 def cmor_ini():
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE)
+               netcdf_file_action=cmor.CMOR_REPLACE)
     cmor.dataset_json("Test/common_user_input.json")
 
+
 def define_write_clisccp():
-    cmor.load_table('CMIP6_cfMon.json')
-    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]},
-             {'table_entry': 'plev7c',
-              'coord_vals': [90000., 74000., 62000., 50000., 37500., 24500., 9000.],
-              'cell_bounds': [[100000., 80000.], [80000.,  68000.],  [68000.,  56000.],  [56000.,  44000.],  [44000.,  31000.],  [31000.,  18000.],  [18000.,   0.]],
-              'units': 'Pa',
-              },
-             {'table_entry': 'tau',
-              'coord_vals': [0.15, 0.8, 2.45, 6.5, 16.2, 41.5, 100.],
-              'cell_bounds':[ [0.0,  0.3],  [0.3,  1.3],  [1.3,  3.6],  [3.6,  9.4], [9.4, 23.0], [23.0, 60.0], [60.0, 100000]],
-              'units': '1'}
-             ]
+    cmor.load_table('CMIP6_CFmon.json')
+    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]},
+            {'table_entry': 'plev7c',
+             'coord_vals': [90000., 74000., 62000., 50000., 37500., 24500., 9000.],
+             'cell_bounds': [[100000., 80000.], [80000., 68000.], [68000., 56000.], [56000., 44000.], [44000., 31000.], [31000., 18000.], [18000., 0.]],
+             'units': 'Pa',
+             },
+            {'table_entry': 'tau',
+             'coord_vals': [0.15, 0.8, 2.45, 6.5, 16.2, 41.5, 100.],
+             'cell_bounds':[[0.0, 0.3], [0.3, 1.3], [1.3, 3.6], [3.6, 9.4], [9.4, 23.0], [23.0, 60.0], [60.0, 100000]],
+             'units': '1'}
+            ]
 
     axis_ids = define_axes(axes)
 
-
-    values = numpy.array([0.0004,]*49, numpy.float32)
+    values = numpy.array([0.0004, ] * 49, numpy.float32)
     values = numpy.reshape(values, (1, 1, 1, 7, 7))
 
-    define_write_var(axis_ids, 'clisccp7c', '1', values)
+    define_write_var(axis_ids, 'clisccp', '1', values)
+
 
 def define_write_landcoverfrac():
     cmor.load_table('Tables/CMIP6_Lmon.json')
-    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]},
-             {'table_entry': 'vegtype',
-              'coord_vals': ['landcover'],
-              'units': '1',
-              },
-             ]
+    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]},
+            {'table_entry': 'vegtype',
+             'coord_vals': ['landcover'],
+             'units': '1',
+             },
+            ]
 
     axis_ids = define_axes(axes)
 
     values = numpy.array([2.], numpy.float32)
     values = numpy.reshape(values, (1, 1, 1, 1))
-             
+
     define_write_var(axis_ids, 'landCoverFrac', '1', values)
-    
+
+
 def main():
 
     cmor_ini()
     define_write_clisccp()
     define_write_landcoverfrac()
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_jamie_9.py b/Test/test_python_jamie_9.py
index c189836..75fc547 100644
--- a/Test/test_python_jamie_9.py
+++ b/Test/test_python_jamie_9.py
@@ -2,50 +2,52 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
+               netcdf_file_action=cmor.CMOR_REPLACE_3)
     cmor.dataset_json("Test/common_user_input.json")
- 
+
     table = 'CMIP6_Amon.json'
     cmor.load_table(table)
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'plev19',
-              'units': 'Pa',
-              'coord_vals': map(float,'100000. 92500. 85000. 70000. 60000. 50000. 40000. 30000. 25000. 20000. 15000. 10000. 7000. 5000. 3000. 2000. 1000. 500. 100.'.split(' '))},
-             {'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]},
-             ]
-
+    axes = [{'table_entry': 'time',
+             'units': 'days since 2000-01-01 00:00:00',
+             },
+            {'table_entry': 'plev19',
+             'units': 'Pa',
+             'coord_vals': map(float, '100000. 92500. 85000. 70000. 60000. 50000. 40000. 30000. 25000. 20000. 15000. 10000. 7000. 5000. 3000. 2000. 1000. 500. 100.'.split(' '))},
+            {'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:
-        print 'doing:',axis
+        print 'doing:', axis
         axis_id = cmor.axis(**axis)
         axis_ids.append(axis_id)
 
-    for var, units, value in (('ta', 'K', 274), ('ua', 'm s-1', 10) ):
-        values = numpy.array([value,]*len(axes[1]['coord_vals']), numpy.float32)
+    for var, units, value in (('ta', 'K', 274), ('ua', 'm s-1', 10)):
+        values = numpy.array([value, ] *
+                             len(axes[1]['coord_vals']), numpy.float32)
         varid = cmor.variable(var,
                               units,
                               axis_ids,
-                              history = 'variable history',
-                              missing_value = -99
+                              history='variable history',
+                              missing_value=-99
                               )
         cmor.set_variable_attribute(varid, 'cell_measures', '')
-        cmor.write(varid, values, time_vals = [15], time_bnds = [ [0,30] ])
+        cmor.write(varid, values, time_vals=[15], time_bnds=[[0, 30]])
 
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_jamie_site_surface.py b/Test/test_python_jamie_site_surface.py
index f79ad7b..c18d85f 100644
--- a/Test/test_python_jamie_site_surface.py
+++ b/Test/test_python_jamie_site_surface.py
@@ -1,53 +1,60 @@
 import cmor
 import numpy
 
+
 def cmor_initialisation():
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3,
-               create_subdirectories = 0)
-    cmor.dataset_json("Test/test_python_jamie_site_surface.json")
+               netcdf_file_action=cmor.CMOR_REPLACE_3,
+               create_subdirectories=0)
+    cmor.dataset_json("Test/common_user_input.json")
+
 
 def setup_data():
-    axes = [ {'table_entry': 'time1',
-              'units': 'days since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'site',
-              'units': '',
-              'coord_vals': [0]},
-             ]
+    axes = [{'table_entry': 'time1',
+             'units': 'days since 2000-01-01 00:00:00',
+             },
+            {'table_entry': 'site',
+             'units': '',
+             'coord_vals': [0]},
+            ]
 
     values = numpy.array([215.], numpy.float32)
     return values, axes
 
+
 def cmor_define_and_write(values, axes):
-    table = 'CMIP6_cfSites.json'
-    cmor.load_table(table)
+    table = 'CMIP6_CFsubhr.json'
+    tid1 = cmor.load_table(table)
     site_axis_id = cmor.axis(**axes[1])
 
     time_axis_id = cmor.axis(**axes[0])
 
-    gid = cmor.grid([site_axis_id,],latitude=numpy.array([-20,]),longitude=numpy.array([150,]))
+    table2 = 'CMIP6_grids.json'
+    tid2 = cmor.load_table(table2)
+    gid = cmor.grid([site_axis_id, ], latitude=numpy.array(
+        [-20, ]), longitude=numpy.array([150, ]))
 
-
-    axis_ids = [time_axis_id,gid]
+    axis_ids = [time_axis_id, gid]
+    cmor.set_table(tid1)
     varid = cmor.variable('rlut',
                           'W m-2',
                           axis_ids,
-                          history = 'variable history',
-                          missing_value = -99,
-                          positive = 'up'
+                          history='variable history',
+                          missing_value=-99,
+                          positive='up'
                           )
 
-    cmor.write(varid, values, time_vals = [15])
-    
-    
+    cmor.write(varid, values, time_vals=[15])
+
+
 def main():
-    
+
     cmor_initialisation()
     values, axes = setup_data()
     cmor_define_and_write(values, axes)
     print cmor.close(file_name=True)
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_joerg_1.py b/Test/test_python_joerg_1.py
index 5247c35..7854ffb 100644
--- a/Test/test_python_joerg_1.py
+++ b/Test/test_python_joerg_1.py
@@ -1,34 +1,35 @@
-import cmor,numpy
+import cmor
+import numpy
 
 error_flag = cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
-  
+
 error_flag = cmor.dataset_json("Test/common_user_input.json")
 
 # 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)
+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/CMIP6_Amon.json")
-#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= """
+# 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
@@ -40,11 +41,11 @@ mlev_val= """
    0.791300    0.841100    0.886350    0.925950    0.958600
    0.982650    0.996150""".split()
 
-levs=[]
+levs = []
 for l in mlev_val:
     levs.append(float(l))
-    
-BS_bnds= """
+
+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
@@ -61,32 +62,31 @@ for l in BS_bnds:
     levs_bnds.append(float(l))
 
 
-levs=numpy.array(levs)
-levs_bnds=numpy.array(levs_bnds)
+levs = numpy.array(levs)
+levs_bnds = numpy.array(levs_bnds)
 nlevs = len(levs)
 
-ntimes=12
+ntimes = 12
 
 
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2030-1-1',  
-    length=ntimes,                
+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'
+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'
+# 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(  
+ilev = cmor.axis(
     table_entry=table_entry,
     units='',
-    length=nlevs,                   
-    coord_vals=levs,             
+    length=nlevs,
+    coord_vals=levs,
     cell_bounds=levs_bnds)
-
diff --git a/Test/test_python_joerg_10.py b/Test/test_python_joerg_10.py
index e285445..22e5cc9 100644
--- a/Test/test_python_joerg_10.py
+++ b/Test/test_python_joerg_10.py
@@ -1,96 +1,109 @@
-from test_python_common import * # common subroutines
+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':
+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')
+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.setup(
+    inpath=ipth,
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
 cmor.dataset_json("Test/common_user_input.json")
 
-#cmor.set_cur_dataset_attribute("parent_experiment_rip","r1i1p1")
+# cmor.set_cur_dataset_attribute("parent_experiment_rip","r1i1p1")
 
-tables=[]
+tables = []
 a = cmor.load_table("Tables/CMIP6_grids.json")
 tables.append(a)
 tables.append(cmor.load_table("Tables/CMIP6_Omon.json"))
-print 'Tables ids:',tables
+print 'Tables ids:', tables
 
 cmor.set_table(tables[0])
 
-x,y,lon_coords,lat_coords,lon_vertices,lat_vertices = gen_irreg_grid(lon,lat)
+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)
 
-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
+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" ]
+# 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],
+# cmor.set_grid_mapping(grid_id=myaxes[2],
 ##                       mapping_name = mapnm,
 ##                       parameter_names = params,
 ##                       parameter_values = pvalues,
-##                       parameter_units = punits)
+# parameter_units = punits)
 
 cmor.set_table(tables[1])
-myaxes[4] = cmor.axis(table_entry = "depth_coord",
-                     coord_vals=[0],
-                     cell_bounds=[0,1],
-                     units="m")
-myaxes[3] = cmor.axis(table_entry = 'time',
-                      units = 'months since 1980')
+myaxes[4] = cmor.axis(table_entry="depth0m",
+                      coord_vals=[0],
+                      cell_bounds=[0, 1],
+                      units="m")
+myaxes[3] = cmor.axis(table_entry='time',
+                      units='months since 1980')
 
-pass_axes = [myaxes[3],myaxes[4],myaxes[2]]
+pass_axes = [myaxes[3], myaxes[4], myaxes[2]]
 
 print 'ok going to cmorvar'
-myvars[0] = cmor.variable( table_entry = 'calc',
-                           units = 'mol m-3',
-                           axis_ids = pass_axes,
-                           original_name = 'yep',
-                           history = 'no history',
-                           comment = 'no future'
-                           )
-
-ntimes=2
-for i in range(0,ntimes,2):
-    data2d_1 = read_2d_input_files(i,   varin2d[0], lat,lon)
-    data2d_1 = numpy.expand_dims(data2d_1,axis=0)
-    data2d_2 = read_2d_input_files(i+1, varin2d[0], lat,lon)
-    data2d_2 = numpy.expand_dims(data2d_2,axis=0)
-    data2d=numpy.array((data2d_1,data2d_2))
+myvars[0] = cmor.variable(table_entry='calc',
+                          units='mol m-3',
+                          axis_ids=pass_axes,
+                          original_name='yep',
+                          history='no history',
+                          comment='no future'
+                          )
+
+ntimes = 2
+for i in range(0, ntimes, 2):
+    data2d_1 = read_2d_input_files(i, varin2d[0], lat, lon)
+    data2d_1 = numpy.expand_dims(data2d_1, axis=0)
+    data2d_2 = read_2d_input_files(i + 1, varin2d[0], lat, lon)
+    data2d_2 = numpy.expand_dims(data2d_2, axis=0)
+    data2d = numpy.array((data2d_1, data2d_2))
     #data2d=numpy.expand_dims(data2d, axis=0)
-    #print data2d.shape
-    print 'writing time: ',i
+    # print data2d.shape
+    print 'writing time: ', i
     print data2d.shape
     print data2d
-    print Time[i:i+2],bnds_time[2*i:2*i+4]    
-    cmor.write(myvars[0],data2d,2,time_vals=numpy.arange(i,i+2),time_bnds=numpy.arange(i,i+3))
+    print Time[i:i + 2], bnds_time[2 * i:2 * i + 4]
+    cmor.write(
+        myvars[0],
+        data2d,
+        2,
+        time_vals=numpy.arange(
+            i,
+            i + 2),
+        time_bnds=numpy.arange(
+            i,
+            i + 3))
 cmor.close()
diff --git a/Test/test_python_joerg_11.py b/Test/test_python_joerg_11.py
index f79d643..26ca4bc 100644
--- a/Test/test_python_joerg_11.py
+++ b/Test/test_python_joerg_11.py
@@ -1,4 +1,4 @@
-from test_python_common import * # common subroutines
+from test_python_common import *  # common subroutines
 
 import cmor._cmor
 import os
@@ -6,72 +6,77 @@ import os
 pth = os.path.split(os.path.realpath(os.curdir))
 
 
-myaxes=numpy.zeros(9,dtype='i')
-myaxes2=numpy.zeros(9,dtype='i')
-myvars=numpy.zeros(9,dtype='i')
+myaxes = numpy.zeros(9, dtype='i')
+myaxes2 = numpy.zeros(9, dtype='i')
+myvars = numpy.zeros(9, dtype='i')
 
 
-cmor.setup(inpath="Tables",set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
+cmor.setup(
+    inpath="Tables",
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
 cmor.dataset_json("Test/common_user_input.json")
 
-tables=[]
+tables = []
 a = cmor.load_table("Tables/CMIP6_grids.json")
 tables.append(a)
 tables.append(cmor.load_table("Tables/CMIP6_Omon.json"))
-print 'Tables ids:',tables
+print 'Tables ids:', tables
 
 cmor.set_table(tables[0])
 
-x,y,lon_coords,lat_coords,lon_vertices,lat_vertices = gen_irreg_grid(lon,lat)
+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)
 
-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
+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" ]
+# 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],
+# cmor.set_grid_mapping(grid_id=myaxes[2],
 ##                       mapping_name = mapnm,
 ##                       parameter_names = params,
 ##                       parameter_values = pvalues,
-##                       parameter_units = punits)
+# parameter_units = punits)
 
 cmor.set_table(tables[1])
-myaxes[3] = cmor.axis(table_entry = 'time',
-                      units = 'months since 1980')
-myaxes[4] = cmor.axis(table_entry = 'oline',
-                      units = '',
-                      coord_vals = """barents_opening bering_strait canadian_archipelago denmark_strait drake_passage english_channel pacific_equatorial_undercurrent faroe_scotland_channel florida_bahamas_strait fram_strait iceland_faroe_channel indonesian_thoughflow mozambique_channel taiwan_luzon_straits windward_passage""".split())
+myaxes[3] = cmor.axis(table_entry='time',
+                      units='months since 1980')
+myaxes[4] = cmor.axis(table_entry='oline',
+                      units='',
+                      coord_vals="""barents_opening bering_strait canadian_archipelago denmark_strait drake_passage english_channel pacific_equatorial_undercurrent faroe_scotland_channel florida_bahamas_strait fram_strait iceland_faroe_channel indonesian_thoughflow mozambique_channel taiwan_luzon_straits windward_passage""".split())
 
-pass_axes = [myaxes[3],myaxes[4]]
+pass_axes = [myaxes[3], myaxes[4]]
 
 print 'ok going to cmorvar'
-myvars[0] = cmor.variable( table_entry = 'mfo',
-                           units = 'kg s-1',
-                           axis_ids = pass_axes,
-                           history = 'no history',
-                           comment = 'no future'
-                           )
+myvars[0] = cmor.variable(table_entry='mfo',
+                          units='kg s-1',
+                          axis_ids=pass_axes,
+                          history='no history',
+                          comment='no future'
+                          )
 for i in range(ntimes):
-    data2d = numpy.random.random((1,15))
-    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])
+    data2d = numpy.random.random((1, 15))
+    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_joerg_12.py b/Test/test_python_joerg_12.py
index 61e3452..84deb96 100644
--- a/Test/test_python_joerg_12.py
+++ b/Test/test_python_joerg_12.py
@@ -1,81 +1,86 @@
-from test_python_common import * # common subroutines
+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':
+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')
+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.setup(
+    inpath=ipth,
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
 cmor.dataset_json("Test/common_user_input.json")
 
-tables=[]
+tables = []
 a = cmor.load_table("Tables/CMIP6_grids.json")
 tables.append(a)
 tables.append(cmor.load_table("Tables/CMIP6_Lmon.json"))
-print 'Tables ids:',tables
+print 'Tables ids:', tables
 
 cmor.set_table(tables[0])
 
-x,y,lon_coords,lat_coords,lon_vertices,lat_vertices = gen_irreg_grid(lon,lat)
+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)
 
-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
+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" ]
+# 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],
+# cmor.set_grid_mapping(grid_id=myaxes[2],
 ##                       mapping_name = mapnm,
 ##                       parameter_names = params,
 ##                       parameter_values = pvalues,
-##                       parameter_units = punits)
+# parameter_units = punits)
 
 cmor.set_table(tables[1])
-myaxes[3] = cmor.axis(table_entry = 'time',
-                      units = 'months since 1980')
-myaxes[4] = cmor.axis(table_entry = 'vegtype',
-                      units = '',
-                      coord_vals = """grass marijuana opium""".split())
+myaxes[3] = cmor.axis(table_entry='time',
+                      units='months since 1980')
+myaxes[4] = cmor.axis(table_entry='vegtype',
+                      units='',
+                      coord_vals="""grass marijuana opium""".split())
 
-pass_axes = [myaxes[2],myaxes[3],myaxes[4]]
+pass_axes = [myaxes[2], myaxes[3], myaxes[4]]
 
 print 'ok going to cmorvar'
-myvars[0] = cmor.variable( table_entry = 'landCoverFrac',
-                           units = '%',
-                           axis_ids = pass_axes,
-                           history = 'no history',
-                           comment = 'no future'
-                           )
+myvars[0] = cmor.variable(table_entry='landCoverFrac',
+                          units='%',
+                          axis_ids=pass_axes,
+                          history='no history',
+                          comment='no future'
+                          )
 for i in range(ntimes):
-    data2d = numpy.random.random((3,4,3))
-    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])
+    data2d = numpy.random.random((3, 4, 3))
+    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_joerg_2.py b/Test/test_python_joerg_2.py
index 49689d5..1c60259 100644
--- a/Test/test_python_joerg_2.py
+++ b/Test/test_python_joerg_2.py
@@ -3,11 +3,11 @@ import cmor
 import numpy
 
 
-def test_mode(mode,i,suffix=''):
+def test_mode(mode, i, suffix=''):
     cmor.setup(inpath='Tables',
-               netcdf_file_action = mode)
+               netcdf_file_action=mode)
     cmor.dataset_json("Test/common_user_input.json")
-    
+
     table = 'CMIP6_Amon.json'
     cmor.load_table(table)
     levels = [100000.,
@@ -32,27 +32,27 @@ def test_mode(mode,i,suffix=''):
               997,
               996,
               995,
-              994, 
+              994,
               500,
               100]
-    
-    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': 'plev19',
-              'units': 'Pa',
-              'coord_vals': levels},
-             ]
-    
-    values = numpy.array(range(len(levels)), numpy.float32)+195
+
+    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': 'plev19',
+             'units': 'Pa',
+             'coord_vals': levels},
+            ]
+
+    values = numpy.array(range(len(levels)), numpy.float32) + 195
     axis_ids = list()
     for axis in axes:
         axis_id = cmor.axis(**axis)
@@ -62,22 +62,22 @@ def test_mode(mode,i,suffix=''):
         varid = cmor.variable(var,
                               units,
                               axis_ids,
-                              history = 'variable history',
-                              missing_value = -99
+                              history='variable history',
+                              missing_value=-99
                               )
-        print "Sending time bounds:",[[i,i+1]]
-        cmor.write(varid, values, time_vals = [i], time_bnds = [ [i,i+1] ])
+        print "Sending time bounds:", [[i, i + 1]]
+        cmor.write(varid, values, time_vals=[i], time_bnds=[[i, i + 1]])
 
-    fnm = cmor.close(varid,file_name=True)
+    fnm = cmor.close(varid, file_name=True)
     cmor.close()
     return fnm
-    
-fnm=''
+
+
+fnm = ''
 for i in range(5):
-    print i,fnm
-    if i==0:
+    print i, fnm
+    if i == 0:
         mode = cmor.CMOR_REPLACE
     else:
         mode = cmor.CMOR_APPEND
-    fnm = test_mode(cmor.CMOR_APPEND,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
index 818208c..f2c53c0 100644
--- a/Test/test_python_joerg_3.py
+++ b/Test/test_python_joerg_3.py
@@ -1,48 +1,53 @@
-import cmor,numpy
+import cmor
+import numpy
+
+ntimes = 1
+nlat = 45
+nlon = 90
+nlev = 5
 
-ntimes=1
-nlat=45
-nlon=90
-nlev=5
 
 def prep(mode):
-    error_flag = cmor.setup(inpath='Tables', netcdf_file_action=mode,logfile="Denis.LOG" )
+    error_flag = cmor.setup(
+        inpath='Tables',
+        netcdf_file_action=mode,
+        logfile="Denis.LOG")
 
     error_flag = cmor.dataset_json("Test/common_user_input.json")
 
-def prep_var(var,units):
+
+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.
+    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/CMIP6_6hrLev.json")
-    #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')
+    # 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
@@ -50,84 +55,100 @@ def prep_var(var,units):
     zlev_bnds[4] = 0.8
     zlev_bnds[5] = 1.
 
-
-
-    itim = cmor.axis(  
-        table_entry='time1',           
+    itim = cmor.axis(
+        table_entry='time1',
         units='days since 2010-1-1')
 
-    ilev = cmor.axis(  
+    ilev = cmor.axis(
         table_entry="alternate_hybrid_sigma",
         units='1',
-        coord_vals=zlevs,             
+        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.])
-
+    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)
-
+                        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)
-
+                        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)
+    # ierr = cmor.zfactor(zaxis_id=ilev,
+    # zfactor_name='p0',
+    # units='Pa',
+    # zfactor_values=p0)
 
     ips = cmor.zfactor(zaxis_id=ilev,
-                     zfactor_name='ps1',
-                     axis_ids=[itim,ilat,ilon],
-                     units='Pa')
+                       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
 
-    ivar1 =cmor.variable(var,axis_ids=[itim,ilev,ilat,ilon],units=units,missing_value=0.)
-    return ivar1,ips
 
 for d in range(2):
     mode = cmor.CMOR_APPEND
-    if d==0: mode = cmor.CMOR_REPLACE
+    if d == 0:
+        mode = cmor.CMOR_REPLACE
     prep(mode)
-    ivar1,ips1=prep_var("ta","K")
-    ivar2,ips2=prep_var("hus","%")
+    ivar1, ips1 = prep_var("ta", "K")
+    ivar2, ips2 = prep_var("hus", "%")
     for i in range(4):
-        tval = [i/4.+d]
-        tbnd = [i/4.+d-0.125,i/4.+d+0.125]
-        print 'tvar',tval
-        print 'tbnd',tbnd
-        print 'writing time:',i,i/4.
-        data=numpy.random.random((ntimes,nlev,nlat,nlon))*30.+273
-        data=data.astype("f")
-        cmor.write(ivar1,data,time_vals=tval,time_bnds=tbnd)
-        print 'wrote var 1 time:',i
-        data=numpy.random.random((ntimes,nlev,nlat,nlon))
-        data=data.astype("f")
-        cmor.write(ivar2,data,time_vals=tval,time_bnds=tbnd)
-        print 'wrote var 2 time:',i
-        data=numpy.random.random((ntimes,nlat,nlon))*8.+96300.
-        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
-    file1=cmor.close(ivar1,True)
-    file2=cmor.close(ivar2,True)
-    print 'File1:',file1
-    print 'File2:',file2
+        tval = [i / 4. + d]
+        tbnd = [i / 4. + d - 0.125, i / 4. + d + 0.125]
+        print 'tvar', tval
+        print 'tbnd', tbnd
+        print 'writing time:', i, i / 4.
+        data = numpy.random.random((ntimes, nlev, nlat, nlon)) * 30. + 273
+        data = data.astype("f")
+        cmor.write(ivar1, data, time_vals=tval, time_bnds=tbnd)
+        print 'wrote var 1 time:', i
+        data = numpy.random.random((ntimes, nlev, nlat, nlon))
+        data = data.astype("f")
+        cmor.write(ivar2, data, time_vals=tval, time_bnds=tbnd)
+        print 'wrote var 2 time:', i
+        data = numpy.random.random((ntimes, nlat, nlon)) * 8. + 96300.
+        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
+    file1 = cmor.close(ivar1, True)
+    file2 = cmor.close(ivar2, True)
+    print 'File1:', file1
+    print 'File2:', file2
     cmor.close()
-print cmor.close(ivar1,True)
+print cmor.close(ivar1, True)
 cmor.close()
diff --git a/Test/test_python_joerg_4.py b/Test/test_python_joerg_4.py
index 99a13ee..3a75cad 100644
--- a/Test/test_python_joerg_4.py
+++ b/Test/test_python_joerg_4.py
@@ -1,79 +1,77 @@
-import cmor,numpy
+import cmor
+import numpy
 
 error_flag = cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
-  
+
 error_flag = cmor.dataset_json("Test/common_user_input.json")
 
 # 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)
+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/CMIP6_Omon.json")
-ilat = cmor.axis(  
-    table_entry='latitude',       
-    units='degrees_north',          
-    length=nlat,                   
-    coord_vals=alats,              
-    cell_bounds=bnds_lat)        
+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)      
+ilon = cmor.axis(
+    table_entry='longitude',
+    length=nlon,
+    units='degrees_east',
+    coord_vals=alons,
+    cell_bounds=bnds_lon)
 
-ntimes=12
-plevs = numpy.array([0, 17.0, 27.0, 37.0, 47.0, 57.0, 68.0, 82.0])
-plevs.sort()
-plevs_bnds = numpy.array([0, 11, 22.0, 32.0, 42.0, 52.0, 62.5, 75.0, 91.0 ])
+ntimes = 12
+plevs = sorted(numpy.array([0, 17.0, 27.0, 37.0, 47.0, 57.0, 68.0, 82.0]))
+plevs_bnds = numpy.array([0, 11, 22.0, 32.0, 42.0, 52.0, 62.5, 75.0, 91.0])
 plevs_bnds.sort()
 
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2030-1-1',  
-    length=ntimes,                
+itim = cmor.axis(
+    table_entry='time',
+    units='months since 2030-1-1',
+    length=ntimes,
     interval='1 month')
 
-ilev = cmor.axis(  
-            table_entry='depth_coord',       
-            units='m',
-            coord_vals=plevs,             
-            cell_bounds=plevs_bnds)
+ilev = cmor.axis(
+    table_entry='depth_coord',
+    units='m',
+    coord_vals=plevs,
+    cell_bounds=plevs_bnds)
 try:
-    ilev = cmor.axis(  
-            table_entry='depth_coord',       
-            units='m',
-            coord_vals=plevs,             
-            cell_bounds=plevs_bnds)
-except:
+    ilev = cmor.axis(
+        table_entry='depth_coord',
+        units='m',
+        coord_vals=plevs,
+        cell_bounds=plevs_bnds)
+except BaseException:
     pass
 
-var3d_ids = cmor.variable(    
-    table_entry='co3',     
-    units='mol m-3',           
+var3d_ids = cmor.variable(
+    table_entry='co3',
+    units='mol m-3',
     axis_ids=numpy.array((ilev, ilon, ilat, itim)),
-    missing_value=numpy.array([1.0e28,],dtype=numpy.float32)[0], 
+    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.
+    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.write(
+        var_id=var3d_ids,
+        data=data3d,
+        ntimes_passed=1,
+        time_vals=time,
+        time_bnds=bnds_time)
 
-  
-error_flag = cmor.close()  
 
+error_flag = cmor.close()
diff --git a/Test/test_python_joerg_5.py b/Test/test_python_joerg_5.py
index ad242d8..8a70737 100644
--- a/Test/test_python_joerg_5.py
+++ b/Test/test_python_joerg_5.py
@@ -1,17 +1,17 @@
-import cmor,numpy
+import cmor
+import numpy
 
 error_flag = cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
-  
+
 error_flag = cmor.dataset_json("Test/common_user_input.json")
-  
+
 
 # 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)
+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/CMIP6_Amon.json")
-error_flag = cmor.close()  
-
+error_flag = cmor.close()
diff --git a/Test/test_python_joerg_6.py b/Test/test_python_joerg_6.py
index fd3eb05..a136de8 100644
--- a/Test/test_python_joerg_6.py
+++ b/Test/test_python_joerg_6.py
@@ -1,14 +1,17 @@
-import cmor,numpy
+import cmor
+import numpy
 
 error_flag = cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
-  
+
 error_flag = cmor.dataset_json("Test/common_user_input.json")
 
 cmor.load_table("CMIP6_Omon.json")
-itime = cmor.axis(table_entry="time",units='months since 2010',coord_vals=numpy.array([0,1,2,3,4.]),cell_bounds=numpy.array([0,1,2,3,4,5.]))
-ivar = cmor.variable(table_entry="masso",axis_ids=[itime],units='kg')
+itime = cmor.axis(table_entry="time", units='months since 2010', coord_vals=numpy.array(
+    [0, 1, 2, 3, 4.]), cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
+ivar = cmor.variable(table_entry="masso", axis_ids=[itime], units='kg')
 
-data=numpy.random.random(5)
-for i in range(0,5):
-    cmor.write(ivar,data[i:i])#,time_vals=numpy.array([i,]),time_bnds=numpy.array([i,i+1]))
-error_flag = cmor.close()  
+data = numpy.random.random(5)
+for i in range(0, 5):
+    # ,time_vals=numpy.array([i,]),time_bnds=numpy.array([i,i+1]))
+    cmor.write(ivar, data[i:i])
+error_flag = cmor.close()
diff --git a/Test/test_python_joerg_7.py b/Test/test_python_joerg_7.py
index 5e5d828..4cb71ce 100644
--- a/Test/test_python_joerg_7.py
+++ b/Test/test_python_joerg_7.py
@@ -1,36 +1,45 @@
-import cmor,numpy
+import cmor
+import numpy
 
 error_flag = cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
-  
+
 error_flag = cmor.dataset_json("Test/common_user_input.json")
-  
+
 
 cmor.load_table("CMIP6_Omon.json")
-itime = cmor.axis(table_entry="time",units='months since 2010',coord_vals=numpy.array([0,1,2,3,4.]),cell_bounds=numpy.array([0,1,2,3,4,5.]))
+itime = cmor.axis(table_entry="time", units='months since 2010', coord_vals=numpy.array(
+    [0, 1, 2, 3, 4.]), cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.]))
 # 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)
-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)      
-ivar = cmor.variable(table_entry="exparag100",axis_ids=[itime,ilat,ilon],units='mol m-2 s-1',positive="up")
+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)
+ilat = cmor.axis(
+    table_entry='latitude',
+    units='degrees_north',
+    length=nlat,
+    coord_vals=alats,
+    cell_bounds=bnds_lat)
 
-data=numpy.random.random((5,nlat,nlon))
-for i in range(0,5):
-    cmor.write(ivar,data[i:i])#,time_vals=numpy.array([i,]),time_bnds=numpy.array([i,i+1]))
-error_flag = cmor.close()  
+ilon = cmor.axis(
+    table_entry='longitude',
+    length=nlon,
+    units='degrees_east',
+    coord_vals=alons,
+    cell_bounds=bnds_lon)
+ivar = cmor.variable(
+    table_entry="eparag100",
+    axis_ids=[
+        itime,
+        ilat,
+        ilon],
+    units='mol m-2 s-1',
+    positive="up")
 
+data = numpy.random.random((5, nlat, nlon))
+for i in range(0, 5):
+    # ,time_vals=numpy.array([i,]),time_bnds=numpy.array([i,i+1]))
+    cmor.write(ivar, data[i:i])
+error_flag = cmor.close()
diff --git a/Test/test_python_joerg_8.py b/Test/test_python_joerg_8.py
index 3269723..c1ab849 100644
--- a/Test/test_python_joerg_8.py
+++ b/Test/test_python_joerg_8.py
@@ -1,80 +1,85 @@
-from test_python_common import * # common subroutines
+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':
+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')
+myaxes = numpy.zeros(9, dtype='i')
+myaxes2 = numpy.zeros(9, dtype='i')
+myvars = numpy.zeros(9, dtype='i')
 
 
-cmor.setup(inpath="Tables",set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
+cmor.setup(
+    inpath="Tables",
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
 cmor.dataset_json("Test/common_user_input.json")
 
-tables=[]
+tables = []
 a = cmor.load_table("Tables/CMIP6_grids.json")
 tables.append(a)
 tables.append(cmor.load_table("Tables/CMIP6_Omon.json"))
-print 'Tables ids:',tables
+print 'Tables ids:', tables
 
 cmor.set_table(tables[0])
 
-x,y,lon_coords,lat_coords,lon_vertices,lat_vertices = gen_irreg_grid(lon,lat)
+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)
 
-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
+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" ]
+# 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],
+# cmor.set_grid_mapping(grid_id=myaxes[2],
 ##                       mapping_name = mapnm,
 ##                       parameter_names = params,
 ##                       parameter_values = pvalues,
-##                       parameter_units = punits)
+# parameter_units = punits)
 
 cmor.set_table(tables[1])
-myaxes[3] = cmor.axis(table_entry = 'time',
-                      units = 'months since 1980')
+myaxes[3] = cmor.axis(table_entry='time',
+                      units='months since 1980')
 
-pass_axes = [myaxes[3],myaxes[2]]
+pass_axes = [myaxes[3], myaxes[2]]
 
 print 'ok going to cmorvar'
-myvars[0] = cmor.variable( table_entry = 'exparag100',
-                           units = 'mol m-2 s-1',
-                           axis_ids = pass_axes,
-                           positive = 'down',
-                           original_name = 'HFLS',
-                           history = 'no history',
-                           comment = 'no future'
-                           )
+myvars[0] = cmor.variable(table_entry='eparag100',
+                          units='mol m-2 s-1',
+                          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])
+    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_joerg_9.py b/Test/test_python_joerg_9.py
index 20ad9d9..da9078b 100644
--- a/Test/test_python_joerg_9.py
+++ b/Test/test_python_joerg_9.py
@@ -1,91 +1,93 @@
-import cmor,numpy,cdms2
+import cmor
+import numpy
+import cdms2
 
-f=cdms2.open("Test/GR30s_halo.nc")
+f = cdms2.open("Test/GR30s_halo.nc")
 
-nlon=f['grid_center_lat'].shape[1]
-nlat=f['grid_center_lat'].shape[0]
+nlon = f['grid_center_lat'].shape[1]
+nlat = f['grid_center_lat'].shape[0]
 
 
 error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_APPEND)
-  
-error_flag = cmor.dataset(                                   
-       outpath='Joerg',                                         
-       experiment_id='DcppC2',
-       institution= 'GICC (Generic International Climate Center, Geneva, Switzerland)',
-       institute_id = "GICC",
-       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="Ant",
-       parent_experiment_id="lgm",branch_time=0)
-
-ntables=[cmor.load_table("Tables/CMIP6_grids")]
+
+error_flag = cmor.dataset(
+    outpath='Joerg',
+    experiment_id='DcppC2',
+    institution='GICC (Generic International Climate Center, Geneva, Switzerland)',
+    institute_id="GICC",
+    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="Ant",
+    parent_experiment_id="lgm", branch_time=0)
+
+ntables = [cmor.load_table("Tables/CMIP6_grids")]
 ntables.append(cmor.load_table("Tables/CMIP5_OImon"))
 
 
 cmor.set_table(ntables[0])
-axes=numpy.zeros(2,numpy.int32)
-
-axes[0] = cmor.axis(                            
-    table_entry        = 'i_index',               
-    length             = nlon,                    
-    coord_vals         = numpy.arange(0,nlon,1,numpy.float32),                     
-    units              = '1')
-  
-axes[1] = cmor.axis(                            
-    table_entry        = 'j_index',               
-    length             = nlat,                    
-    coord_vals         = numpy.arange(0,nlat,1,numpy.float32),                     
-    units              = '1')
-
-
-olat_val  = f("grid_center_lat").filled().astype('f')
-olon_val  = f("grid_center_lon").filled().astype('f')
+axes = numpy.zeros(2, numpy.int32)
+
+axes[0] = cmor.axis(
+    table_entry='i_index',
+    length=nlon,
+    coord_vals=numpy.arange(0, nlon, 1, numpy.float32),
+    units='1')
+
+axes[1] = cmor.axis(
+    table_entry='j_index',
+    length=nlat,
+    coord_vals=numpy.arange(0, nlat, 1, numpy.float32),
+    units='1')
+
+
+olat_val = f("grid_center_lat").filled().astype('f')
+olon_val = f("grid_center_lon").filled().astype('f')
 bnds_olat = f("grid_corner_lat").filled().astype('f')
 bnds_olon = f("grid_corner_lon").filled().astype('f')
 
-grid_id = cmor.grid(                            
-    axis_ids           = axes,                    
-    latitude           = olat_val,                
-    longitude          = olon_val,                
-    latitude_vertices  = bnds_olat,               
-    longitude_vertices = bnds_olon)
+grid_id = cmor.grid(
+    axis_ids=axes,
+    latitude=olat_val,
+    longitude=olon_val,
+    latitude_vertices=bnds_olat,
+    longitude_vertices=bnds_olon)
 
 cmor.set_table(ntables[1])
 
 
-ntimes=12
+ntimes = 12
 
-tim_id = cmor.axis( table_entry="time",
-                    units="months since 2010")
+tim_id = cmor.axis(table_entry="time",
+                   units="months since 2010")
 time_vals = numpy.arange(ntimes).astype('f')
-bnds_time = numpy.arange(ntimes+1).astype('f')
+bnds_time = numpy.arange(ntimes + 1).astype('f')
 
-var_ids              = cmor.variable(           
-    table_entry        = "sic",           
-    units              = "%",                  
-##     positive           = vartabin(3,i),           
-    axis_ids           = [grid_id, tim_id ] 
-    )
+var_ids = cmor.variable(
+    table_entry="sic",
+    units="%",
+    ##     positive           = vartabin(3,i),
+    axis_ids=[grid_id, tim_id]
+)
 
-fnm=""
+fnm = ""
 for i in range(ntimes):
-    print 'writing time:',time_vals[i],bnds_time[i:i+2]
-    data = numpy.random.random((nlon,nlat))
-    error_flag = cmor.write(                        
-        var_id            = var_ids,                 
-        data              = data,
-        ntimes_passed     = 1,                    
-        file_suffix       = fnm,                  
-        time_vals         = time_vals[i],                    
-        time_bnds         = bnds_time[i:i+2])
-
-    fnm = cmor.close(var_ids,file_name=True,preserve=True)
-    print 'dumped to:',fnm
+    print 'writing time:', time_vals[i], bnds_time[i:i + 2]
+    data = numpy.random.random((nlon, nlat))
+    error_flag = cmor.write(
+        var_id=var_ids,
+        data=data,
+        ntimes_passed=1,
+        file_suffix=fnm,
+        time_vals=time_vals[i],
+        time_bnds=bnds_time[i:i + 2])
+
+    fnm = cmor.close(var_ids, file_name=True, preserve=True)
+    print 'dumped to:', fnm
 
 cmor.close()
diff --git a/Test/test_python_joerg_tim2_clim.py b/Test/test_python_joerg_tim2_clim.py
index c81037e..94a76fa 100644
--- a/Test/test_python_joerg_tim2_clim.py
+++ b/Test/test_python_joerg_tim2_clim.py
@@ -2,60 +2,61 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='/git/cmip5-cmor-tables/Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
+               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',
-                 parent_experiment_rip = 'N/A',
-                 branch_time = 0,
-                 contact = 'brian clough')
- 
+                 institute_id='ukmo',
+                 model_id='HadCM3',
+                 history='some global history',
+                 forcing='N/A',
+                 parent_experiment_id='N/A',
+                 parent_experiment_rip='N/A',
+                 branch_time=0,
+                 contact='brian clough')
+
     table = 'CMIP5_Oclim'
     cmor.load_table(table)
-    axes = [ {'table_entry': 'time2',
-              'units': 'days since 1850-01-01 00:00:00',
-              'coord_vals' : [15.5, 45, 74.5, 105, 135.5, 166, 196.5, 227.5, 258, 288.5, 319, 349.5],
-              'cell_bounds':[0,31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365],
-              },
-             {'table_entry': 'depth_coord',
-              'units': 'm',
-              'coord_vals': [5000., 3000., 2000., 1000.],
-              'cell_bounds': [ 5000., 3000., 2000., 1000.,0]},
-             {'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]},
-             ]
-
+    axes = [{'table_entry': 'time2',
+             'units': 'days since 1850-01-01 00:00:00',
+             'coord_vals': [15.5, 45, 74.5, 105, 135.5, 166, 196.5, 227.5, 258, 288.5, 319, 349.5],
+             'cell_bounds': [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365],
+             },
+            {'table_entry': 'depth_coord',
+             'units': 'm',
+             'coord_vals': [5000., 3000., 2000., 1000.],
+             'cell_bounds': [5000., 3000., 2000., 1000., 0]},
+            {'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:
-        print 'doing:',axis
+        print 'doing:', axis
         axis_id = cmor.axis(**axis)
         axis_ids.append(axis_id)
 
     for var, units, value in (('difvso', 'm2 s-1', 274.),):
-        values = numpy.ones(map(lambda x: len(x["coord_vals"]),axes))*value
+        values = numpy.ones(map(lambda x: len(x["coord_vals"]), axes)) * value
         varid = cmor.variable(var,
                               units,
                               axis_ids,
-                              history = 'variable history',
-                              missing_value = -99
+                              history='variable history',
+                              missing_value=-99
                               )
         cmor.write(varid, values)
 
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_joerg_tim2_clim_02.py b/Test/test_python_joerg_tim2_clim_02.py
index 130bcf0..ddc8d69 100644
--- a/Test/test_python_joerg_tim2_clim_02.py
+++ b/Test/test_python_joerg_tim2_clim_02.py
@@ -2,53 +2,54 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
+               netcdf_file_action=cmor.CMOR_REPLACE_3)
     cmor.dataset_json("Test/common_user_input.json")
- 
+
     table = 'CMIP6_Oclim.json'
     cmor.load_table(table)
-    axes = [ {'table_entry': 'time2',
-              'units': 'days since 1850-01-01 00:00:00',
-              'coord_vals' : [15.5, 45,],
-              'cell_bounds':[[0,31],[31,62]]
-              },
-             {'table_entry': 'depth_coord',
-              'units': 'm',
-              'coord_vals': [5000., 3000., 2000., 1000.],
-              'cell_bounds': [ 5000., 3000., 2000., 1000.,0]},
-             {'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]},
-             ]
-
+    axes = [{'table_entry': 'time2',
+             'units': 'days since 1850-01-01 00:00:00',
+             'coord_vals': [15.5, 45, ],
+             'cell_bounds':[[0, 31], [31, 62]]
+             },
+            {'table_entry': 'depth_coord',
+             'units': 'm',
+             'coord_vals': [5000., 3000., 2000., 1000.],
+             'cell_bounds': [5000., 3000., 2000., 1000., 0]},
+            {'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:
-        print 'doing:',axis
+        print 'doing:', axis
         axis_id = cmor.axis(**axis)
         axis_ids.append(axis_id)
 
     for var, units, value in (('difvso', 'm2 s-1', 274.),):
-        values = numpy.ones(map(lambda x: len(x["coord_vals"]),axes))*value
-        values=values.astype("f")
+        values = numpy.ones(map(lambda x: len(x["coord_vals"]), axes)) * value
+        values = values.astype("f")
         varid = cmor.variable(var,
                               units,
                               axis_ids,
-                              history = 'variable history',
-                              missing_value = -99
+                              history='variable history',
+                              missing_value=-99
                               )
         cmor.write(varid, values)
 
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_max_variables.py b/Test/test_python_max_variables.py
index b30f707..055fd9d 100644
--- a/Test/test_python_max_variables.py
+++ b/Test/test_python_max_variables.py
@@ -1,75 +1,73 @@
-import cmor,numpy
+import cmor
+import numpy
 
 error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-  
+
 error_flag = cmor.dataset_json("Test/common_user_input.json")
 
 # 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)
+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/CMIP6_Amon.json")
-ilat = cmor.axis(  
-    table_entry='latitude',       
-    units='degrees_north',          
-    length=nlat,                   
-    coord_vals=alats,              
-    cell_bounds=bnds_lat)        
+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)      
+ilon = cmor.axis(
+    table_entry='longitude',
+    length=nlon,
+    units='degrees_east',
+    coord_vals=alons,
+    cell_bounds=bnds_lon)
 
-ntimes=600
+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, 993, 992,500,100])
+                     20000, 15000, 10000, 7000, 5000, 3000, 2000, 1000, 999, 998, 997, 996,
+                     995, 994, 993, 992, 500, 100])
 
 
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2030-1-1',  
-    length=ntimes,                
+itim = cmor.axis(
+    table_entry='time',
+    units='months since 2030-1-1',
+    length=ntimes,
     interval='1 month')
 
-ilev = cmor.axis(  
-        table_entry='plev19',       
-        units='Pa',
-        coord_vals=plevs,             
-        cell_bounds=None)
+ilev = cmor.axis(
+    table_entry='plev19',
+    units='Pa',
+    coord_vals=plevs,
+    cell_bounds=None)
 
-  
-for it in range(ntimes):
 
+for it in range(ntimes):
 
-    var3d_ids = cmor.variable(    
-        table_entry='ta',     
+    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], 
+        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.
+    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.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()  
 
+error_flag = cmor.close()
diff --git a/Test/test_python_max_variables_2.py b/Test/test_python_max_variables_2.py
index 0bac817..77e4f8c 100644
--- a/Test/test_python_max_variables_2.py
+++ b/Test/test_python_max_variables_2.py
@@ -1,82 +1,81 @@
-import cmor,numpy
+import cmor
+import numpy
 
 error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-  
+
 error_flag = cmor.dataset_json("Test/common_user_input.json")
-  
+
 
 # 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)
+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/CMIP6_Amon.json")
-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
+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, 993, 992, 500, 100])
+                     20000, 15000, 10000, 7000, 5000, 3000, 2000, 1000, 999, 998, 997, 996,
+                     995, 994, 993, 992, 500, 100])
 
 
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2030-1-1',  
-    length=ntimes,                
+itim = cmor.axis(
+    table_entry='time',
+    units='months since 2030-1-1',
+    length=ntimes,
     interval='1 month')
 
-ilev = cmor.axis(  
-        table_entry='plev19',       
-        units='Pa',
-        coord_vals=plevs,             
-        cell_bounds=None)
+ilev = cmor.axis(
+    table_entry='plev19',
+    units='Pa',
+    coord_vals=plevs,
+    cell_bounds=None)
 
-var3d_ids = cmor.variable(    
-    table_entry='ta',     
-    units='K',           
+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], 
+    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.
+    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) :
+    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
+        print it, fnm
     else:
-        if (it%50)== 0:
+        if (it % 50) == 0:
             fnm = cmor.close(var3d_ids, True, True)
-            print it,fnm
+            print it, fnm
         else:
             ierr = cmor.close(var3d_ids, False, True)
 
 
-  
-error_flag = cmor.close()  
-
+error_flag = cmor.close()
diff --git a/Test/test_python_memory_check.py b/Test/test_python_memory_check.py
index df9a158..5634d2f 100644
--- a/Test/test_python_memory_check.py
+++ b/Test/test_python_memory_check.py
@@ -10,19 +10,20 @@ 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}
+_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
+    # get pseudo file  /proc/<pid>/status
     try:
         t = open(_proc_status)
         v = t.read()
         t.close()
-    except:
+    except BaseException:
         return 0.0  # non-Linux?
      # get VmKey line e.g. 'VmRSS:  9999  kB\n ...'
     i = v.index(VmKey)
@@ -50,55 +51,59 @@ def stacksize(since=0.0):
     '''
     return _VmB('VmStk:') - since
 
+
 import cmor
 import sys
 
-def memory_usage(fhd,mem=0,res=0,stk=0):
+
+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
+    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.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
     cmor.dataset_json("Test/common_user_input.json")
-    
-    table='CMIP6_Amon.json'
+
+    table = 'CMIP6_Amon.json'
     cmor.load_table(table)
 
     tval = []
-    tbounds=[]
+    tbounds = []
 
     passtime = True
     ntimes = 1200
     for time in range(ntimes):
-        tval.append(15 + time*30)
-        tbounds.append([time*30, (time + 1)*30])
+        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',
-              }
+                  '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]},
-             ]
-              
+                  '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)
@@ -108,21 +113,22 @@ def memory_check():
     mem = 0
     res = 0
     stk = 0
-    memi,resi,stki = memory_usage(sys.stdout)
-    
+    memi, resi, stki = memory_usage(sys.stdout)
+
     for time in range(ntimes):
         a = [275]
         if passtime:
-            tval = [15 + time*30]
-            tbounds = [time*30, (time + 1)*30]
-            cmor.write(varid, [275], time_vals = tval, time_bnds = tbounds)
+            tval = [15 + time * 30]
+            tbounds = [time * 30, (time + 1) * 30]
+            cmor.write(varid, [275], time_vals=tval, time_bnds=tbounds)
         else:
             cmor.write(varid, [275])
-        mem,res,stk = memory_usage(sys.stdout,mem,res,stk)
+        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
index 89abe71..e62c458 100644
--- a/Test/test_python_new_tables.py
+++ b/Test/test_python_new_tables.py
@@ -1,33 +1,47 @@
-import cmor,numpy
+import cmor
+import numpy
 
-ipth="Tables"
+ipth = "Tables"
 cmor.setup(inpath=ipth,
            set_verbosity=cmor.CMOR_NORMAL,
-           netcdf_file_action = cmor.CMOR_REPLACE,
-           logfile = None)
+           netcdf_file_action=cmor.CMOR_REPLACE,
+           logfile=None)
 
 cmor.dataset_json("Test/common_user_input.json")
 
 cmor.load_table("CMIP6_Amon.json")
 
 nlat = 90
-dlat = 180/nlat
+dlat = 180 / nlat
 nlon = 180
-dlon = 360./nlon
+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)
+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)
+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_obs4MIPs.py b/Test/test_python_obs4MIPs.py
index b0b3087..9a473b8 100644
--- a/Test/test_python_obs4MIPs.py
+++ b/Test/test_python_obs4MIPs.py
@@ -1,27 +1,28 @@
 import cmor
 
+
 def test():
-    cmor.setup(inpath='Tables',netcdf_file_action=cmor.CMOR_REPLACE)
+    cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
 
     cmor.dataset_json("Test/common_user_input.json")
 
-    table='CMIP6_Amon.json'
+    table = 'CMIP6_Amon.json'
 
     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]}
-             ]
-              
+    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)
@@ -29,11 +30,10 @@ def test():
 
     varid = cmor.variable('ts', 'K', axis_ids)
 
-    cmor.write(varid, [275], time_vals = [15], time_bnds = [ [0,30] ])
+    cmor.write(varid, [275], time_vals=[15], time_bnds=[[0, 30]])
 
     cmor.close(varid)
 
 
-
 if __name__ == '__main__':
     test()
diff --git a/Test/test_python_open_close_cmor_multiple.py b/Test/test_python_open_close_cmor_multiple.py
index 0c109e2..3102c96 100644
--- a/Test/test_python_open_close_cmor_multiple.py
+++ b/Test/test_python_open_close_cmor_multiple.py
@@ -1,55 +1,107 @@
 
-import cmor,numpy
-
-
-
-vars ={'hfls' : ['W.m-2',25.,40.],'tas':['K',25,268.15],'clt':['%',10000.,0.],'ta':['K',25,273.15]}
+import cmor
+import numpy
+
+
+vars = {
+    'hfls': [
+        'W.m-2',
+        25.,
+        40.],
+    'tas': [
+        'K',
+        25,
+        268.15],
+    'clt': [
+        '%',
+        10000.,
+        0.],
+    'ta': [
+        'K',
+        25,
+        273.15]}
 
 
 nlat = 90
-dlat = 180/nlat
+dlat = 180 / nlat
 nlon = 180
-dlon = 360./nlon
+dlon = 360. / nlon
 nlev = 19
 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)
+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']
+tvars = ['hfls', 'tas', 'clt', 'ta']
 
-cmor.setup(inpath='Tables',netcdf_file_action=cmor.CMOR_REPLACE)
+cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
 cmor.dataset_json("Test/common_user_input.json")
-table='CMIP6_Amon.json'
+table = 'CMIP6_Amon.json'
 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='plev19',coord_vals=numpy.array([1000.,925,850,700,600,500,400,300,250,200,150,100,70,50,30,20,10,5,1]),units='hPa')
-    
-    if var!='ta':
-        axes = [itim,ilat,ilon]
-        data = numpy.random.random((ntimes,nlat,nlon))*vars[var][1]+vars[var][2]
+    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='plev19',
+                     coord_vals=numpy.array([1000.,
+                                             925,
+                                             850,
+                                             700,
+                                             600,
+                                             500,
+                                             400,
+                                             300,
+                                             250,
+                                             200,
+                                             150,
+                                             100,
+                                             70,
+                                             50,
+                                             30,
+                                             20,
+                                             10,
+                                             5,
+                                             1]),
+                     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
+        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_polar_stereo.py b/Test/test_python_polar_stereo.py
index 0cb06c3..93afefe 100644
--- a/Test/test_python_polar_stereo.py
+++ b/Test/test_python_polar_stereo.py
@@ -7,78 +7,80 @@ import os
 
 # Create some empty arrays
 # -------------------------
-myaxes=numpy.zeros(9,dtype='i')
-myaxes2=numpy.zeros(9,dtype='i')
-myvars=numpy.zeros(9,dtype='i')
+myaxes = numpy.zeros(9, dtype='i')
+myaxes2 = numpy.zeros(9, dtype='i')
+myvars = numpy.zeros(9, dtype='i')
 
 # Initialize CMOR
 # -------------------
-cmor.setup(inpath="Tables",set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE_4 );
+cmor.setup(
+    inpath="Tables",
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE_4)
 cmor.dataset_json("Test/common_user_input.json")
 
-tables=[]
+tables = []
 grid_table = cmor.load_table("CMIP6_grids.json")
 tables.append(grid_table)
 
-t='CMIP6_fx.json'
+t = 'CMIP6_fx.json'
 te = 'orog'
-u='m'
+u = 'm'
 
 tables.append(cmor.load_table("%s" % t))
-print 'Tables ids:',tables
+print 'Tables ids:', tables
 
 cmor.set_table(tables[0])
 
-f=cdms2.open("~/Downloads/orog_GIS_LGGE_ELMER2_asmb.nc")
-fg=cdms2.open("~/Downloads/Greenland_5km_v1.1.nc")
-x=f['x'][:]
-y=f['y'][:]
-lon_coords=fg['lon'][0,:]
-lat_coords=fg['lat'][0,:]
+f = cdms2.open("~/Downloads/orog_GIS_LGGE_ELMER2_asmb.nc")
+fg = cdms2.open("~/Downloads/Greenland_5km_v1.1.nc")
+x = f['x'][:]
+y = f['y'][:]
+lon_coords = fg['lon'][0, :]
+lat_coords = fg['lat'][0, :]
 
 
+myaxes[0] = cmor.axis(table_entry='y',
+                      units='m',
+                      coord_vals=y)
+myaxes[1] = cmor.axis(table_entry='x',
+                      units='m',
+                      coord_vals=x)
 
-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)
 
-grid_id = cmor.grid(axis_ids = myaxes[:2], 
-                    latitude = lat_coords, 
-                    longitude = lon_coords) 
-
-print 'got grid_id:',grid_id
+print 'got grid_id:', grid_id
 myaxes[2] = grid_id
 
 mapnm = 'polar_stereographic'
-params = [ "standard_parallel",
-           "latitude_of_projection_origin",
-           "false_easting",
-           "false_northing",
-           "straight_vertical_longitude_from_pole",
-           "scale_factor_at_projection_origin"]
-
-punits = ["","","","","","" ]
-pvalues = [71.,90.,0.,0.,-39., 1. ]
+params = ["standard_parallel",
+          "latitude_of_projection_origin",
+          "false_easting",
+          "false_northing",
+          "straight_vertical_longitude_from_pole",
+          "scale_factor_at_projection_origin"]
+
+punits = ["", "", "", "", "", ""]
+pvalues = [71., 90., 0., 0., -39., 1.]
 cmor.set_grid_mapping(grid_id=myaxes[2],
-                      mapping_name = mapnm,
-                      parameter_names = params,
-                      parameter_values = pvalues,
-                      parameter_units = punits)
+                      mapping_name=mapnm,
+                      parameter_names=params,
+                      parameter_values=pvalues,
+                      parameter_units=punits)
 
 cmor.set_table(tables[1])
 pass_axes = [myaxes[2]]
 
-data = f['orog'][0,:]
-myvars[0] = cmor.variable( table_entry = te,
-                           units = u,
-                           axis_ids = pass_axes,
-                           missing_value = data.missing,
-                           history = '',
-                           comment = ''
-                           )
+data = f['orog'][0, :]
+myvars[0] = cmor.variable(table_entry=te,
+                          units=u,
+                          axis_ids=pass_axes,
+                          missing_value=data.missing,
+                          history='',
+                          comment=''
+                          )
 cmor.write(myvars[0], data)
 
 cmor.close()
diff --git a/Test/test_python_region.py b/Test/test_python_region.py
index 1058f88..b7d0afb 100644
--- a/Test/test_python_region.py
+++ b/Test/test_python_region.py
@@ -2,30 +2,46 @@ import cmor
 
 import numpy
 
-cmor.setup("Test",netcdf_file_action=cmor.CMOR_REPLACE)
+cmor.setup("Test", netcdf_file_action=cmor.CMOR_REPLACE)
 
 cmor.dataset_json("Test/common_user_input.json")
 
 cmor.load_table("Tables/CMIP6_Omon.json")
 
 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)
+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))
+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]))
+var = cmor.variable(table_entry='htovgyre', units='W',
+                    axis_ids=numpy.array([itim, ireg, ilat]))
 
-data = numpy.random.random((ntime,nreg,nlat))*3.E14
+data = numpy.random.random((ntime, nreg, nlat)) * 3.E14
 
-cmor.write(var,data)
+cmor.write(var, data)
 cmor.close()
diff --git a/Test/test_python_reverted_lats.py b/Test/test_python_reverted_lats.py
index 9f636f7..ae9f340 100644
--- a/Test/test_python_reverted_lats.py
+++ b/Test/test_python_reverted_lats.py
@@ -1,62 +1,87 @@
-import cmor,numpy
+import cmor
+import numpy
 
 nlat = 10
-dlat = 180./nlat
+dlat = 180. / nlat
 nlon = 20
-dlon = 360./nlon
+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)
+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.setup(inpath='.', netcdf_file_action=cmor.CMOR_REPLACE)
 cmor.dataset_json("Test/common_user_input.json")
-table='Tables/CMIP6_Amon.json'
+table = 'Tables/CMIP6_Amon.json'
 cmor.load_table(table)
 
-data = lats[:,numpy.newaxis]*lons[numpy.newaxis,:]
+data = lats[:, numpy.newaxis] * lons[numpy.newaxis, :]
 
-data = ( data + 29000 ) / 750. + 233.2
+data = (data + 29000) / 750. + 233.2
 
 
-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')
+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)
+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)
+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()
+# 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()
+# 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_singleton_anywhere_in_table_def.py b/Test/test_python_singleton_anywhere_in_table_def.py
index 490c752..ee8cb43 100644
--- a/Test/test_python_singleton_anywhere_in_table_def.py
+++ b/Test/test_python_singleton_anywhere_in_table_def.py
@@ -1,114 +1,119 @@
 #!/usr/bin/env python
 
-from test_python_common import * # common subroutines
+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':
+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')
+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.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.)",
+    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="piControlwithism",branch_time=18336.33)
+    parent_experiment_id="piControlwithism", branch_time=18336.33)
 
-tables=[]
+tables = []
 a = cmor.load_table("/git/cmip5-cmor-tables/Tables/CMIP6_grids")
 tables.append(a)
 
-t='CMIP6_Omon.json'
+t = 'CMIP6_Omon.json'
 te = 'dissic'
-u='mol m-3'
-time='time'
-ts='month'
-tscl=1.
+u = 'mol m-3'
+time = 'time'
+ts = 'month'
+tscl = 1.
 
-t='CMIP5_cfSites'
+t = 'CMIP5_cfSites'
 te = 'pr'
-u= 'kg m-2 s-1'
-time='time1'
-ts='days'
-tscl=2.e-2
+u = 'kg m-2 s-1'
+time = 'time1'
+ts = 'days'
+tscl = 2.e-2
 
 tables.append(cmor.load_table("/git/cmip5-cmor-tables/Tables/%s" % t))
-print 'Tables ids:',tables
+print 'Tables ids:', tables
 
 cmor.set_table(tables[0])
 
-x,y,lon_coords,lat_coords,lon_vertices,lat_vertices = gen_irreg_grid(lon,lat)
+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)
 
-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
+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. ]
+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)
+                      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 = '%s since 1980' % ts)
+myaxes[3] = cmor.axis(table_entry=time,
+                      units='%s since 1980' % ts)
 
-pass_axes = [myaxes[3],myaxes[2]]
+pass_axes = [myaxes[3], myaxes[2]]
 
-myvars[0] = cmor.variable( table_entry = te,
-                           units = u,
-                           axis_ids = pass_axes,
-                           history = 'no history',
-                           comment = 'no future'
-                           )
+myvars[0] = cmor.variable(table_entry=te,
+                          units=u,
+                          axis_ids=pass_axes,
+                          history='no history',
+                          comment='no future'
+                          )
 
-ntimes=2
+ntimes = 2
 for i in range(ntimes):
-    data2d = read_2d_input_files(i, varin2d[0], lat,lon)*1.E-6
-    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]*tscl,time_bnds=tscl*bnds_time[2*i:2*i+2])
+    data2d = read_2d_input_files(i, varin2d[0], lat, lon) * 1.E-6
+    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] * tscl,
+               time_bnds=tscl * bnds_time[2 * i:2 * i + 2])
     print 'wrote'
 cmor.close()
diff --git a/Test/test_python_singleton_string.py b/Test/test_python_singleton_string.py
index ec8b4c8..a9eb027 100644
--- a/Test/test_python_singleton_string.py
+++ b/Test/test_python_singleton_string.py
@@ -1,97 +1,102 @@
 #!/usr/bin/env python
 
-from test_python_common import * # common subroutines
+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':
+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')
+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.setup(
+    inpath=ipth,
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
 cmor.dataset_json("Test/common_user_input.json")
 
-tables=[]
+tables = []
 a = cmor.load_table("Tables/CMIP6_grids.json")
 tables.append(a)
 
-t='CMIP6_Omon.json'
+t = 'CMIP6_Omon.json'
 te = 'dissic'
-u='mol m-3'
-time='time'
-ts='month'
-tscl=1.
+u = 'mol m-3'
+time = 'time'
+ts = 'month'
+tscl = 1.
 
-t='CMIP6_Lmon.json'
+t = 'CMIP6_Lmon.json'
 te = 'baresoilFrac'
-u= ''
-time='time'
-ts='months'
-tscl=3.5e-4
+u = ''
+time = 'time'
+ts = 'months'
+tscl = 3.5e-4
 
 tables.append(cmor.load_table("Tables/%s" % t))
-print 'Tables ids:',tables
+print 'Tables ids:', tables
 
 cmor.set_table(tables[0])
 
-x,y,lon_coords,lat_coords,lon_vertices,lat_vertices = gen_irreg_grid(lon,lat)
+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)
 
-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
+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. ]
+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)
+                      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 = '%s since 1980' % ts)
+myaxes[3] = cmor.axis(table_entry=time,
+                      units='%s since 1980' % ts)
 
-pass_axes = [myaxes[3],myaxes[2]]
+pass_axes = [myaxes[3], myaxes[2]]
 
-myvars[0] = cmor.variable( table_entry = te,
-                           units = u,
-                           axis_ids = pass_axes,
-                           history = 'no history',
-                           comment = 'no future'
-                           )
+myvars[0] = cmor.variable(table_entry=te,
+                          units=u,
+                          axis_ids=pass_axes,
+                          history='no history',
+                          comment='no future'
+                          )
 
-ntimes=2
+ntimes = 2
 for i in range(ntimes):
-    data2d = read_2d_input_files(i, varin2d[0], lat,lon)*1.E-6
-    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])
+    data2d = read_2d_input_files(i, varin2d[0], lat, lon) * 1.E-6
+    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])
     print 'wrote'
 cmor.close()
diff --git a/Test/test_python_stephanie_6hrPlev_minutes.py b/Test/test_python_stephanie_6hrPlev_minutes.py
index 74d7cc3..c2e57a4 100644
--- a/Test/test_python_stephanie_6hrPlev_minutes.py
+++ b/Test/test_python_stephanie_6hrPlev_minutes.py
@@ -2,57 +2,59 @@
 import cmor
 import numpy
 
+
 def main():
-    
+
     cmor.setup(inpath='/git/cmip5-cmor-tables/Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
+               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',
-                 parent_experiment_rip = 'N/A',
-                 branch_time = 0,
-                 contact = 'brian clough')
- 
+                 institute_id='ukmo',
+                 model_id='HadCM3',
+                 history='some global history',
+                 forcing='N/A',
+                 parent_experiment_id='N/A',
+                 parent_experiment_rip='N/A',
+                 branch_time=0,
+                 contact='brian clough')
+
     table = 'CMIP5_6hrPlev'
     cmor.load_table(table)
-    axes = [ {'table_entry': 'time1',
-              'units': 'hours since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'plev3',
-              'units': 'Pa',
-              'coord_vals': [100000., 92500., 85000., 70000., 60000., 50000., 40000., 30000., 25000., 20000., 15000., 10000., 7000., 5000., 3000., 2000., 1000.]},
-             {'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]},
-             ]
-
+    axes = [{'table_entry': 'time1',
+             'units': 'hours since 2000-01-01 00:00:00',
+             },
+            {'table_entry': 'plev3',
+             'units': 'Pa',
+             'coord_vals': [100000., 92500., 85000., 70000., 60000., 50000., 40000., 30000., 25000., 20000., 15000., 10000., 7000., 5000., 3000., 2000., 1000.]},
+            {'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:
-        print 'doing:',axis
+        print 'doing:', axis
         axis_id = cmor.axis(**axis)
         axis_ids.append(axis_id)
 
     for var, units, value in (('ta', 'K', 274), ('ua', 'm s-1', 10)):
-        values = numpy.array([value,]*len(axes[1]['coord_vals']), numpy.float32)
+        values = numpy.array([value, ] *
+                             len(axes[1]['coord_vals']), numpy.float32)
         varid = cmor.variable(var,
                               units,
                               axis_ids,
-                              history = 'variable history',
-                              missing_value = -99
+                              history='variable history',
+                              missing_value=-99
                               )
-        cmor.write(varid, values, time_vals = [0], time_bnds = [ [0,6] ])
+        cmor.write(varid, values, time_vals=[0], time_bnds=[[0, 6]])
 
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_python_toomany_tables.py b/Test/test_python_toomany_tables.py
new file mode 100644
index 0000000..6db8a6b
--- /dev/null
+++ b/Test/test_python_toomany_tables.py
@@ -0,0 +1,123 @@
+# If this example is not executed from the directory containing the
+# CMOR code, please first complete the following steps:
+#
+#   1. In any directory, create 'Tables/', 'Test/' and 'CMIP6/' directories.
+#
+#   2. Download
+#      https://github.com/PCMDI/cmor/blob/master/TestTables/CMIP6_Omon.json
+#      and https://github.com/PCMDI/cmor/blob/master/TestTables/CMIP6_CV.json
+#      to the 'Tables/' directory.
+#
+#   3. Download
+#      https://github.com/PCMDI/cmor/blob/master/Test/<filename>.json
+#      to the 'Test/' directory.
+
+import cmor
+import numpy
+import unittest
+import sys
+import os
+import tempfile
+
+
+class TestCase(unittest.TestCase):
+
+    def testCMIP6(self):
+
+        # ------------------------------------------------------
+        # Copy stdout and stderr file descriptor for cmor output
+        # ------------------------------------------------------
+        newstdout = os.dup(1)
+        newstderr = os.dup(2)
+        # --------------
+        # Create tmpfile
+        # --------------
+        tmpfile = tempfile.mkstemp()
+        os.dup2(tmpfile[0], 1)
+        os.dup2(tmpfile[0], 2)
+        os.close(tmpfile[0])
+        # -------------------------------------------
+        # Try to call cmor with a bad institution_ID
+        # -------------------------------------------
+        try:
+            cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE)
+            cmor.dataset_json("Test/common_user_input.json")
+            cmor.set_cur_dataset_attribute("experiment_id", "ssp434")
+            cmor.set_cur_dataset_attribute(
+                "parent_experiment_id", "historical")
+            cmor.set_cur_dataset_attribute("parent_activity_id", "CMIP")
+            cmor.set_cur_dataset_attribute("activity_id", "ScenarioMIP")
+            cmor.set_cur_dataset_attribute("source_type", "AOGCM")
+            cmor.set_cur_dataset_attribute("sub_experiment_id", "none")
+            cmor.set_cur_dataset_attribute(
+                "parent_variant_label", "r11i123p4556f333")
+            cmor.set_cur_dataset_attribute("parent_source_id", "child")
+            cmor.set_cur_dataset_attribute("parent_mip_era", "CMIP6")
+
+            # ------------------------------------------
+            # load Omon table and create masso variable
+            # ------------------------------------------
+            cmor.load_table("CMIP6_Omon.json")
+            cmor.load_table("CMIP6_Amon.json")
+            cmor.load_table("CMIP6_6hrPlev.json")
+            cmor.load_table("CMIP6_6hrPlevPt.json")
+            cmor.load_table("CMIP6_AERday.json")
+            cmor.load_table("CMIP6_AERfx.json")
+            cmor.load_table("CMIP6_AERhr.json")
+            cmor.load_table("CMIP6_AERmon.json")
+            cmor.load_table("CMIP6_AERmonZ.json")
+            cmor.load_table("CMIP6_Amon.json")
+            cmor.load_table("CMIP6_CFday.json")
+            cmor.load_table("CMIP6_CFmon.json")
+            cmor.load_table("CMIP6_CFsubhr.json")
+            cmor.load_table("CMIP6_CFsubhrOff.json")
+            cmor.load_table("CMIP6_day.json")
+            cmor.load_table("CMIP6_E1hrClimMon.json")
+            cmor.load_table("CMIP6_E1hr.json")
+            cmor.load_table("CMIP6_E3hr.json")
+            cmor.load_table("CMIP6_E6hrZ.json")
+            cmor.load_table("CMIP6_EdayZ.json")
+            cmor.load_table("CMIP6_Efx.json")
+            cmor.load_table("CMIP6_EmonZ.json")
+            cmor.load_table("CMIP6_Esubhr.json")
+            cmor.load_table("CMIP6_Eyr.json")
+            cmor.load_table("CMIP6_fx.json")
+            cmor.load_table("CMIP6_grids.json")
+            cmor.load_table("CMIP6_IfxAnt.json")
+            cmor.load_table("CMIP6_IfxGre.json")
+            cmor.load_table("CMIP6_ImonAnt.json")
+            cmor.load_table("CMIP6_ImonGre.json")
+            cmor.load_table("CMIP6_IyrAnt.json")
+            cmor.load_table("CMIP6_IyrGre.json")
+            cmor.load_table("CMIP6_LImon.json")
+            cmor.load_table("CMIP6_Lmon.json")
+            cmor.load_table("CMIP6_Oclim.json")
+            cmor.load_table("CMIP6_Oday.json")
+            cmor.load_table("CMIP6_Odec.json")
+            cmor.load_table("CMIP6_Ofx.json")
+            cmor.load_table("CMIP6_Omon.json")
+            cmor.load_table("CMIP6_Oyr.json")
+            cmor.load_table("CMIP6_SIday.json")
+            cmor.load_table("CMIP6_SImon.json")
+        except BaseException:
+            pass
+        os.dup2(newstdout, 1)
+        os.dup2(newstderr, 2)
+        sys.stdout = os.fdopen(newstdout, 'w', 0)
+        sys.stderr = os.fdopen(newstderr, 'w', 0)
+        f = open(tmpfile[1], 'r')
+        lines = f.readlines()
+        for line in lines:
+            if line.find('Error:') != -1:
+                self.assertIn('30', line.strip())
+                break
+        f.close()
+        os.unlink(tmpfile[1])
+
+    def tearDown(self):
+        import shutil
+        shutil.rmtree("./CMIP6")
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Test/test_python_user_interface_00.py b/Test/test_python_user_interface_00.py
index 2233d6a..9b7bc91 100644
--- a/Test/test_python_user_interface_00.py
+++ b/Test/test_python_user_interface_00.py
@@ -1,97 +1,132 @@
-from test_python_common import * # common subroutines
+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':
+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')
+myaxes = numpy.zeros(9, dtype='i')
+myaxes2 = numpy.zeros(9, dtype='i')
+myvars = numpy.zeros(9, dtype='i')
 
 
-cmor.setup(inpath="Tables",set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
-#cmor.dataset_json("Test/common_user_input.json")
+cmor.setup(
+    inpath="Tables",
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
+# cmor.dataset_json("Test/common_user_input.json")
 cmor.dataset_json("Test/common_user_input.json")
 
-tables=[]
+tables = []
 a = cmor.load_table(os.path.join("CMIP6_Omon.json"))
 tables.append(a)
 tables.append(cmor.load_table("CMIP6_Amon.json"))
-print 'Tables ids:',tables
+print 'Tables ids:', tables
 
-axes=[]
-id="time"
-units="months since 1980"
-print 'time bounds:',bnds_time
+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="plev19"
-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)
+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 = "plev19"
+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)
+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")
+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])
+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])
+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)
+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')
+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 */
@@ -100,16 +135,19 @@ 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])
+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)
+    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
index 89efbc1..f28879c 100644
--- a/Test/test_python_user_interface_01.py
+++ b/Test/test_python_user_interface_01.py
@@ -1,78 +1,83 @@
-from test_python_common import * # common subroutines
+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':
+if pth[-1] == 'Test':
     ipth = opth = '.'
 else:
     ipth = opth = 'Tables'
 
 
-myaxes=numpy.zeros(9,dtype='i')
-myaxes2=numpy.zeros(9,dtype='i')
-myvars=numpy.zeros(9,dtype='i')
+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.setup(
+    inpath=ipth,
+    set_verbosity=cmor.CMOR_NORMAL,
+    netcdf_file_action=cmor.CMOR_REPLACE,
+    exit_control=cmor.CMOR_EXIT_ON_MAJOR)
 cmor.dataset_json("Test/common_user_input.json")
 
-tables=[]
+tables = []
 a = cmor.load_table("CMIP6_grids.json")
 tables.append(a)
 tables.append(cmor.load_table("CMIP6_Amon.json"))
-print 'Tables ids:',tables
+print 'Tables ids:', tables
 
 cmor.set_table(tables[0])
 
-x,y,lon_coords,lat_coords,lon_vertices,lat_vertices = gen_irreg_grid(lon,lat)
+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)
 
-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
+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. ]
+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)
+                      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'
-                           )
+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,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])
+    data2d = read_2d_input_files(i, varin2d[0], lat, lon)
+    print 'writing time: ', i, 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
index 4db5ce3..650eacd 100644
--- a/Test/test_python_user_interface_03.py
+++ b/Test/test_python_user_interface_03.py
@@ -6,83 +6,102 @@ today = strftime("%Y%m%d", localtime())
 print 'Done importing'
 try:
     import cdms2
-except:
+except BaseException:
     print "This test code needs cdms2 interface for i/0"
     import sys
     sys.exit()
 import os
 
-dpth="data"
-myaxes=numpy.zeros(9,dtype='i')
-myaxes2=numpy.zeros(9,dtype='i')
-myvars=numpy.zeros(9,dtype='i')
+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))
+
+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
+        s = f(var, order=order)
+    s.units = f[var].units
+    s.id = var
     f.close()
-    return s,ok
+    return s, ok
+
 
 def prep_var(data):
     rk = data.rank()
-    axes=[]
+    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())
+            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())
+            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]
+            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")
+    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="Tables",set_verbosity=cmor.CMOR_QUIET, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
+    cmor.setup(
+        inpath="Tables",
+        set_verbosity=cmor.CMOR_QUIET,
+        netcdf_file_action=cmor.CMOR_REPLACE,
+        exit_control=cmor.CMOR_EXIT_ON_MAJOR)
     cmor.dataset_json("Test/common_user_input.json")
-    
-    tables=[]
+
+    tables = []
     a = cmor.load_table("CMIP6_Omon.json")
     tables.append(a)
     tables.append(cmor.load_table("CMIP6_Amon.json"))
     return
 
 
-for var in ['tas',]:
-    print 'Testing var:',var
-    orders = ['tyx...','txy...','ytx...','yxt...','xyt...','xty...',]
+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)
+        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.write(var_id, df)
         cmor.close()
 #        fn = "CMIP6/CMIP/CSIRO-BOM/NICAM/piControl/r1i1p1f1/Amon/%s/gn/v%s/%s_Amon_piControl_NICAM_r1i1p1f1_gn_197901-199605.nc" %(var,today,var)
-        fn = "CMIP6/ISMIP6/PCMDI/PCMDI-test-1-0/piControl-withism/r11i1p1f1/Amon/%s/gr/v%s/%s_Amon_piControl-withism_PCMDI-test-1-0_r11i1p1f1_gr_197901-199605.nc" %(var,today,var)                                                                                                                               
-        f=cdms2.open(fn)
-        s=f(var)
-        if not numpy.allclose(s,data_ordered):
-            raise "Error reordering: %s"%o
+        fn = "CMIP6/CMIP6/ISMIP6/PCMDI/PCMDI-test-1-0/piControl-withism/r11i1p1f1/Amon/%s/gr/v%s/%s_Amon_piControl-withism_PCMDI-test-1-0_r11i1p1f1_gr_197901-199605.nc" % (
+            var, today, var)
+        f = cdms2.open(fn)
+        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()
+# cmor.close()
 print 'Finito'
diff --git a/Test/test_site_ts.py b/Test/test_site_ts.py
index fe5fccc..188c3d6 100644
--- a/Test/test_site_ts.py
+++ b/Test/test_site_ts.py
@@ -1,31 +1,34 @@
 import cmor
 import numpy
 
+
 def cmor_initialisation():
     cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3,
-               create_subdirectories = 0)
+               netcdf_file_action=cmor.CMOR_REPLACE_3,
+               create_subdirectories=0)
     cmor.dataset_json("Test/common_user_input.json")
 
+
 def setup_data():
-    axes = [ {'table_entry': 'time1',
-              'units': 'days since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'site',
-              'units': '',
-              'coord_vals': [0]},
-             {'table_entry': 'hybrid_height',
-              'units': 'm',
-              'coord_vals': range(2),
-              'cell_bounds': [[x-0.5, x+0.5] for x in range(2)],
-              },
-             ]
+    axes = [{'table_entry': 'time1',
+             'units': 'days since 2000-01-01 00:00:00',
+             },
+            {'table_entry': 'site',
+             'units': '',
+             'coord_vals': [0]},
+            {'table_entry': 'hybrid_height',
+             'units': 'm',
+             'coord_vals': range(2),
+             'cell_bounds': [[x - 0.5, x + 0.5] for x in range(2)],
+             },
+            ]
 
     values = numpy.array([0.5, 0.5], numpy.float32)
     return values, axes
 
+
 def cmor_define_and_write(values, axes):
-    table = 'CMIP6_cfSites.json'
+    table = 'CMIP6_CFsubhr.json'
     cmor.load_table(table)
 
     axis_ids = list()
@@ -34,34 +37,34 @@ def cmor_define_and_write(values, axes):
         axis_ids.append(axis_id)
 
     igrid = cmor.grid([axis_ids[1]], [0.], [0.])
-    cmor.zfactor(axis_ids[2], 'b', axis_ids = [axis_ids[2]],
-                 zfactor_values = range(2),
-                 zfactor_bounds = [[x-0.5, x+0.5] for x in range(2)])
+    cmor.zfactor(axis_ids[2], 'b', axis_ids=[axis_ids[2]],
+                 zfactor_values=range(2),
+                 zfactor_bounds=[[x - 0.5, x + 0.5] for x in range(2)])
 
-    cmor.zfactor(axis_ids[2], 'orog', 'm', axis_ids = [igrid],
-                 zfactor_values = [0])
+    cmor.zfactor(axis_ids[2], 'orog', 'm', axis_ids=[igrid],
+                 zfactor_values=[0])
 
     ids_for_var = [axis_ids[0], igrid, axis_ids[2]]
     varid = cmor.variable('tnhus',
                           's-1',
                           ids_for_var,
-                          history = 'variable history',
-                          missing_value = -99,
+                          history='variable history',
+                          missing_value=-99,
                           )
 
-    for time in [x * 1800./ 86400 for x in range(48)]:
-        cmor.write(varid, values, time_vals = [time])
+    for time in [x * 1800. / 86400 for x in range(48)]:
+        cmor.write(varid, values, time_vals=[time])
     return varid
 
 
 def main():
-    
+
     cmor_initialisation()
     values, axes = setup_data()
     varid = cmor_define_and_write(values, axes)
-    fname = cmor.close(varid, file_name = True)
+    fname = cmor.close(varid, file_name=True)
+
 
-    
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_sophie.f90 b/Test/test_sophie.f90
index 1333596..eb2a1a4 100644
--- a/Test/test_sophie.f90
+++ b/Test/test_sophie.f90
@@ -172,7 +172,7 @@ program testing
       cell_bounds=bnds_lon)      
 
  ilat2 = cmor_axis(  &
-      table='Tables/CMIP6_fx.json',    &
+      table='Tables/CMIP6_Ofx.json',    &
       table_entry='latitude',       &
       units='degrees_north',        &  
       length=lat,                   &
@@ -181,7 +181,7 @@ program testing
 
  print*, 'Test code: ok calling axis stuff lon',ilat
  ilon2 = cmor_axis(  &
-      table='Tables/CMIP6_fx.json',    &
+      table='Tables/CMIP6_Ofx.json',    &
       table_entry='longitude',      &
       length=lon,                   &
       units='degrees_east',         &
@@ -298,7 +298,7 @@ program testing
  DO m=1,n2d
     print*, 'Test code: var: ',entry2d(m)
     var2d_ids(m) = cmor_variable(    &
-         table='Tables/CMIP6_fx.json',  &
+         table='Tables/CMIP6_Ofx.json',  &
          table_entry=entry2d(m),     & 
          units=units2d(m),           & 
     !     axis_ids=(/ ilon, ilat, itim /), &
diff --git a/Test/test_time_gap_multi_write.py b/Test/test_time_gap_multi_write.py
index 05e2b53..364fcce 100644
--- a/Test/test_time_gap_multi_write.py
+++ b/Test/test_time_gap_multi_write.py
@@ -1,69 +1,83 @@
 import cmor
 import numpy
 
+
 def cmor_initialisation():
     cmor.setup(inpath='/git/cmip5-cmor-tables/Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3,
-               create_subdirectories = 0)
+               netcdf_file_action=cmor.CMOR_REPLACE_3,
+               create_subdirectories=0)
     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',
-                 parent_experiment_rip = 'N/A',
-                 branch_time = 0.,
-                 contact = 'bob',
-                 outpath = 'hadju/test')
+                 institute_id='ukmo',
+                 model_id='HadCM3',
+                 history='some global history',
+                 forcing='N/A',
+                 parent_experiment_id='N/A',
+                 parent_experiment_rip='N/A',
+                 branch_time=0.,
+                 contact='bob',
+                 outpath='hadju/test')
+
 
 def setup_data():
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00'
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees',
-              'coord_vals': [0],
-              'cell_bounds': [-0.5, 0.5]},
-             {'table_entry': 'longitude',
-              'units': 'degrees',
-              'coord_vals': [1],
-              'cell_bounds': [0.5, 1.5]},
-             ]
+    axes = [{'table_entry': 'time',
+             'units': 'days since 2000-01-01 00:00:00'
+             },
+            {'table_entry': 'latitude',
+             'units': 'degrees',
+             'coord_vals': [0],
+             'cell_bounds': [-0.5, 0.5]},
+            {'table_entry': 'longitude',
+             'units': 'degrees',
+             'coord_vals': [1],
+             'cell_bounds': [0.5, 1.5]},
+            ]
 
     values = numpy.array([215.], numpy.float32)
     return values, axes
 
+
 def cmor_define_and_write(values, axes):
     table = 'CMIP5_day'
     cmor.load_table(table)
 
     axis_ids = list()
     for axis in axes:
-       axis_ids.append(cmor.axis(**axis))
-                    
+        axis_ids.append(cmor.axis(**axis))
+
     varid = cmor.variable('rlut',
                           'W m-2',
                           axis_ids,
-                          history = 'variable history',
-                          missing_value = -99,
-                          positive = 'up'
+                          history='variable history',
+                          missing_value=-99,
+                          positive='up'
                           )
 
     for time in (15, 16, 17):
-        cmor.write(varid, values, time_vals = [time], time_bnds = [time - 0.45, time + 0.45])
-    
+        cmor.write(
+            varid,
+            values,
+            time_vals=[time],
+            time_bnds=[
+                time -
+                0.45,
+                time +
+                0.45])
+
+
 def version(cmor):
-   return '%s.%s.%s' % (cmor.CMOR_VERSION_MAJOR,
-                        cmor.CMOR_VERSION_MINOR,
-                        cmor.CMOR_VERSION_PATCH)
-    
+    return '%s.%s.%s' % (cmor.CMOR_VERSION_MAJOR,
+                         cmor.CMOR_VERSION_MINOR,
+                         cmor.CMOR_VERSION_PATCH)
+
+
 def main():
     assert version(cmor) == '2.8.3'
     cmor_initialisation()
     values, axes = setup_data()
     cmor_define_and_write(values, axes)
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_time_gap_single_write1.py b/Test/test_time_gap_single_write1.py
index dc0302f..066caf4 100644
--- a/Test/test_time_gap_single_write1.py
+++ b/Test/test_time_gap_single_write1.py
@@ -1,69 +1,76 @@
 import cmor
 import numpy
 
+
 def cmor_initialisation():
     cmor.setup(inpath='/git/cmip5-cmor-tables/Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3,
-               create_subdirectories = 0)
+               netcdf_file_action=cmor.CMOR_REPLACE_3,
+               create_subdirectories=0)
     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',
-                 parent_experiment_rip = 'N/A',
-                 branch_time = 0.,
-                 contact = 'bob',
-                 outpath = 'hadju/test')
+                 institute_id='ukmo',
+                 model_id='HadCM3',
+                 history='some global history',
+                 forcing='N/A',
+                 parent_experiment_id='N/A',
+                 parent_experiment_rip='N/A',
+                 branch_time=0.,
+                 contact='bob',
+                 outpath='hadju/test')
+
 
 def setup_data():
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00'
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees',
-              'coord_vals': [0],
-              'cell_bounds': [-0.5, 0.5]},
-             {'table_entry': 'longitude',
-              'units': 'degrees',
-              'coord_vals': [1],
-              'cell_bounds': [0.5, 1.5]},
-             ]
+    axes = [{'table_entry': 'time',
+             'units': 'days since 2000-01-01 00:00:00'
+             },
+            {'table_entry': 'latitude',
+             'units': 'degrees',
+             'coord_vals': [0],
+             'cell_bounds': [-0.5, 0.5]},
+            {'table_entry': 'longitude',
+             'units': 'degrees',
+             'coord_vals': [1],
+             'cell_bounds': [0.5, 1.5]},
+            ]
 
     values = numpy.array([215., 215.], numpy.float32)
     return values, axes
 
+
 def cmor_define_and_write(values, axes):
     table = 'CMIP5_day'
     cmor.load_table(table)
 
     axis_ids = list()
     for axis in axes:
-       axis_ids.append(cmor.axis(**axis))
-                    
+        axis_ids.append(cmor.axis(**axis))
+
     varid = cmor.variable('rlut',
                           'W m-2',
                           axis_ids,
-                          history = 'variable history',
-                          missing_value = -99,
-                          positive = 'up'
+                          history='variable history',
+                          missing_value=-99,
+                          positive='up'
                           )
 
     time = [15, 17]
-    cmor.write(varid, values, time_vals = time, time_bnds = [[15 - 0.5, 15 +0.5], [17 - 0.5, 17 + 0.5]])
-    
+    cmor.write(varid, values, time_vals=time, time_bnds=[
+               [15 - 0.5, 15 + 0.5], [17 - 0.5, 17 + 0.5]])
+
+
 def version(cmor):
-   return '%s.%s.%s' % (cmor.CMOR_VERSION_MAJOR,
-                        cmor.CMOR_VERSION_MINOR,
-                        cmor.CMOR_VERSION_PATCH)
-    
+    return '%s.%s.%s' % (cmor.CMOR_VERSION_MAJOR,
+                         cmor.CMOR_VERSION_MINOR,
+                         cmor.CMOR_VERSION_PATCH)
+
+
 def main():
     assert version(cmor) == '2.8.3'
     cmor_initialisation()
     values, axes = setup_data()
     cmor_define_and_write(values, axes)
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/Test/test_time_gap_single_write2.py b/Test/test_time_gap_single_write2.py
index e00420e..2027f64 100644
--- a/Test/test_time_gap_single_write2.py
+++ b/Test/test_time_gap_single_write2.py
@@ -2,69 +2,75 @@
 import cmor
 import numpy
 
+
 def cmor_initialisation():
     cmor.setup(inpath='/git/cmip5-cmor-tables/Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3,
-               create_subdirectories = 0)
+               netcdf_file_action=cmor.CMOR_REPLACE_3,
+               create_subdirectories=0)
     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',
-                 parent_experiment_rip = 'N/A',
-                 branch_time = 0.,
-                 contact = 'bob',
-                 outpath = 'hadju/test')
+                 institute_id='ukmo',
+                 model_id='HadCM3',
+                 history='some global history',
+                 forcing='N/A',
+                 parent_experiment_id='N/A',
+                 parent_experiment_rip='N/A',
+                 branch_time=0.,
+                 contact='bob',
+                 outpath='hadju/test')
+
 
 def setup_data():
-    axes = [ {'table_entry': 'time1',
-              'units': 'days since 2000-01-01 00:00:00'
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees',
-              'coord_vals': [0],
-              'cell_bounds': [-0.5, 0.5]},
-             {'table_entry': 'longitude',
-              'units': 'degrees',
-              'coord_vals': [1],
-              'cell_bounds': [0.5, 1.5]},
-             ]
+    axes = [{'table_entry': 'time1',
+             'units': 'days since 2000-01-01 00:00:00'
+             },
+            {'table_entry': 'latitude',
+             'units': 'degrees',
+             'coord_vals': [0],
+             'cell_bounds': [-0.5, 0.5]},
+            {'table_entry': 'longitude',
+             'units': 'degrees',
+             'coord_vals': [1],
+             'cell_bounds': [0.5, 1.5]},
+            ]
 
     values = numpy.array([215., 215.], numpy.float32)
     return values, axes
 
+
 def cmor_define_and_write(values, axes):
     table = 'CMIP5_3hr'
     cmor.load_table(table)
 
     axis_ids = list()
     for axis in axes:
-       axis_ids.append(cmor.axis(**axis))
-                    
+        axis_ids.append(cmor.axis(**axis))
+
     varid = cmor.variable('tas',
                           'K',
                           axis_ids,
-                          history = 'variable history',
-                          missing_value = -99,
-                          positive = ''
+                          history='variable history',
+                          missing_value=-99,
+                          positive=''
                           )
 
     time = [15, 25]
-    cmor.write(varid, values, time_vals = time)
-    
+    cmor.write(varid, values, time_vals=time)
+
+
 def version(cmor):
-   return '%s.%s.%s' % (cmor.CMOR_VERSION_MAJOR,
-                        cmor.CMOR_VERSION_MINOR,
-                        cmor.CMOR_VERSION_PATCH)
-    
+    return '%s.%s.%s' % (cmor.CMOR_VERSION_MAJOR,
+                         cmor.CMOR_VERSION_MINOR,
+                         cmor.CMOR_VERSION_PATCH)
+
+
 def main():
     assert version(cmor) == '2.8.3'
     cmor_initialisation()
     values, axes = setup_data()
     cmor_define_and_write(values, axes)
     cmor.close()
-    
+
+
 if __name__ == '__main__':
 
     main()
diff --git a/TestTables/CMIP5_3hr b/TestTables/CMIP5_3hr
deleted file mode 100644
index 31e2871..0000000
--- a/TestTables/CMIP5_3hr
+++ /dev/null
@@ -1,814 +0,0 @@
-table_id: Table 3hr
-modeling_realm: atmos
-
-frequency: 3hr
-
-cmor_version: 2.5.0 ! minimum 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:   12 November 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 parent_experiment_rip branch_time contact institute_id ! 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 hindcast initialized in year 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: '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:  0.125000     ! 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.0         
-valid_max:        360.0 
-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.0         
-valid_max:        90.0 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-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: time1
-!============
-!----------------------------------
-! 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: no
-!----------------------------------
-!
-
-
-!============
-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.0         
-valid_max:        10.0 
-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.0         
-valid_max:        30.0 
-stored_direction: increasing
-type:             double
-value:            10.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: sdepth1 
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    depth
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         down         ! up or down (default: undeclared)
-long_name:        depth
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         depth
-valid_min:        0.0         
-valid_max:        0.2 
-stored_direction: increasing
-type:             double
-value:            0.05            ! of scalar (singleton) dimension 
-bounds_values:    0.0 0.1    ! of scalar (singleton) dimension bounds
-must_have_bounds: yes
-!----------------------------------
-!
-
-!============
-variable_entry:    pr
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time:mean
-cell_measures:     area: areacella
-long_name:         Precipitation
-comment:           at surface; includes both liquid and solid phases.  This is the 3-hour mean precipitation flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          pr
-type:              real
-valid_min:         0
-valid_max:         0.001254
-ok_min_mean_abs:   2.156e-05
-ok_max_mean_abs:   3.215e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    tas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Air Temperature
-comment:           near-surface (usually, 2 meter) air temperature, sampled synoptically.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1 height2m
-out_name:          tas
-type:              real
-valid_min:         180.6
-valid_max:         325.7
-ok_min_mean_abs:   273.5
-ok_max_mean_abs:   281.7
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upward Latent Heat Flux
-comment:           This is the 3-hour mean flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfls
-type:              real
-positive:          up
-valid_min:         -76.77
-valid_max:         790.7
-ok_min_mean_abs:   50.39
-ok_max_mean_abs:   73.2
-!----------------------------------
-!
-
-!============
-variable_entry:    hfss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_sensible_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upward Sensible Heat Flux
-comment:           This is the 3-hour mean flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfss
-type:              real
-positive:          up
-valid_min:         -264.5
-valid_max:         844.8
-ok_min_mean_abs:   10.7
-ok_max_mean_abs:   34.84
-!----------------------------------
-!
-
-!============
-variable_entry:    rlds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Longwave Radiation
-comment:           This is the 3-hour mean flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlds
-type:              real
-positive:          down
-valid_min:         30.71
-valid_max:         520.5
-ok_min_mean_abs:   271.2
-ok_max_mean_abs:   323.6
-!----------------------------------
-!
-
-!============
-variable_entry:    rlus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Longwave Radiation
-comment:           This is the 3-hour mean flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlus
-type:              real
-positive:          up
-valid_min:         43.75
-valid_max:         658
-ok_min_mean_abs:   331.1
-ok_max_mean_abs:   369.9
-!----------------------------------
-!
-
-!============
-variable_entry:    rsds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Shortwave Radiation
-comment:           This is the 3-hour mean flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsds
-type:              real
-positive:          down
-valid_min:         -0.002946
-valid_max:         524.4
-ok_min_mean_abs:   143.9
-ok_max_mean_abs:   181.6
-!----------------------------------
-!
-
-!============
-variable_entry:    rsus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Shortwave Radiation
-comment:           This is the 3-hour mean flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsus
-type:              real
-positive:          up
-valid_min:         -0.006589
-valid_max:         422.2
-ok_min_mean_abs:   26.22
-ok_max_mean_abs:   43.77
-!----------------------------------
-!
-
-!============
-variable_entry:    uas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     eastward_wind
-units:             m s-1
-cell_methods:      time: point
-long_name:         Eastward Near-Surface Wind Speed
-comment:           sampled synoptically.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1 height2m
-out_name:          uas
-type:              real
-valid_min:         -19.01
-valid_max:         18.68
-ok_min_mean_abs:   1.668
-ok_max_mean_abs:   4.106
-!----------------------------------
-!
-
-!============
-variable_entry:    vas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_wind
-units:             m s-1
-cell_methods:      time: point
-long_name:         Northward Near-Surface Wind Speed
-comment:           sampled synoptically.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1 height2m
-out_name:          vas
-type:              real
-valid_min:         -18.04
-valid_max:         22.84
-ok_min_mean_abs:   1.065
-ok_max_mean_abs:   2.678
-!----------------------------------
-!
-
-!============
-variable_entry:    huss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Near-Surface Specific Humidity
-comment:           near-surface (usually 2 m) specific humidity, sampled synoptically.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1 height2m
-out_name:          huss
-type:              real
-valid_min:         -7.21e-06
-valid_max:         0.02992
-ok_min_mean_abs:   0.006391
-ok_max_mean_abs:   0.008749
-!----------------------------------
-!
-
-!============
-variable_entry:    mrsos
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     moisture_content_of_soil_layer
-units:             kg m-2
-cell_methods:      time: point area: mean where land
-cell_measures:     area: areacella
-long_name:         Moisture in Upper 0.1 m of Soil Column
-comment:           Compute the mass of water in all phases in the upper 0.1 meters of soil.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1 sdepth1
-out_name:          mrsos
-type:              real
-valid_min:         -2.008
-valid_max:         146.5
-ok_min_mean_abs:   -35.89
-ok_max_mean_abs:   123.3
-!----------------------------------
-!
-
-!============
-variable_entry:    tslsi
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_temperature
-units:             K
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:          Surface Temperature Where Land or Sea Ice
-comment:           ""skin"" temperature of all surfaces except open ocean, sampled synoptically.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          tslsi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tso
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_surface_temperature
-units:             K
-cell_methods:      time: point area: mean where sea
-cell_measures:     area: areacella
-long_name:         Sea Surface Temperature
-comment:           temperature of surface of open ocean, sampled synoptically.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          tso
-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
-cell_measures:     area: areacella
-long_name:         Convective Precipitation
-comment:           at surface.  This is a 3-hour mean convective precipitation flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prc
-type:              real
-valid_min:         0
-valid_max:         0.0006323
-ok_min_mean_abs:   -2.528e-06
-ok_max_mean_abs:   3.209e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    prsn
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     snowfall_flux
-units:             kg m-2 s-1
-cell_methods:      time:mean
-cell_measures:     area: areacella
-long_name:         Snowfall Flux
-comment:           at surface.  Includes all forms of precipitating solid phase of water.  This is the 3-hour mean snowfall flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prsn
-type:              real
-valid_min:         0
-valid_max:         0.0002987
-ok_min_mean_abs:   1.449e-06
-ok_max_mean_abs:   6.11e-06
-!----------------------------------
-!
-
-!============
-variable_entry:    mrro
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     runoff_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Total Runoff
-comment:           compute 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, averaged over the 3-hour interval.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          mrro
-type:              real
-valid_min:         -0.0002019
-valid_max:         0.001065
-ok_min_mean_abs:   -6.668e-06
-ok_max_mean_abs:   1.874e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    rldscs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_longwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Clear-Sky Longwave Radiation
-comment:           This is a 3-hour mean flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rldscs
-type:              real
-positive:          down
-valid_min:         33.55
-valid_max:         543.6
-ok_min_mean_abs:   238.6
-ok_max_mean_abs:   293.8
-!----------------------------------
-!
-
-!============
-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
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Clear-Sky Shortwave Radiation
-comment:           This is a 3-hour mean flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsdscs
-type:              real
-positive:          down
-valid_min:         -1.748e+30
-valid_max:         518
-ok_min_mean_abs:   206.9
-ok_max_mean_abs:   238.6
-!----------------------------------
-!
-
-!============
-variable_entry:    rluscs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Clear-Sky Shortwave Radiation
-comment:           This is a 3-hour mean flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rluscs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    ps
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_air_pressure
-units:             Pa
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Pressure
-comment:           sampled synoptically to diagnose atmospheric tides, this is better than mean sea level pressure.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          ps
-type:              real
-valid_min:         4.792e+04
-valid_max:         1.093e+05
-ok_min_mean_abs:   9.606e+04
-ok_max_mean_abs:   9.743e+04
-!----------------------------------
-!
-
-!============
-variable_entry:    clt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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.  This is a 3-hour mean.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          clt
-type:              real
-valid_min:         -0.0001822
-valid_max:         100.2
-ok_min_mean_abs:   39.37
-ok_max_mean_abs:   84.98
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdsdiff
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_diffuse_downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Downward Diffuse Shortwave Radiation
-comment:           This is a 3-hour mean flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsdsdiff
-type:              real
-!----------------------------------
-!
-
diff --git a/TestTables/CMIP5_6hrLev b/TestTables/CMIP5_6hrLev
deleted file mode 100644
index 2c2e1aa..0000000
--- a/TestTables/CMIP5_6hrLev
+++ /dev/null
@@ -1,612 +0,0 @@
-table_id: Table 6hrLev
-modeling_realm: atmos
-
-frequency: 6hr
-
-cmor_version: 2.5.0 ! minimum 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:   12 November 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 parent_experiment_rip branch_time contact institute_id ! 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 hindcast initialized in year 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: '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:  0.250000     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-
-generic_levels:   alevel
-
-!============
-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.0         
-valid_max:        360.0 
-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.0         
-valid_max:        90.0 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: time1
-!============
-!----------------------------------
-! 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: 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:    ta
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_measures:     area: areacella
-long_name:         Air Temperature
-comment:           on all model levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          ta
-type:              real
-valid_min:         157.1
-valid_max:         326.4
-ok_min_mean_abs:   200.2
-ok_max_mean_abs:   289.9
-!----------------------------------
-!
-
-!============
-variable_entry:    ua
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     eastward_wind
-units:             m s-1
-long_name:         Eastward Wind
-comment:           on all model levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          ua
-type:              real
-valid_min:         -68.65
-valid_max:         136.6
-ok_min_mean_abs:   1.101
-ok_max_mean_abs:   22.42
-!----------------------------------
-!
-
-!============
-variable_entry:    va
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_wind
-units:             m s-1
-long_name:         Northward Wind
-comment:           on all model levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          va
-type:              real
-valid_min:         -71.1
-valid_max:         69.93
-ok_min_mean_abs:   0.9886
-ok_max_mean_abs:   4.679
-!----------------------------------
-!
-
-!============
-variable_entry:    hus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_measures:     area: areacella
-long_name:         Specific Humidity
-comment:           on all model levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          hus
-type:              real
-valid_min:         -0.000299
-valid_max:         0.02812
-ok_min_mean_abs:   -0.0003539
-ok_max_mean_abs:   0.01027
-!----------------------------------
-!
-
-!============
-variable_entry:    ps
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_air_pressure
-units:             Pa
-cell_measures:     area: areacella
-long_name:         Surface Air Pressure
-comment:           surface pressure, not mean sea level pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          ps
-type:              real
-valid_min:         4.792e+04
-valid_max:         1.093e+05
-ok_min_mean_abs:   9.606e+04
-ok_max_mean_abs:   9.743e+04
-!----------------------------------
-!
-
diff --git a/TestTables/CMIP5_Amon b/TestTables/CMIP5_Amon
deleted file mode 100644
index 281583c..0000000
--- a/TestTables/CMIP5_Amon
+++ /dev/null
@@ -1,2387 +0,0 @@
-table_id: Table Amon
-modeling_realm: atmos
-
-frequency: mon
-
-cmor_version: 2.5.0 ! minimum 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:   12 November 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 parent_experiment_rip branch_time contact institute_id ! 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 hindcast initialized in year 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: '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.
-
-generic_levels:   alevel alevhalf
-
-!============
-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.0         
-valid_max:        360.0 
-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.0         
-valid_max:        90.0 
-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: 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.0         
-valid_max:        10.0 
-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.0         
-valid_max:        30.0 
-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: areacella
-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
-valid_min:         180.6
-valid_max:         325.7
-ok_min_mean_abs:   273.5
-ok_max_mean_abs:   281.7
-!----------------------------------
-!
-
-!============
-variable_entry:    ts
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_temperature
-units:             K
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         176.8
-valid_max:         331.8
-ok_min_mean_abs:   274.2
-ok_max_mean_abs:   281.8
-!----------------------------------
-!
-
-!============
-variable_entry:    tasmin
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: minimum within days time: mean over days
-cell_measures:     area: areacella
-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
-valid_min:         183.6
-valid_max:         309.8
-ok_min_mean_abs:   271.8
-ok_max_mean_abs:   279.6
-!----------------------------------
-!
-
-!============
-variable_entry:    tasmax
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: maximum within days time: mean over days
-cell_measures:     area: areacella
-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
-valid_min:         181.9
-valid_max:         330.6
-ok_min_mean_abs:   277.3
-ok_max_mean_abs:   281.4
-!----------------------------------
-!
-
-!============
-variable_entry:    psl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_sea_level
-units:             Pa
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         9.477e+04
-valid_max:         1.124e+05
-ok_min_mean_abs:   1.003e+05
-ok_max_mean_abs:   1.017e+05
-!----------------------------------
-!
-
-!============
-variable_entry:    ps
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_air_pressure
-units:             Pa
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         4.792e+04
-valid_max:         1.093e+05
-ok_min_mean_abs:   9.606e+04
-ok_max_mean_abs:   9.743e+04
-!----------------------------------
-!
-
-!============
-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
-comment:           near-surface (usually, 10 meters) eastward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          uas
-type:              real
-valid_min:         -19.01
-valid_max:         18.68
-ok_min_mean_abs:   1.668
-ok_max_mean_abs:   4.106
-!----------------------------------
-!
-
-!============
-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
-comment:           near-surface (usually, 10 meters) northward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          vas
-type:              real
-valid_min:         -18.04
-valid_max:         22.84
-ok_min_mean_abs:   1.065
-ok_max_mean_abs:   2.678
-!----------------------------------
-!
-
-!============
-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
-cell_measures:     area: areacella
-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
-cell_measures:     area: areacella
-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
-valid_min:         -7.21e-06
-valid_max:         0.02992
-ok_min_mean_abs:   0.006391
-ok_max_mean_abs:   0.008749
-!----------------------------------
-!
-
-!============
-variable_entry:    pr
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         0
-valid_max:         0.001254
-ok_min_mean_abs:   2.156e-05
-ok_max_mean_abs:   3.215e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    prsn
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     snowfall_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         0
-valid_max:         0.0002987
-ok_min_mean_abs:   1.449e-06
-ok_max_mean_abs:   6.11e-06
-!----------------------------------
-!
-
-!============
-variable_entry:    prc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         0
-valid_max:         0.0006323
-ok_min_mean_abs:   -2.528e-06
-ok_max_mean_abs:   3.209e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    evspsbl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_evaporation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-cell_measures:     area: areacella
-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. This differs from sbl appearing in table Limon in that the flux is averaged over the entire grid cell, not just the land portion.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sbl
-type:              real
-valid_min:         -0.004959
-valid_max:         0.0009936
-ok_min_mean_abs:   -5.521e-05
-ok_max_mean_abs:   9.61e-05
-!----------------------------------
-!
-
-!============
-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
-valid_min:         -2.729
-valid_max:         2.934
-ok_min_mean_abs:   0.03979
-ok_max_mean_abs:   0.1065
-!----------------------------------
-!
-
-!============
-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
-valid_min:         -2.472
-valid_max:         2.527
-ok_min_mean_abs:   0.01447
-ok_max_mean_abs:   0.08134
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         -76.77
-valid_max:         790.7
-ok_min_mean_abs:   50.39
-ok_max_mean_abs:   73.2
-!----------------------------------
-!
-
-!============
-variable_entry:    hfss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_sensible_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upward Sensible Heat Flux
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfss
-type:              real
-positive:          up
-valid_min:         -264.5
-valid_max:         844.8
-ok_min_mean_abs:   10.7
-ok_max_mean_abs:   34.84
-!----------------------------------
-!
-
-!============
-variable_entry:    rlds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlds
-type:              real
-positive:          down
-valid_min:         30.71
-valid_max:         520.5
-ok_min_mean_abs:   271.2
-ok_max_mean_abs:   323.6
-!----------------------------------
-!
-
-!============
-variable_entry:    rlus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlus
-type:              real
-positive:          up
-valid_min:         43.75
-valid_max:         658
-ok_min_mean_abs:   331.1
-ok_max_mean_abs:   369.9
-!----------------------------------
-!
-
-!============
-variable_entry:    rsds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsds
-type:              real
-positive:          down
-valid_min:         -0.002946
-valid_max:         524.4
-ok_min_mean_abs:   143.9
-ok_max_mean_abs:   181.6
-!----------------------------------
-!
-
-!============
-variable_entry:    rsus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsus
-type:              real
-positive:          up
-valid_min:         -0.006589
-valid_max:         422.2
-ok_min_mean_abs:   26.22
-ok_max_mean_abs:   43.77
-!----------------------------------
-!
-
-!============
-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
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsdscs
-type:              real
-positive:          down
-valid_min:         -1.748e+30
-valid_max:         518
-ok_min_mean_abs:   206.9
-ok_max_mean_abs:   238.6
-!----------------------------------
-!
-
-!============
-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
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsuscs
-type:              real
-positive:          up
-valid_min:         -0.01446
-valid_max:         462.2
-ok_min_mean_abs:   31.65
-ok_max_mean_abs:   61.59
-!----------------------------------
-!
-
-!============
-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
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rldscs
-type:              real
-positive:          down
-valid_min:         33.55
-valid_max:         543.6
-ok_min_mean_abs:   238.6
-ok_max_mean_abs:   293.8
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_incoming_shortwave_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         0
-valid_max:         555.5
-ok_min_mean_abs:   294.4
-ok_max_mean_abs:   303.8
-!----------------------------------
-!
-
-!============
-variable_entry:    rsut
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         -0.02689
-valid_max:         416.9
-ok_min_mean_abs:   96.72
-ok_max_mean_abs:   114.1
-!----------------------------------
-!
-
-!============
-variable_entry:    rlut
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         67.48
-valid_max:         383.2
-ok_min_mean_abs:   214.1
-ok_max_mean_abs:   227.5
-!----------------------------------
-!
-
-!============
-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
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlutcs
-type:              real
-positive:          up
-valid_min:         70.59
-valid_max:         372.3
-ok_min_mean_abs:   235.1
-ok_max_mean_abs:   253.8
-!----------------------------------
-!
-
-!============
-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
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsutcs
-type:              real
-positive:          up
-valid_min:         0
-valid_max:         444
-ok_min_mean_abs:   54.7
-ok_max_mean_abs:   73.36
-!----------------------------------
-!
-
-!============
-variable_entry:    prw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_water_vapor_content
-units:             kg m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Water Vapor Path
-comment:           vertically integrated through the atmospheric column
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prw
-type:              real
-valid_min:         -0.0006775
-valid_max:         78.04
-ok_min_mean_abs:   12.75
-ok_max_mean_abs:   23.09
-!----------------------------------
-!
-
-!============
-variable_entry:    clt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         -0.0001822
-valid_max:         100.2
-ok_min_mean_abs:   39.37
-ok_max_mean_abs:   84.98
-!----------------------------------
-!
-
-!============
-variable_entry:    clwvi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_condensed_water_content
-units:             kg m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         -3.827e-06
-valid_max:         3.364
-ok_min_mean_abs:   -0.03549
-ok_max_mean_abs:   0.2846
-!----------------------------------
-!
-
-!============
-variable_entry:    clivi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_ice_content
-units:             kg m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         -1.872e-06
-valid_max:         1.535
-ok_min_mean_abs:   -0.0348
-ok_max_mean_abs:   0.1187
-!----------------------------------
-!
-
-!============
-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
-cell_measures:     area: areacella
-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
-valid_min:         -232.8
-valid_max:         218.7
-ok_min_mean_abs:   77.62
-ok_max_mean_abs:   88.34
-!----------------------------------
-!
-
-!============
-variable_entry:    ccb
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_convective_cloud_base
-units:             Pa
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-cell_measures:     area: areacella
-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:
-!----------------------------------
-standard_name:     convection_time_fraction
-units:             1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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:
-!----------------------------------
-standard_name:     shallow_convection_time_fraction
-units:             1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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:
-!----------------------------------
-standard_name:     tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission
-units:             kg  m-2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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:
-!----------------------------------
-standard_name:     tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion
-units:             kg m-2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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:
-!----------------------------------
-standard_name:     surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_sources
-units:             kg m-2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         0
-valid_max:         100.2
-ok_min_mean_abs:   -0.04479
-ok_max_mean_abs:   24.87
-!----------------------------------
-!
-
-!============
-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
-valid_min:         157.1
-valid_max:         326.4
-ok_min_mean_abs:   200.2
-ok_max_mean_abs:   289.9
-!----------------------------------
-!
-
-!============
-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
-valid_min:         -68.65
-valid_max:         136.6
-ok_min_mean_abs:   1.101
-ok_max_mean_abs:   22.42
-!----------------------------------
-!
-
-!============
-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
-valid_min:         -71.1
-valid_max:         69.93
-ok_min_mean_abs:   0.9886
-ok_max_mean_abs:   4.679
-!----------------------------------
-!
-
-!============
-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
-valid_min:         -0.000299
-valid_max:         0.02812
-ok_min_mean_abs:   -0.0003539
-ok_max_mean_abs:   0.01027
-!----------------------------------
-!
-
-!============
-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
-valid_min:         -2.642
-valid_max:         135.7
-ok_min_mean_abs:   -10.31
-ok_max_mean_abs:   97
-!----------------------------------
-!
-
-!============
-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
-valid_min:         -1.126
-valid_max:         2.319
-ok_min_mean_abs:   -0.005083
-ok_max_mean_abs:   0.04256
-!----------------------------------
-!
-
-!============
-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
-valid_min:         -719.7
-valid_max:         3.306e+04
-ok_min_mean_abs:   -113.4
-ok_max_mean_abs:   3.164e+04
-!----------------------------------
-!
-
-!============
-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
-valid_min:         -419.2
-valid_max:         1.162e+04
-ok_min_mean_abs:   -149.1
-ok_max_mean_abs:   7363
-!----------------------------------
-!
-
-!============
-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:
-!----------------------------------
-standard_name:     atmosphere_mass_of_carbon_dioxide
-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:
-!----------------------------------
-standard_name:     atmosphere_mass_of_carbon_dioxide
-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:    ch4Clim
-!============
-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:    cfc11global
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_cfc11_in_air
-units:             1e-12
-cell_methods:      time: mean
-long_name:         Global Mean Mole Fraction of CFC11
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          cfc11global
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cfc12global
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_cfc12_in_air
-units:             1e-12
-cell_methods:      time: mean
-long_name:         Global Mean Mole Fraction of CFC12
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          cfc12global
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hcfc22global
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_hcfc22_in_air
-units:             1e-12
-cell_methods:      time: mean
-long_name:         Global Mean Mole Fraction of HCFC22
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          hcfc22global
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cfc113global
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_cfc113_in_air
-units:             1e-12
-cell_methods:      time: mean
-long_name:         Global Mean Mole Fraction of CFC113
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          cfc113global
-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/TestTables/CMIP5_Lmon b/TestTables/CMIP5_Lmon
deleted file mode 100644
index 1d70cbe..0000000
--- a/TestTables/CMIP5_Lmon
+++ /dev/null
@@ -1,1665 +0,0 @@
-table_id: Table Lmon
-modeling_realm: land
-
-frequency: mon
-
-cmor_version: 2.5.0 ! minimum 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:   12 November 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 parent_experiment_rip branch_time contact institute_id ! 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 hindcast initialized in year 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: '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.0         
-valid_max:        360.0 
-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.0         
-valid_max:        90.0 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-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: sdepth
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    depth
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         down         ! up or down (default: undeclared)
-long_name:        depth
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         depth
-valid_min:        0.0         
-valid_max:        200.0 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: sdepth1 
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    depth
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         down         ! up or down (default: undeclared)
-long_name:        depth
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         depth
-valid_min:        0.0         
-valid_max:        0.2 
-stored_direction: increasing
-type:             double
-value:            0.05            ! of scalar (singleton) dimension 
-bounds_values:    0.0 0.1    ! of scalar (singleton) dimension bounds
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: vegtype
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    area_type
-units:            1
-long_name:        plant functional type
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         type
-type:             character
-must_have_bounds: no
-coords_attrib:    type_description
-!----------------------------------
-!
-
-
-!============
-axis_entry: typebare
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    area_type
-units:            1
-long_name:        surface type
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         type
-type:             character
-value:            bare_ground            ! of scalar (singleton) dimension 
-must_have_bounds: no
-coords_attrib:    type_description
-!----------------------------------
-!
-
-
-!============
-axis_entry: typepdec
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    area_type
-units:            1
-long_name:        surface type
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         type
-type:             character
-value:            primary_deciduous_trees            ! of scalar (singleton) dimension 
-must_have_bounds: no
-coords_attrib:    type_description
-!----------------------------------
-!
-
-
-!============
-axis_entry: typepever
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    area_type
-units:            1
-long_name:        surface type
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         type
-type:             character
-value:            primary_evergreen_trees            ! of scalar (singleton) dimension 
-must_have_bounds: no
-coords_attrib:    type_description
-!----------------------------------
-!
-
-
-!============
-axis_entry: typesdec
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    area_type
-units:            1
-long_name:        surface type
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         type
-type:             character
-value:            secondary_decidous_trees            ! of scalar (singleton) dimension 
-must_have_bounds: no
-coords_attrib:    type_description
-!----------------------------------
-!
-
-
-!============
-axis_entry: typesever 
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    area_type
-units:            1
-long_name:        surface type
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         type
-type:             character
-value:            secondary_evergreen_trees            ! of scalar (singleton) dimension 
-must_have_bounds: no
-coords_attrib:    type_description
-!----------------------------------
-!
-
-
-!============
-axis_entry: typec3pft
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    area_type
-units:            1
-long_name:        surface type
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         type
-type:             character
-value:            c3_plant_functional_types            ! of scalar (singleton) dimension 
-must_have_bounds: no
-coords_attrib:    type_description
-!----------------------------------
-!
-
-
-!============
-axis_entry: typec4pft
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    area_type
-units:            1
-long_name:        surface type
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         type
-type:             character
-value:            c4_plant_functional_types            ! of scalar (singleton) dimension 
-must_have_bounds: no
-coords_attrib:    type_description
-!----------------------------------
-!
-
-!============
-variable_entry:    mrsos
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     moisture_content_of_soil_layer
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Moisture in Upper 0.1 m of Soil Column
-comment:           Compute the mass of water in all phases in the upper 0.1 meters of soil.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time sdepth1
-out_name:          mrsos
-type:              real
-valid_min:         -2.008
-valid_max:         146.5
-ok_min_mean_abs:   -35.89
-ok_max_mean_abs:   123.3
-!----------------------------------
-!
-
-!============
-variable_entry:    mrso
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     soil_moisture_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Total Soil Moisture Content
-comment:           Compute the mass per unit area  (summed over all soil layers) of water in all phases.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          mrso
-type:              real
-valid_min:         -64.17
-valid_max:         5717
-ok_min_mean_abs:   -1424
-ok_max_mean_abs:   3038
-!----------------------------------
-!
-
-!============
-variable_entry:    mrfso
-!============
-modeling_realm:    land landIce
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     soil_frozen_water_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Soil Frozen Water Content 
-comment:           Compute the mass (summed over all all layers) of frozen water.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          mrfso
-type:              real
-valid_min:         0
-valid_max:         5763
-ok_min_mean_abs:   -419
-ok_max_mean_abs:   940.3
-!----------------------------------
-!
-
-!============
-variable_entry:    mrros
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_runoff_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Surface Runoff
-comment:           Compute the total surface runoff leaving the land portion of the grid cell.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          mrros
-type:              real
-valid_min:         -6.802e-06
-valid_max:         0.0009825
-ok_min_mean_abs:   -5.867e-06
-ok_max_mean_abs:   1.302e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    mrro
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     runoff_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Total Runoff
-comment:           "compute the total runoff (including ""drainage"" through the base of the soil model) leaving the land portion of the grid cell."
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          mrro
-type:              real
-valid_min:         -0.0002019
-valid_max:         0.001065
-ok_min_mean_abs:   -6.668e-06
-ok_max_mean_abs:   1.874e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    prveg
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     precipitation_flux_onto_canopy
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Precipitation onto Canopy
-comment:           Report the precipitation flux that is intercepted by the vegetation canopy (if present in model) before reaching the ground.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prveg
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    evspsblveg
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_evaporation_flux_from_canopy
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Evaporation from Canopy
-comment:           Report the canopy evaporation+sublimation (if present in model).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          evspsblveg
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    evspsblsoi
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_evaporation_flux_from_soil
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Water Evaporation from Soil
-comment:           includes sublimation.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          evspsblsoi
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    tran
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     transpiration_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Transpiration
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tran
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    mrlsl
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     moisture_content_of_soil_layer
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:          Water Content of Soil Layer
-comment:           in each soil layer, the mass of water in all phases, including ice.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude sdepth time
-out_name:          mrlsl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tsl
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     soil_temperature
-units:             K
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Temperature of Soil
-comment:           "Temperature of each soil layer.  Report as ""missing"" for grid cells occupied entirely by ""sea""."
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude sdepth time
-out_name:          tsl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    treeFrac
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tree Cover Fraction
-comment:           fraction of entire grid cell  that is covered by trees.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          treeFrac
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    grassFrac
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Natural Grass Fraction
-comment:           fraction of entire grid cell that is covered by natural grass.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          grassFrac
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    shrubFrac
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Shrub Fraction
-comment:           fraction of entire grid cell  that is covered by shrub.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          shrubFrac
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cropFrac
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Crop Fraction
-comment:           fraction of entire grid cell  that is covered by crop. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cropFrac
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    pastureFrac
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Anthropogenic Pasture Fraction
-comment:           fraction of entire grid cell  that is covered by anthropogenic pasture. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          pastureFrac
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    baresoilFrac
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Bare Soil Fraction
-comment:           fraction of entire grid cell  that is covered by bare soil.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time typebare
-out_name:          baresoilFrac
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    residualFrac
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Fraction of Grid Cell that is Land but Neither Vegetation-Covered nor Bare Soil
-comment:           fraction of entire grid cell  that is land and is covered by ""non-vegetation"" and ""non-bare-soil"" (e.g., urban, ice, lakes, etc.) 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          residualFrac
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    burntArea
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Burnt Area Fraction
-comment:           fraction of entire grid cell  that is covered by burnt vegetation.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          burntArea
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cVeg
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     vegetation_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Vegetation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cVeg
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cLitter
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     litter_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Litter Pool
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cLitter
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cSoil
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     soil_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Soil Pool
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cSoil
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cProduct
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     carbon_content_of_products_of_anthropogenic_land_use_change
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Products of Land Use Change
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cProduct
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    lai
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     leaf_area_index
-units:             1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Leaf Area Index
-comment:           projected leaf area per unit of ground area (i.e., only the land portion of the grid cell), expressed as a proper fraction (not a percentage)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          lai
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    gpp
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     gross_primary_productivity_of_carbon
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux out of Atmosphere due to Gross Primary Production on Land
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          gpp
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    ra
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     plant_respiration_carbon_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux into Atmosphere due to Autotrophic (Plant) Respiration on Land
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ra
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    npp
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_primary_productivity_of_carbon
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux out of Atmosphere due to Net Primary Production on Land
-comment:           needed for models that do not compute GPP (if any)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          npp
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rh
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     heterotrophic_respiration_carbon_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration on Land
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rh
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fFire
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fires_excluding_anthropogenic_land_use_change
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux into Atmosphere due to CO2 Emission from Fire
-comment:           CO2 emissions (expressed as a carbon mass flux) from natural fires + human ignition fires as calculated by the fire module of the DGVM, but excluding any CO2 flux from fire included in fLuc, defined below (CO2 Flux to Atmosphere from Land Use Change).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fFire
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fGrazing
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_grazing
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux into Atmosphere due to Grazing on Land
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fGrazing
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fHarvest
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_crop_harvesting
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux into Atmosphere due to Crop Harvesting
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fHarvest
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fLuc
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Net Carbon Mass Flux into Atmosphere due to Land Use Change
-comment:           human changes to land (excluding forest regrowth) accounting possibly for different time-scales related to fate of the wood, for example.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fLuc
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    nbp
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux out of Atmosphere due to Net Biospheric Production on Land
-comment:           This is the net mass flux of carbon between land and atmosphere calculated as photosynthesis MINUS the sum of  plant and soil respiration, carbonfluxes  from fire, harvest, grazing  and land use change. Positive flux  is into the land.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          nbp
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    fVegLitter
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     litter_carbon_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Total Carbon Mass Flux from Vegetation to Litter
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fVegLitter
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fLitterSoil
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     carbon_mass_flux_into_soil_from_litter
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Total Carbon Mass Flux from Litter to Soil
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fLitterSoil
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fVegSoil
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     carbon_mass_flux_into_soil_from_vegetation_excluding_litter
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Total Carbon Mass Flux from Vegetation Directly to Soil
-comment:           In some models part of carbon (e.g., root exudate) can go directly into the soil pool without entering litter.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fVegSoil
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cLeaf
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     leaf_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Leaves
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cLeaf
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cWood
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     wood_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Wood
-comment:           including sapwood and hardwood.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cWood
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cRoot
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     root_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Roots
-comment:           including fine and coarse roots.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cRoot
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cMisc
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     miscellaneous_living_matter_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Other Living Compartments on Land
-comment:           e.g., labile, fruits, reserves, etc.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cMisc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cCwd
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     wood_debris_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Coarse Woody Debris
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cCwd
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cLitterAbove
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_litter_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Above-Ground Litter
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cLitterAbove
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cLitterBelow
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     subsurface_litter_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Below-Ground Litter
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cLitterBelow
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cSoilFast
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     fast_soil_pool_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Fast Soil Pool
-comment:           fast is meant as lifetime of less than 10 years for  reference climate conditions (20 C, no water limitations).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cSoilFast
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cSoilMedium
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     medium_soil_pool_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Medium Soil Pool
-comment:           medium is meant as lifetime of more than than 10 years and less than 100 years for  reference climate conditions (20 C, no water limitations)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cSoilMedium
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cSoilSlow
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     slow_soil_pool_carbon_content
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass in Slow Soil Pool
-comment:           fast is meant as lifetime of more than 100 years for  reference climate conditions (20 C, no water limitations)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cSoilSlow
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    landCoverFrac
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Plant Functional Type Grid Fraction
-comment:           using each individual ESM PFT definition.   This includes natural PFTs, anthropogenic PFTs, bare soil, lakes, urban areas, etc.   Sum of all should equal the fraction of the grid-cell that is land.  Note that the ""types"" will be model dependent and for each type there should be a full description of the PFT (plant functional type).   To facilitate model comparison, it is also requested that the aggregated land cover types called for in lines 28 to 35 be archived (but [...]
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude vegtype time
-out_name:          landCoverFrac
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    treeFracPrimDec
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Total Primary Deciduous Tree Fraction
-comment:           "Agregation of model PFTs as defined in 1st priority to aid model intercomparison.  This is the fraction of the entire grid cell  that is covered by ""total primary deciduous trees.""    "
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time typepdec
-out_name:          treeFracPrimDec
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    treeFracPrimEver
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Total Primary Evergreen Tree Cover Fraction
-comment:           fraction of entire grid cell  that is covered by primary evergreen trees. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time typepever
-out_name:          treeFracPrimEver
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    treeFracSecDec
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Total Secondary Deciduous Tree Cover Fraction
-comment:           fraction of entire grid cell  that is covered by secondary deciduous trees.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time typesdec
-out_name:          treeFracSecDec
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    treeFracSecEver
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Total Secondary Evergreen Tree Cover Fraction
-comment:           fraction of entire grid cell  that is covered by secondary evergreen trees.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time typesever 
-out_name:          treeFracSecEver
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    c3PftFrac
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Total C3 PFT Cover Fraction
-comment:           fraction of entire grid cell  that is covered by C3 PFTs (including grass, crops, and trees).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time typec3pft
-out_name:          c3PftFrac
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    c4PftFrac
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Total C4 PFT Cover Fraction
-comment:           fraction of entire grid cell  that is covered by C4 PFTs (including grass and crops).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time typec4pft
-out_name:          c4PftFrac
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    rGrowth
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_carbon_mass_flux_due_to_plant_respiration_for_biomass_growth
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux into Atmosphere due to Growth Autotrophic Respiration on Land
-comment:           "This flux and the one in the following row provide a breakdown of the higher priority ""Autotrophic (Plant) Respiration"" in an earlier row of this table; thus the sum should be identical to that."
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rGrowth
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rMaint
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_carbon_mass_flux_due_to_plant_respiration_for_biomass_maintenance
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux into Atmosphere due to Maintenance Autotrophic Respiration on Land
-comment:           "This flux and the one in the previous row provide a breakdown of the higher priority ""Autotrophic (Plant) Respiration"" in an earlier row of this table; thus the sum should be identical to that."
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rMaint
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    nppLeaf
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_primary_productivity_of_carbon_accumulated_in_leaves
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux due to NPP Allocation to Leaf
-comment:           This is the rate of carbon uptake by leaves due to NPP
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          nppLeaf
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    nppWood
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_primary_productivity_of_carbon_accumulated_in_wood
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux due to NPP Allocation to Wood
-comment:           This is the rate of carbon uptake by wood due to NPP
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          nppWood
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    nppRoot
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_primary_productivity_of_carbon_accumulated_in_roots
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Carbon Mass Flux due to NPP Allocation to Roots
-comment:           This is the rate of carbon uptake by roots due to NPP
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          nppRoot
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    nep
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes_excluding_anthropogenic_land_use_change
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Net Carbon Mass Flux out of Atmophere due to Net Ecosystem Productivity on Land.
-comment:           Natural flux of CO2 (expressed as a mass flux of carbon) from the atmosphere to the land calculated as the difference between uptake associated will photosynthesis and the release of CO2 from the sum of plant and soil respiration and fire.  Positive flux is into the land.  emissions from natural fires + human ignition fires as calculated by the fire module of the DGVM, but excluding any CO2 flux from fire included in fLuc, defined below (CO2 Flux to Atmosphere from Lan [...]
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          nep
-type:              real
-positive:          down
-!----------------------------------
-!
-
diff --git a/TestTables/CMIP5_Omon b/TestTables/CMIP5_Omon
deleted file mode 100644
index 17e3eb1..0000000
--- a/TestTables/CMIP5_Omon
+++ /dev/null
@@ -1,4658 +0,0 @@
-table_id: Table Omon
-modeling_realm: ocean
-
-frequency: mon
-
-cmor_version: 2.5.0 ! minimum 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:   12 November 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 parent_experiment_rip branch_time contact institute_id ! 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 hindcast initialized in year 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: '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.
-
-generic_levels:   olevel
-
-!============
-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.0         
-valid_max:        360.0 
-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.0         
-valid_max:        90.0 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-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: basin
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    region
-units:            1
-long_name:        ocean basin
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         basin
-type:             character
-requested:        atlantic_arctic_ocean indian_pacific_ocean global_ocean        ! space-separated list of requested coordinates 
-must_have_bounds: no
-coords_attrib:    region
-!----------------------------------
-!
-
-
-!============
-axis_entry: rho
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-units:            kg m-3
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         down         ! up or down (default: undeclared)
-long_name:        density++++?
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         rho
-stored_direction: decreasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: oline
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    region
-units:            1
-long_name:        ocean passage 
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         line
-type:             character
-requested:        barents_opening bering_strait canadian_archipelago denmark_strait drake_passage english_channel pacific_equatorial_undercurrent faroe_scotland_channel florida_bahamas_strait fram_strait iceland_faroe_channel indonesian_thoughflow mozambique_channel taiwan_luzon_straits windward_passage        ! space-separated list of requested coordinates 
-must_have_bounds: no
-coords_attrib:    passage
-!----------------------------------
-!
-
-
-!============
-axis_entry: olayer100m
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    depth
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         down         ! up or down (default: undeclared)
-long_name:        depth
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         depth
-valid_min:        0.0         
-valid_max:        100.0 
-stored_direction: increasing
-type:             double
-value:            50.            ! of scalar (singleton) dimension 
-bounds_values:    0. 100.    ! of scalar (singleton) dimension bounds
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: depth100m
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    depth
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         down         ! up or down (default: undeclared)
-long_name:        depth
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         depth
-valid_min:        80.0         
-valid_max:        120.0 
-stored_direction: increasing
-type:             double
-value:            100.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: depth0m
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    depth
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         down         ! up or down (default: undeclared)
-long_name:        depth
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         depth
-valid_min:        0.0         
-valid_max:        100.0 
-stored_direction: increasing
-type:             double
-value:            0.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-!============
-axis_entry: depth_coord
-!============
-!
-!  This vertical coordinate is used in z-coordinate models 
-!   The units are meters (m), and it has a value of 0. at the surface
-!   and becomes more and more positive with depth.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    depth
-units:            m
-axis:             Z
-positive:	  down 
-long_name:        ocean depth coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        12000.
-!----------------------------------	
-!
-!============
-axis_entry: ocean_double_sigma
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    ocean_double_sigma
-axis:             Z
-positive:	  up
-long_name:        ocean double sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-formula:          for k <= k_c:\n z(k,j,i)= sigma(k)*f(j,i) \n for k > k_c:\n z(k,j,i)= f(j,i) + (sigma(k)-1)*(depth(j,i)-f(j,i)) \n f(j,i)= 0.5*(z1+ z2) + 0.5*(z1-z2)* tanh(2*a/(z1-z2)*(depth(j,i)-href))
-z_factors:        sigma: sigma depth: depth z1: z1 z2: z2 a: a_coeff href: href k_c: k_c
-z_bounds_factors: sigma: sigma_bnds depth: depth z1: z1 z2: z2 a: a href: href k_c: k_c
-!----------------------------------	
-!
-!============
-axis_entry: ocean_sigma_z
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    ocean_sigma_z
-axis:             Z
-long_name:        ocean sigma over z coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-formula:          for k <= nsigma: z(n,k,j,i) = eta(n,j,i) + sigma(k)*(min(depth_c,depth(j,i))+eta(n,j,i)) ; for k > nsigma: z(n,k,j,i) = zlev(k)
-z_factors:        sigma: sigma eta: eta depth: depth depth_c: depth_c nsigma: nsigma zlev: zlev
-z_bounds_factors: sigma: sigma_bnds eta: eta depth: depth depth_c: depth_c nsigma: nsigma zlev: zlev_bnds
-!----------------------------------	
-!
-!============
-axis_entry: ocean_s
-!============
-!
-!  This coordinate is dimensionless and varies from 0 at the surface to -1. at the ocean floor.
-!  The values of s(k), which appears in the formula below, should be stored as ocean_s.  
-!  Note that in the netCDF file the variable will be named "lev", not ocean_s.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    ocean_s_coordinate
-axis:             Z
-positive:	  up
-long_name:        ocean s-coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        -1.
-valid_max:        0.
-formula:          z(n,k,j,i) = eta(n,j,i)*(1+s(k)) + depth_c*s(k) + (depth(j,i)-depth_c)*C(k) \n where \n C(k)=(1-b)*sinh(a*s(k))/sinh(a) +\n           b*(tanh(a*(s(k)+0.5))/(2*tanh(0.5*a)) - 0.5)
-z_factors:        s: lev eta: eta depth: depth a: a_coeff b: b_coeff depth_c: depth_c
-z_bounds_factors: s: lev_bnds eta: eta depth: depth a: a b: b depth_c: depth_c
-!----------------------------------	
-!
-!============
-axis_entry: ocean_sigma
-!============
-!
-!  This coordinate is dimensionless and varies from 0 at the surface to -1. at the ocean floor.
-!  The values of sigma(k), which appears in the formula below, should be stored as ocean_sigma.  
-!  Note that in the netCDF file the variable will be named "lev", not ocean_sigma.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    ocean_sigma_coordinate
-axis:             Z
-positive:	  up
-long_name:        ocean sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        -1.
-valid_max:        0.
-formula:          z(n,k,j,i) = eta(n,j,i) + sigma(k)*(depth(j,i)+eta(n,j,i))
-z_factors:        sigma: lev eta: eta depth: depth
-z_bounds_factors: sigma: lev_bnds eta: eta depth: depth
-!----------------------------------	
-!
-!
-! ***************************************************************
-!
-! Vertical coordinate formula_terms:
-!
-! ***************************************************************
-!
-!============
-variable_entry: eta
-!============
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:            m
-cell_methods:     time: mean
-long_name:        Sea Surface Height
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      longitude latitude time
-type:      real
-!----------------------------------
-!
-!
-!============
-variable_entry: depth
-!============
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:        m
-long_name:    Sea Floor Depth
-comment:      Ocean bathymetry.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      longitude latitude
-out_name:        depth
-type:            real
-valid_min:        0.
-valid_max:        12000.
-ok_min_mean_abs:  2000.
-ok_max_mean_abs:  5000.
-!----------------------------------
-!
-!
-!============
-variable_entry: sigma
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: sigma(k)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         olevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma_bnds
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: sigma(k+1/2)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         olevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: zlev
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: zlev(k)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         olevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: zlev_bnds
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: zlev(k+1/2)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         olevel
-type:               double
-!----------------------------------	
-!
-!
-!
-!============
-variable_entry: depth_c
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: depth_c
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: a
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: coefficient a
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: b
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: coefficient b
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: nsigma
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: nsigma
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               integer
-!----------------------------------
-!
-!
-!============
-variable_entry: z1
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: z1
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: z2
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: z2
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: href
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: href
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: k_c
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: k_c
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               integer
-!----------------------------------
-!
-!
-
-!============
-variable_entry:    dissic
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_dissolved_inorganic_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Dissolved Inorganic Carbon Concentration at Surface
-comment:           Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          dissic
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    dissoc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_dissolved_organic_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Dissolved Organic Carbon Concentration at Surface
-comment:           Dissolved organic carbon concentration
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          dissoc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phyc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Phytoplankton Carbon Concentration at Surface
-comment:           sum of phytoplankton carbon component concentrations.  In most (all?) cases this is the sum of phycdiat and phycmisc (i.e., ""Diatom Carbon Concentration"" and ""Non-Diatom Phytoplankton Carbon Concentration""
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          phyc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zooc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Zooplankton Carbon Concentration at Surface
-comment:           sum of zooplankton carbon component concentrations
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          zooc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    bacc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Bacterial Carbon Concentration at Surface
-comment:           sum of bacterial carbon component concentrations
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          bacc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    detoc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Detrital Organic Carbon Concentration at Surface
-comment:           sum of detrital organic carbon component concentrations
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          detoc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    calc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_calcite_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Calcite Concentration at Surface
-comment:           sum of particulate calcite component concentrations (e.g. Phytoplankton, Detrital, etc.)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          calc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    arag
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Aragonite Concentration at Surface
-comment:           sum of particulate aragonite components (e.g. Phytoplankton, Detrital, etc.)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          arag
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phydiat
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mole Concentration of Diatoms expressed as Carbon in Sea Water at Surface
-comment:           carbon from the diatom phytoplankton component concentration alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          phydiat
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phydiaz
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mole Concentration of Diazotrophs Expressed as Carbon in Sea Water at Surface
-comment:           carbon concentration from the diazotrophic phytoplankton component alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          phydiaz
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phycalc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mole Concentration of Calcareous Phytoplankton expressed as Carbon in Sea Water at Surface
-comment:           carbon concentration from calcareous (calcite-producing) phytoplankton component alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          phycalc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phypico
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mole Concentration of Picophytoplankton expressed as Carbon in Sea Water at Surface
-comment:           carbon concentration from the picophytoplankton (<2 um) component alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          phypico
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phymisc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in Sea Water at Surface
-comment:           carbon concentration from additional phytoplankton component alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          phymisc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zmicro
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mole Concentration of Microzooplankton expressed as Carbon in Sea Water at Surface
-comment:           carbon  concentration from the microzooplankton (<20 um) component alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          zmicro
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zmeso
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mole Concentration of Mesozooplankton expressed as Carbon in Sea Water at Surface
-comment:           carbon  concentration from mesozooplankton (20-200 um) component alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          zmeso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zoocmisc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Other Zooplankton Carbon Concentration at Surface
-comment:           carbon from additional zooplankton component concentrations alone (e.g. Micro, meso).  Since the models all have different numbers of components, this variable has been included to provide a check for intercomparison between models since some phytoplankton groups are supersets.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          zoocmisc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    talk
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_alkalinity_expressed_as_mole_equivalent
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Total Alkalinity at Surface
-comment:           total alkalinity equivalent concentration (including carbonate, nitrogen, silicate, and borate components)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          talk
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ph
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_ph_reported_on_total_scale
-units:             1
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         pH at Surface
-comment:           negative log of hydrogen ion concentration with the concentration expressed as mol H kg-1.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          ph
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    o2
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_molecular_oxygen_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Dissolve Oxygen Concentration at Surface
-comment:           dissolved oxygen gas concentration in sea water
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          o2
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    no3
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_nitrate_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Dissolved Nitrate Concentration at Surface
-comment:           dissolved nitrate concentration in sea water
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          no3
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    nh4
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_ammonium_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Dissolved Ammonium Concentration at Surface
-comment:           dissolved ammonium concentration in sea water
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          nh4
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    po4
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_phosphate_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Dissolved Phosphate Concentration at Surface
-comment:           dissolved Phosphate concentration in sea water
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          po4
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    dfe
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_dissolved_iron_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Dissolved Iron Concentration at Surface
-comment:           dissolved iron in sea water is meant to include both Fe2+ and Fe3+ ions (but not, e.g., particulate detrital iron)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          dfe
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    si
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_silicate_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Dissolved Silicate Concentration at Surface
-comment:           dissolved silicate concentration in sea water
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          si
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    chl
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water
-units:             kg m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Total Chlorophyll Mass Concentration at Surface
-comment:           sum of chlorophyll from all phytoplankton group concentrations.  In most models this is equal to chldiat+chlmisc, that is the sum of ""Diatom Chlorophyll Mass Concentration"" plus ""Other Phytoplankton Chlorophyll Mass Concentration""
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          chl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    chldiat
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water
-units:             kg m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Diatom Chlorophyll Mass Concentration at Surface
-comment:           chlorophyll from diatom phytoplankton component concentration alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          chldiat
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    chldiaz
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water
-units:             kg m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mass Concentration of Diazotrophs expressed as Chlorophyll in Sea Water at Surface
-comment:           chlorophyll concentration from the diazotrophic phytoplankton component alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          chldiaz
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    chlcalc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water
-units:             kg m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in Sea Water at Surface
-comment:           chlorophyll concentration from the calcite-producing phytoplankton component alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          chlcalc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    chlpico
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water
-units:             kg m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mass Concentration of Picophytoplankton expressed as Chlorophyll in Sea Water at Surface
-comment:           chlorophyll concentration from the picophytoplankton (<2 um) component alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          chlpico
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    chlmisc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water
-units:             kg m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Other Phytoplankton Chlorophyll Mass Concentration at Surface
-comment:           chlorophyll from additional phytoplankton component concentrations alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          chlmisc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    pon
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Particulate Organic Nitrogen Concentration at Surface
-comment:           sum of particulate organic nitrogen component concentrations
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          pon
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    pop
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Particulate Organic Phosphorus Concentration at Surface
-comment:           sum of particulate organic phosphorus component concentrations
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          pop
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    bfe
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Particulate Biogenic Iron Concentration at Surface
-comment:           sum of particulate organic iron component concentrations
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          bfe
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    bsi
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Particulate Biogenic Silica Concentration at Surface
-comment:           sum of particulate silica component concentrations
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          bsi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phyn
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Phytoplankton Nitrogen Concentration at Surface
-comment:           sum of phytoplankton nitrogen component concentrations
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          phyn
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phyp
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Phytoplankton Phosphorus Concentration at Surface
-comment:           sum of phytoplankton phosphorus components
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          phyp
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phyfe
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Phytoplankton Iron Concentration at Surface
-comment:           sum of phytoplankton iron component concentrations
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          phyfe
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    physi
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Phytoplankton Silica Concentration at Surface
-comment:           sum of phytoplankton silica component concentrations
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          physi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    dms
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_dimethyl_sulfide_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Dimethyl Sulphide Concentration at Surface
-comment:           dimethyl sulphide concentration
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          dms
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co3
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mole Concentration of Carbonate expressed as Carbon in Sea Water at Surface
-comment:           carbonate ion concentration
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          co3
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co3satcalc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_at_saturation
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mole Concentration of Calcite expressed as Carbon in Sea Water at Saturation at Surface
-comment:           carbonate ion concentration at calcite solution saturation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          co3satcalc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co3satarag
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_at_saturation
-units:             mol m-3
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacello volume: volcello
-long_name:         Mole Concentration of Aragonite expressed as Carbon in Sea Water at Saturation at Surface
-comment:           carbonate ion concentration at aragonite solution saturation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth0m
-out_name:          co3satarag
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    intpp
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_primary_mole_productivity_of_carbon_by_phytoplankton
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Primary Organic Carbon Production by All Types of Phytoplankton
-comment:           Vertically integrated total primary (organic carbon) production by phytoplankton.  This should equal the sum of intpdiat+intpphymisc, but those individual components may be unavailable in some models.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intpp
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    intpnitrate
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_primary_mole_productivity_of_carbon_due_to_nitrate_utilization
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Primary Organic Carbon Production by Phytoplankton Based on Nitrate Uptake Alone
-comment:           Vertically integrated primary (organic carbon) production by phytoplankton based on nitrate uptake alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intpnitrate
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    intpdiat
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_primary_mole_productivity_of_carbon_by_diatoms
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Primary Organic Carbon Production by Diatoms
-comment:           Vertically integrated primary (organic carbon) production by the diatom phytoplankton component alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intpdiat
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    intpdiaz
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_primary_mole_productivity_of_carbon_by_diazotrophs
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Net Primary Mole Productivity of Carbon by Diazotrophs
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intpdiaz
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    intpcalc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_primary_mole_productivity_of_carbon_by_calcareous_phytoplankton
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intpcalc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    intppico
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_primary_mole_productivity_of_carbon_by_picophytoplankton
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Net Primary Mole Productivity of Carbon by Picophytoplankton
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intppico
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    intpmisc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_primary_mole_productivity_of_carbon_by_miscellaneous_phytoplankton
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Primary Organic Carbon Production by Other Phytoplankton
-comment:           Vertically integrated total primary (organic carbon) production by other phytoplankton components alone
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intpmisc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    intpbfe
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_iron_due_to_biological_production
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Iron Production
-comment:           Vertically integrated biogenic iron production
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intpbfe
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    intpbsi
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_silicon_due_to_biological_production
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Silica Production
-comment:           Vertically integrated biogenic silica production
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intpbsi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    intpcalcite
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_calcite_expressed_as_carbon_due_to_biological_production
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Calcite Production
-comment:           Vertically integrated calcite production
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intpcalcite
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    intparag
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_aragonite_expressed_as_carbon_due_to_biological_production
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Aragonite Production
-comment:           Vertically integrated aragonite production
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intparag
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    epc100
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Downward Flux of Particle Organic Carbon at 100M
-comment:           sinking flux of organic carbon at 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth100m
-out_name:          epc100
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    epfe100
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sinking_mole_flux_of_particulate_iron_in_sea_water
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Downward Flux of Particulate Iron at 100M
-comment:           sinking flux of biogenic and scavenged iron at 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth100m
-out_name:          epfe100
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    epsi100
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sinking_mole_flux_of_particulate_silicon_in_sea_water
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Downward Flux of Particulate Silica at 100M
-comment:           sinking flux of biogenic silica at 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth100m
-out_name:          epsi100
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    epcalc100
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Downward Flux of Calcite at 100M
-comment:           sinking flux of calcite at 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth100m
-out_name:          epcalc100
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    eparag100
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Downward Flux of Aragonite at 100M
-comment:           sinking flux of aragonite at 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time depth100m
-out_name:          eparag100
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    intdic
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_mass_content_of_dissolved_inorganic_carbon
-units:             kg m-2
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Dissolved Inorganic Carbon Content
-comment:           Vertically integrated DIC
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intdic
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    spco2
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_partial_pressure_of_carbon_dioxide_in_sea_water
-units:             Pa
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Surface Aqueous Partial Pressure of CO2
-comment:           Surface aqueous partial pressure of CO2
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          spco2
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    dpco2
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air
-units:             Pa
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Delta PCO2
-comment:           Difference between atmospheric and oceanic partial pressure of CO2 (positive meaning ocean > atmosphere)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          dpco2
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    dpo2
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_molecular_oxygen_partial_pressure_difference_between_sea_water_and_air
-units:             Pa
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Delta PO2
-comment:           Difference between atmospheric and oceanic partial pressure of O2 (positive meaning ocean > atmosphere)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          dpo2
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fgco2
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon
-units:             kg m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Surface Downward CO2 Flux
-comment:           Gas exchange flux of CO2 (positive into ocean)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fgco2
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    fgo2
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_mole_flux_of_molecular_oxygen
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Surface Downward O2 Flux
-comment:           Gas exchange flux of O2 (positive into ocean)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fgo2
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    fgdms
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_mole_flux_of_dimethyl_sulfide
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Surface Upward DMS Flux
-comment:           Gas exchange flux of DMS (positive into atmosphere)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fgdms
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fsc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_carbon_due_to_runoff_and_sediment_dissolution
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Flux of Carbon Into Ocean Surface by Runoff and Sediment Dissolution
-comment:           Carbon supply to ocean through runoff and sediment dissolution (neglects gas exchange)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fsc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    frc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_carbon_due_to_sedimentation
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Downward Carbon Flux at Ocean Bottom
-comment:           Carbon loss to sediments
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          frc
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    intpn2
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_fixation
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Nitrogen Fixation Rate in Ocean
-comment:           Vertically integrated nitrogen fixation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          intpn2
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fsn
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_deposition_and_fixation_and_runoff
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Surface Downward Net Flux of Nitrogen
-comment:           N supply through deposition flux onto sea surface, nitrogen fixation, and runoff
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fsn
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    frn
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_denitrification_and_sedimentation
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Nitrogen Loss to Sediments and through Denitrification
-comment:           N loss to sediment and water column denitrification
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          frn
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fsfe
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_iron_due_to_deposition_and_runoff_and_sediment_dissolution
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Surface Downward Net Flux of Iron
-comment:           Iron supply through deposition flux onto sea surface, runoff, coasts, sediments, etc
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fsfe
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    frfe
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_iron_due_to_sedimentation
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Iron Loss to Sediments
-comment:           Iron loss to sediments
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          frfe
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    o2min
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_shallowest_local_minimum_in_vertical_profile
-units:             mol m-3
-cell_methods:      time: mean area: where sea depth: minimum
-cell_measures:     area: areacello
-long_name:         Oxygen Minimum Concentration
-comment:           Vertical minimum concentration of dissolved oxygen gas
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          o2min
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zo2min
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     depth_at_shallowest_local_minimum_in_vertical_profile_of_mole_concentration_of_dissolved_molecular_oxygen_in_sea_water
-units:             m
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Depth of Oxygen Minimum Concentration
-comment:           Depth of vertical minimum concentration of dissolved oxygen gas (if two, then the shallower)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          zo2min
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zsatcalc
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     minimum_depth_of_calcite_undersaturation_in_sea_water
-units:             m
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Calcite Saturation Depth
-comment:           Depth of calcite saturation horizon (0 if < surface, ""missing"" if > bottom, if two, then the shallower)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          zsatcalc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zsatarag
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     minimum_depth_of_aragonite_undersaturation_in_sea_water
-units:             m
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Aragonite Saturation Depth
-comment:           Depth of aragonite saturation horizon (0 if < surface, ""missing""  if > bottom, if two, then the shallower)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          zsatarag
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fddtdic
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Net Dissolved Inorganic Carbon
-comment:           Net time rate of change of dissolved inorganic carbon in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fddtdic
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fddtdin
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Net Dissolved Inorganic Nitrogen
-comment:           Net time rate of change of nitrogen nutrients (e.g. NO3+NH4) in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fddtdin
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fddtdip
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Net Dissolved Inorganic Phosphate
-comment:           vertical integral of net  time rate of change of phosphate in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fddtdip
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fddtdife
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_dissolved_inorganic_iron
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Net Dissolved Inorganic Iron
-comment:           vertical integral of net time rate of change of dissolved inorganic iron in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fddtdife
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fddtdisi
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Net Dissolved Inorganic Silicate
-comment:           vertical integral of net time rate of change of dissolved inorganic silicate in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fddtdisi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fddtalk
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Alkalinity
-comment:           vertical integral of net time rate of change of alkalinity in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fddtalk
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fbddtdic
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon_due_to_biological_processes
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Dissolved Inorganic Carbon due to Biological Activity
-comment:           vertical integral of net biological terms in time rate of change of dissolved inorganic carbon in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fbddtdic
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fbddtdin
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen_due_to_biological_processes
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Dissolved Inorganic Nitrogen due to Biological Activity
-comment:           vertical integral of net biological terms in time rate of change of nitrogen nutrients (e.g. NO3+NH4) in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fbddtdin
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fbddtdip
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus_due_to_biological_processes
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Dissolved Inorganic Phosphate due to Biological Activity
-comment:           vertical integral of net biological terms in time rate of change of phosphate in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fbddtdip
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fbddtdife
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_dissolved_inorganic_iron_due_to_biological_processes
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Dissolved Inorganic Iron due to Biological Activity
-comment:           vertical integral of net biological terms in time rate of change of dissolved inorganic iron in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fbddtdife
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fbddtdisi
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon_due_to_biological_processes
-units:             mol m-2 s-1
-cell_methods:      time: mean area: where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Dissolved Inorganic Silicate due to Biological Activity
-comment:           vertical integral of net biological terms in time rate of change of dissolved inorganic silicate in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fbddtdisi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fbddtalk
-!============
-modeling_realm:    ocnBgchem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes
-units:             mol m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Rate of Change in Upper 100 m of Biological Alkalinity due to Biological Activity
-comment:           vertical integral of net biological terms in time rate of change of alkalinity in upper 100m
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time olayer100m
-out_name:          fbddtalk
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    masso
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_mass
-units:             kg 
-cell_methods:      time: mean area: sum where sea
-long_name:         Sea Water Mass 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          masso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    pbo
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_pressure_at_sea_floor
-units:             dbar 
-cell_methods:      time: mean
-cell_measures:     area: areacello
-long_name:         Sea Water Pressure at Sea floor 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          pbo
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    pso
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_pressure_at_sea_water_surface
-units:             dbar 
-cell_methods:      time: mean
-cell_measures:     area: areacello
-long_name:         Sea Water Pressure at Sea Water Surface 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          pso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    volo
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_volume
-units:             m3
-cell_methods:      time: mean area: sum where sea
-long_name:         Sea Water Volume 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          volo
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zos
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_surface_height_above_geoid
-units:             m 
-cell_methods:      time: mean
-cell_measures:     area: areacello
-long_name:         Sea Surface Height Above Geoid 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          zos
-type:              real
-valid_min:         -13.97
-valid_max:         9.575
-ok_min_mean_abs:   0.008384
-ok_max_mean_abs:   1.572
-!----------------------------------
-!
-
-!============
-variable_entry:    zossq
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     square_of_sea_surface_height_above_geoid
-units:             m2
-cell_methods:      time: mean
-cell_measures:     area: areacello
-long_name:         Square of Sea Surface Height Above Geoid 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          zossq
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zosga
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     global_average_sea_level_change
-units:             m 
-cell_methods:      time: mean area: mean where sea
-long_name:         Global Average Sea Level Change 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          zosga
-type:              real
-valid_min:         -0.1426
-valid_max:         0.382
-ok_min_mean_abs:   -0.09124
-ok_max_mean_abs:   0.3304
-!----------------------------------
-!
-
-!============
-variable_entry:    zossga
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     global_average_steric_sea_level_change
-units:             m 
-cell_methods:      time: mean area: mean where sea
-long_name:         Global Average Steric Sea Level Change 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          zossga
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zostoga
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     global_average_thermosteric_sea_level_change
-units:             m 
-cell_methods:      time: mean area: mean where sea
-long_name:         Global Average Thermosteric Sea Level Change 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          zostoga
-type:              real
-valid_min:         -0.1375
-valid_max:         0.3734
-ok_min_mean_abs:   -0.0511
-ok_max_mean_abs:   0.2998
-!----------------------------------
-!
-
-!============
-variable_entry:    masscello
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_mass_per_unit_area
-units:             kg m-2
-cell_methods:      time: mean
-cell_measures:     area: areacello volume: volcello
-long_name:         Sea Water Mass Per Unit Area 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          masscello
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    thkcello
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cell_thickness
-units:             m 
-cell_methods:      time: mean
-cell_measures:     area: areacello volume: volcello
-long_name:         Ocean Model Cell Thickness 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          thkcello
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    thetao
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_potential_temperature
-units:             K 
-cell_methods:      time: mean
-cell_measures:     area: areacello volume: volcello
-long_name:         Sea Water Potential Temperature 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          thetao
-type:              real
-valid_min:         -9.37e+17
-valid_max:         1.009e+20
-ok_min_mean_abs:   -9.37e+17
-ok_max_mean_abs:   1.009e+20
-!----------------------------------
-!
-
-!============
-variable_entry:    thetaoga
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_potential_temperature
-units:             K 
-cell_methods:      time: mean area: mean where sea
-long_name:         Global Average Sea Water Potential Temperature 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          thetaoga
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tos
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_surface_temperature
-units:             K 
-cell_methods:      time: mean
-cell_measures:     area: areacello
-long_name:         Sea Surface Temperature 
-comment:           "this may differ from ""surface temperature"" in regions of sea ice."
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tos
-type:              real
-valid_min:         270.6
-valid_max:         313.9
-ok_min_mean_abs:   283.7
-ok_max_mean_abs:   291.7
-!----------------------------------
-!
-
-!============
-variable_entry:    tossq
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     square_of_sea_surface_temperature
-units:             K2 
-cell_methods:      time: mean
-cell_measures:     area: areacello
-long_name:         Square of Sea Surface Temperature 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tossq
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    so
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_salinity
-units:             psu 
-cell_methods:      time: mean
-cell_measures:     area: areacello volume: volcello
-long_name:         Sea Water Salinity 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          so
-type:              real
-valid_min:         -9.37e+17
-valid_max:         1.009e+20
-ok_min_mean_abs:   -9.37e+17
-ok_max_mean_abs:   1.009e+20
-!----------------------------------
-!
-
-!============
-variable_entry:    soga
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_salinity
-units:             psu 
-cell_methods:      time: mean area: mean where sea
-long_name:         Global Mean Sea Water Salinity 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          soga
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sos
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_surface_salinity
-units:             psu 
-cell_methods:      time: mean
-cell_measures:     area: areacello
-long_name:         Sea Surface Salinity 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sos
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    rhopoto
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_potential_density
-units:             kg m-3
-cell_methods:      time: mean
-cell_measures:     area: areacello volume: volcello
-long_name:         Sea Water Potential Density 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          rhopoto
-type:              real
-valid_min:         -3.257
-valid_max:         1057
-ok_min_mean_abs:   10.38
-ok_max_mean_abs:   1042
-!----------------------------------
-!
-
-!============
-variable_entry:    agessc
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_age_since_surface_contact
-units:             yr 
-cell_methods:      time: mean
-cell_measures:     area: areacello volume: volcello
-long_name:         Sea Water Age Since Surface Contact 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          agessc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cfc11
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     moles_of_cfc11_per_unit_mass_in_sea_water
-units:             mol kg-1 
-cell_methods:      time: mean
-cell_measures:     area: areacello volume: volcello
-long_name:         Moles Per Unit Mass of CFC-11 in Sea Water 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          cfc11
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    msftbarot
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_barotropic_mass_streamfunction
-units:             kg s-1
-cell_methods:      time: mean
-cell_measures:     area: areacello
-long_name:         Ocean Barotropic Mass Streamfunction 
-comment:           differs from CMIP3 because it includes mass.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          msftbarot
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    mlotst
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_mixed_layer_thickness_defined_by_sigma_t
-units:             m 
-cell_methods:      time: mean
-cell_measures:     area: areacello
-long_name:         Ocean Mixed Layer Thickness Defined by Sigma T 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          mlotst
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    mlotstsq
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     square_of_ocean_mixed_layer_thickness_defined_by_sigma_t
-units:             m2
-cell_methods:      time: mean
-cell_measures:     area: areacello
-long_name:         Square of Ocean Mixed Layer Thickness Defined by Sigma T 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          mlotstsq
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    omldamax
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_mixed_layer_thickness_defined_by_mixing_scheme
-units:             m 
-cell_methods:      time: maximum within days time: mean over days
-cell_measures:     area: areacello
-long_name:         Mean Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          omldamax
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    omlmax
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_mixed_layer_thickness_defined_by_mixing_scheme
-units:             m 
-cell_methods:      time: maximum
-cell_measures:     area: areacello
-long_name:         Monthly Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          omlmax
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    uo
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_x_velocity
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Sea Water X Velocity 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          uo
-type:              real
-valid_min:         -1.041e+18
-valid_max:         1.01e+20
-ok_min_mean_abs:   -1.041e+18
-ok_max_mean_abs:   1.01e+20
-!----------------------------------
-!
-
-!============
-variable_entry:    vo
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_y_velocity
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Sea Water Y Velocity 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          vo
-type:              real
-valid_min:         -1.041e+18
-valid_max:         1.01e+20
-ok_min_mean_abs:   -1.041e+18
-ok_max_mean_abs:   1.01e+20
-!----------------------------------
-!
-
-!============
-variable_entry:    wmo
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upward_ocean_mass_transport
-units:             kg s-1
-cell_methods:      time: mean
-cell_measures:     area: areacello volume: volcello
-long_name:         Upward Ocean Mass Transport 
-comment:           differs from CMIP3, which only had upward velocity.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          wmo
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    wmosq
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     square_of_upward_ocean_mass_transport
-units:             kg2 s-2
-cell_methods:      time: mean
-cell_measures:     area: areacello volume: volcello
-long_name:         Square of Upward Ocean Mass Transport 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          wmosq
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    umo
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_mass_x_transport
-units:             kg s-1
-cell_methods:      time: mean
-long_name:         Ocean Mass X Transport 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          umo
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    vmo
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_mass_y_transport
-units:             kg s-1
-cell_methods:      time: mean
-long_name:         Ocean Mass Y Transport 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          vmo
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    msftmyz
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_meridional_overturning_mass_streamfunction
-units:             kg s-1
-cell_methods:      time: mean longitude: mean
-long_name:         Ocean Meridional Overturning Mass Streamfunction 
-comment:           function of latitude, Z, basin. differs from CMIP3 because it includes mass.  For a model with a cartesian latxlon grid, this is the same as the ""Ocean Y Overturning Mass Streamfunction"", listed a few lines down, which should in this case be omitted.  For other models, this transport should be approximated as the transport along zig-zag paths corresponding to latitudes with spacing between latitudes appropriate to the model's resolution.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude olevel basin time
-out_name:          msftmyz
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    msftmrhoz
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_meridional_overturning_mass_streamfunction
-units:             kg s-1
-cell_methods:      time: mean longitude: mean
-long_name:         Ocean Meridional Overturning Mass Streamfunction 
-comment:           function of of latitude, rho, basin.  Also see note above.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude rho basin time
-out_name:          msftmrhoz
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    msftyyz
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_y_overturning_mass_streamfunction
-units:             kg s-1
-cell_methods:      time: mean longitude: mean
-long_name:         Ocean Y Overturning Mass Streamfunction 
-comment:           function of Y, Z, basin.   Also see note above.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude olevel basin time
-out_name:          msftyyz
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    msftyrhoz
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_y_overturning_mass_streamfunction
-units:             kg s-1
-cell_methods:      time: mean longitude: mean
-long_name:         Ocean Y Overturning Mass Streamfunction 
-comment:           function of Y, rho, basin.  Also see note above.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude rho basin time
-out_name:          msftyrhoz
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    msftmyzba
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_meridional_overturning_mass_streamfunction_due_to_bolus_advection
-units:             kg s-1
-cell_methods:      time: mean longitude: mean
-long_name:         Ocean Meridional Overturning Mass Streamfunction due to Bolus Advection 
-comment:           function of latitude, Z, basin.   Also see note above.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude olevel basin time
-out_name:          msftmyzba
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    msftmrhozba
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_meridional_overturning_mass_streamfunction_due_to_bolus_advection
-units:             kg s-1
-cell_methods:      time: mean longitude: mean
-long_name:         Ocean Meridional Overturning Mass Streamfunction due to Bolus Advection 
-comment:           function of latitude, rho, basin.  Also see note above.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude rho basin time
-out_name:          msftmrhozba
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    msftyyzba
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_y_overturning_mass_streamfunction_due_to_bolus_advection
-units:             kg s-1
-cell_methods:      time: mean longitude: mean
-long_name:         Ocean Y Overturning Mass Streamfunction due to Bolus Advection 
-comment:           function of Y, Z, basin.  Also see note above.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude olevel basin time
-out_name:          msftyyzba
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    msftyrhozba
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_y_overturning_mass_streamfunction_due_to_bolus_advection
-units:             kg s-1
-cell_methods:      time: mean longitude: mean
-long_name:         Ocean Y Overturning Mass Streamfunction due to Bolus Advection 
-comment:           function of Y, rho, basin.  Also see note above.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude rho basin time
-out_name:          msftyrhozba
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfnorth
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_ocean_heat_transport
-units:             W 
-cell_methods:      time: mean
-long_name:         Northward Ocean Heat Transport 
-comment:           For a model with a cartesian latxlon grid, this is the same as the ""Ocean Heat Y Transport"", listed a few lines down, which should in this case be omitted.  For other models, this transport should be approximated as the transport along zig-zag paths corresponding to latitudes with spacing between latitudes appropriate to the model's resolution.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfnorth
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfnorthba
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_ocean_heat_transport_due_to_bolus_advection
-units:             W 
-cell_methods:      time: mean
-long_name:         Northward Ocean Heat Transport due to Bolus Advection 
-comment:           see note above.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfnorthba
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfnorthdiff
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_ocean_heat_transport_due_to_diffusion
-units:             W 
-cell_methods:      time: mean
-long_name:         Northward Ocean Heat Transport due to Diffusion 
-comment:           see note above.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfnorthdiff
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfx
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_heat_x_transport
-units:             W 
-cell_methods:      time: mean
-long_name:         Ocean Heat X Transport 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfx
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfy
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_heat_y_transport
-units:             W 
-cell_methods:      time: mean
-long_name:         Ocean Heat Y Transport 
-comment:           For a model with a cartesian latxlon grid, this is the same as the ""Northward Ocean Heat Transport"", listed a few lines above, which should be saved instead of this.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfy
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfyba
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_heat_y_transport_due_to_bolus_advection
-units:             W 
-cell_methods:      time: mean
-long_name:         Ocean Heat Y Transport due to Bolus Advection 
-comment:           see note above.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfyba
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfydiff
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_heat_y_transport_due_to_diffusion
-units:             W 
-cell_methods:      time: mean
-long_name:         Ocean Heat Y Transport due to Diffussion
-comment:           see note above.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfydiff
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfxba
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_heat_x_transport_due_to_bolus_advection
-units:             W 
-cell_methods:      time: mean
-long_name:         Ocean Heat X Transport due to Bolus Advection 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfxba
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfxdiff
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_heat_x_transport_due_to_diffusion
-units:             W 
-cell_methods:      time: mean
-long_name:         Ocean Heat X Transport due to Diffusion 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfxdiff
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfbasin
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_ocean_heat_transport
-units:             W
-cell_methods:      time: mean longitude: mean
-long_name:         Northward Ocean Heat Transport
-comment:           This differs from a similar, previous entry in that northward transport across individual basins is called for, rather than the fully gridded fields.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude basin time
-out_name:          hfbasin
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfbasinba
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_ocean_heat_transport_due_to_bolus_advection
-units:             W
-cell_methods:      time: mean longitude: mean
-long_name:         Northward Ocean Heat Transport due to Bolus Advection 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude basin time
-out_name:          hfbasinba
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfbasindiff
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_ocean_heat_transport_due_to_diffusion
-units:             W
-cell_methods:      time: mean longitude: mean
-long_name:         Northward Ocean Heat Transport due to Diffussion
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude basin time
-out_name:          hfbasindiff
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    htovgyre
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_ocean_heat_transport_due_to_gyre
-units:             W 
-cell_methods:      time: mean longitude: mean
-long_name:         Northward Ocean Heat Transport due to Gyre 
-comment:           function of latitude, basin
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude basin time
-out_name:          htovgyre
-type:              real
-valid_min:         -6.75e+14
-valid_max:         2.691e+15
-ok_min_mean_abs:   5.91e+13
-ok_max_mean_abs:   2.364e+14
-!----------------------------------
-!
-
-!============
-variable_entry:    htovovrt
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_ocean_heat_transport_due_to_overturning
-units:             W 
-cell_methods:      time: mean longitude: mean
-long_name:         Northward Ocean Heat Transport due to Overturning 
-comment:           function of latitude, basin
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude basin time
-out_name:          htovovrt
-type:              real
-valid_min:         -2.386e+15
-valid_max:         1.305e+16
-ok_min_mean_abs:   2.039e+14
-ok_max_mean_abs:   8.156e+14
-!----------------------------------
-!
-
-!============
-variable_entry:    sltovgyre
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_ocean_salt_transport_due_to_gyre
-units:             kg s-1
-cell_methods:      time: mean longitude: mean
-long_name:         Northward Ocean Salt Transport due to Gyre 
-comment:           function of latitude, basin
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude basin time
-out_name:          sltovgyre
-type:              real
-valid_min:         -2.132e+10
-valid_max:         5.333e+10
-ok_min_mean_abs:   1.503e+09
-ok_max_mean_abs:   6.01e+09
-!----------------------------------
-!
-
-!============
-variable_entry:    sltovovrt
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_ocean_salt_transport_due_to_overturning
-units:             kg s-1
-cell_methods:      time: mean longitude: mean
-long_name:         Northward Ocean Salt Transport due to Overturning 
-comment:           function of latitude, basin
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        latitude basin time
-out_name:          sltovovrt
-type:              real
-valid_min:         -1.651e+11
-valid_max:         7.307e+11
-ok_min_mean_abs:   1.069e+10
-ok_max_mean_abs:   4.276e+10
-!----------------------------------
-!
-
-!============
-variable_entry:    mfo
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_water_transport_across_line
-units:             kg s-1
-cell_methods:      time: mean
-long_name:         Sea Water Transport
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        oline time
-out_name:          mfo
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    pr
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     rainfall_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where ice_free_sea over sea
-cell_measures:     area: areacello
-long_name:         Rainfall Flux where Ice Free Ocean over Sea
-comment:           compute as the total mass of liquid water falling as liquid rain  into the ice-free portion of the ocean divided by the area of the ocean portion of the grid cell.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          pr
-type:              real
-valid_min:         0
-valid_max:         0.001254
-ok_min_mean_abs:   2.156e-05
-ok_max_mean_abs:   3.215e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    prsn
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     snowfall_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where ice_free_sea over sea
-cell_measures:     area: areacello
-long_name:         Snowfall Flux where Ice Free Ocean over Sea
-comment:           compute as the total mass of ice directly falling as snow into the ice-free portion of the ocean divided by the area of the ocean portion of the grid cell.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prsn
-type:              real
-valid_min:         0
-valid_max:         0.0002987
-ok_min_mean_abs:   1.449e-06
-ok_max_mean_abs:   6.11e-06
-!----------------------------------
-!
-
-!============
-variable_entry:    evs
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_evaporation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where ice_free_sea over sea
-cell_measures:     area: areacello
-long_name:         Water Evaporation Flux Where Ice Free Ocean over Sea
-comment:           compute as the total mass of water vapor evaporating from the ice-free portion of the ocean  divided by the area of the ocean portion of the grid cell.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          evs
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    friver
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_flux_into_sea_water_from_rivers
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Water Flux into Sea Water From Rivers 
-comment:           compute as the river flux of water into the ocean divided by the area of the ocean portion of the grid cell.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          friver
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ficeberg
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_flux_into_sea_water_from_icebergs
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello volume: volcello
-long_name:         Water Flux into Sea Water From Icebergs 
-comment:           compute as the iceberg melt water  flux into the ocean divided by the area of the ocean portion of the grid cell.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          ficeberg
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fsitherm
-!============
-modeling_realm:    ocean seaIce
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_flux_into_sea_water_due_to_sea_ice_thermodynamics
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Water Flux into Sea Water due to Sea Ice Thermodynamics 
-comment:           compute as the sea ice thermodynamic water flux into the ocean divided by the area of the ocean portion of the grid cell.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fsitherm
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    wfo
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_flux_into_sea_water
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Water Flux into Sea Water 
-comment:           compute as the water  flux into the ocean divided by the area of the ocean portion of the grid cell.  This is the sum of the next two variables in this table.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          wfo
-type:              real
-valid_min:         -0.005411
-valid_max:         0.03952
-ok_min_mean_abs:   1.831e-05
-ok_max_mean_abs:   6.051e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    wfonocorr
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_flux_into_sea_water_without_flux_correction
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Water Flux into Sea Water Without Flux Correction 
-comment:           compute as the water  flux (without flux correction) into the ocean divided by the area of the ocean portion of the grid cell.  This is the sum of the first 6 variables in this table?
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          wfonocorr
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    wfcorr 
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_flux_correction
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Water Flux Correction 
-comment:           If this does not vary from one year to the next, report only a single year.  Positive flux implies correction adds water to ocean.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          wfcorr 
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    vsfpr
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     virtual_salt_flux_into_sea_water_due_to_rainfall
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Virtual Salt Flux into Sea Water due to Rainfall 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          vsfpr
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    vsfevap
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     virtual_salt_flux_into_sea_water_due_to_evaporation
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Virtual Salt Flux into Sea Water due to Evaporation 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          vsfevap
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    vsfriver
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     virtual_salt_flux_into_sea_water_from_rivers
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Virtual Salt Flux into Sea Water From Rivers 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          vsfriver
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    vsfsit
-!============
-modeling_realm:    ocean seaIce
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     virtual_salt_flux_into_sea_water_due_to_sea_ice_thermodynamics
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Virtual Salt Flux into Sea Water due to Sea Ice Thermodynamics 
-comment:           This variable measures the virtual salt flux into sea water due to the melting of sea ice. It is set to zero in models which receive a real water flux.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          vsfsit
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    vsf
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     virtual_salt_flux_into_sea_water
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Virtual Salt Flux into Sea Water 
-comment:           If this does not vary from one year to the next, report only a single year.  Positive flux implies correction increases salinity of water.  This includes all virtual salt flux, including that due to a salt flux correction.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          vsf
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    vsfcorr 
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     virtual_salt_flux_correction
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Virtual Salt Flux Correction 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          vsfcorr 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sfdsi
-!============
-modeling_realm:    ocean seaIce
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downward_sea_ice_basal_salt_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Downward Sea Ice Basal Salt Flux
-comment:           This field is physical, and it arises since sea ice has a nonzero salt content, so it exchanges salt with the liquid ocean upon melting and freezing.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sfdsi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sfriver
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     salt_flux_into_sea_water_from_rivers
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Salt Flux into Sea Water from Rivers 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sfriver
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfgeou
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upward_geothermal_heat_flux_at_sea_floor
-units:             W m-2
-cell_methods:      time: mean area: whre sea
-cell_measures:     area: areacello
-long_name:         Upward Geothermal Heat Flux at Sea Floor 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfgeou
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfrainds
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water
-units:             W m-2
-cell_methods:      time: mean area: mean where ice_free_sea over sea
-cell_measures:     area: areacello
-long_name:         Temperature Flux due to Rainfall Expressed as Heat Flux into Sea Water 
-comment:           This is defined as ""where ice_free_sea over sea""; i.e., compute the total flux (considered here) entering the ice-free portion of the grid cell divided by the area of the ocean portion of the grid cell.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfrainds
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    hfevapds
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water
-units:             W m-2
-cell_methods:      time: mean area: mean where ice_free_sea over sea
-cell_measures:     area: areacello
-long_name:         Temperature Flux due to Evaporation Expressed as Heat Flux Out of Sea Water 
-comment:           "This is defined as ""where ice_free_sea over sea"""
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfevapds
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfrunoffds
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water
-units:             W m-2
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello volume: volcello
-long_name:         Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water 
-comment:           In general this should be reported as a function of depth, (i.e.,  it will be a function of the generic ""XYZ"" dimensions).  Include enough depth levels to represent  the non-zero values of this field everywhere on the globe. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          hfrunoffds
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfsnthermds
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     heat_flux_into_sea_water_due_to_snow_thermodynamics
-units:             W m-2
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello volume: volcello
-long_name:         Heat Flux into Sea Water due to Snow Thermodynamics 
-comment:           In general this should be reported as a function of depth, (i.e.,  it will be a function of the generic ""XYZ"" dimensions).  Include enough depth levels to represent  the non-zero values of this field everywhere on the globe. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          hfsnthermds
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfsifrazil
-!============
-modeling_realm:    ocean seaIce
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     heat_flux_into_sea_water_due_to_freezing_of_frazil_ice
-units:             W m-2
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello volume: volcello
-long_name:         Heat Flux into Sea Water due to Frazil Ice Formation 
-comment:           As of May 2010, the WGOMD document recommends that this field should be saved instead of the field listed immediately below.  In general this should be reported as a function of depth, (i.e.,  it will be a function of the generic ""XYZ"" dimensions).  Include enough depth levels to represent  the non-zero values of this field everywhere on the globe. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          hfsifrazil
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfsithermds
-!============
-modeling_realm:    ocean seaIce
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     heat_flux_into_sea_water_due_to_sea_ice_thermodynamics
-units:             W m-2
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello volume: volcello
-long_name:         Heat Flux into Sea Water due to Sea Ice Thermodynamics 
-comment:           As of May 2010, the WGOMD document recommends that instead of saving this field, the field listed immediately above should be saved instead.  In general this should be reported as a function of depth, (i.e.,  it will be a function of the generic ""XYZ"" dimensions).  Include enough depth levels to represent  the non-zero values of this field everywhere on the globe. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          hfsithermds
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfibthermds
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     heat_flux_into_sea_water_due_to_iceberg_thermodynamics
-units:             W m-2
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello volume: volcello
-long_name:         Heat Flux into Sea Water due to Iceberg Thermodynamics 
-comment:           In general this should be reported as a function of depth, (i.e.,  it will be a function of the generic ""XYZ"" dimensions).  Include enough depth levels to represent  the non-zero values of this field everywhere on the globe. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          hfibthermds
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    rlds
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_net_downward_longwave_flux
-units:             W m-2
-cell_methods:      time: mean area: mean where ice_free_sea over sea
-cell_measures:     area: areacello
-long_name:         Surface Net Downward Longwave Radiation
-comment:           "This is defined as ""where ice_free_sea over sea"""
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlds
-type:              real
-positive:          down
-valid_min:         30.71
-valid_max:         520.5
-ok_min_mean_abs:   271.2
-ok_max_mean_abs:   323.6
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean area: mean where ice_free_sea over sea
-cell_measures:     area: areacello
-long_name:         Surface Downward Latent Heat Flux
-comment:           "This is defined as ""where ice_free_sea over sea"""
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfls
-type:              real
-positive:          down
-valid_min:         -76.77
-valid_max:         790.7
-ok_min_mean_abs:   50.39
-ok_max_mean_abs:   73.2
-!----------------------------------
-!
-
-!============
-variable_entry:    hfss
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_sensible_heat_flux
-units:             W m-2
-cell_methods:      time: mean area: mean where ice_free_sea over sea
-cell_measures:     area: areacello
-long_name:         Surface Downward Sensible Heat Flux
-comment:           "This is defined as ""where ice_free_sea over sea"""
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfss
-type:              real
-positive:          down
-valid_min:         -264.5
-valid_max:         844.8
-ok_min_mean_abs:   10.7
-ok_max_mean_abs:   34.84
-!----------------------------------
-!
-
-!============
-variable_entry:    rsntds
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_downward_shortwave_flux_at_sea_water_surface
-units:             W m-2
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Net Downward Shortwave Radiation at Sea Water Surface 
-comment:           This is the flux into the surface of liquid sea water only. This excludes shortwave flux absorbed by sea ice, but includes any light that passes through the ice and is absorbed by the ocean.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsntds
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsds
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_shortwave_flux_in_sea_water
-units:             W m-2
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello volume: volcello
-long_name:         Downwelling Shortwave Radiation in Sea Water 
-comment:           In general the shortwave flux should be reported as a function of ocean depth, (i.e.,  it will be a function of the generic ""XYZ"" dimensions).  Include enough depth levels to represent  the non-zero values of this field everywhere on the globe. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel time
-out_name:          rsds
-type:              real
-positive:          down
-valid_min:         -0.002946
-valid_max:         524.4
-ok_min_mean_abs:   143.9
-ok_max_mean_abs:   181.6
-!----------------------------------
-!
-
-!============
-variable_entry:    hfcorr 
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     heat_flux_correction
-units:             W m-2
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Heat Flux Correction 
-comment:           If this does not vary from one year to the next, report only a single year.  Positive indicates correction adds heat to ocean.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfcorr 
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    hfds
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_heat_flux_in_sea_water
-units:             W m-2
-cell_methods:      time: mean area: mean where sea
-cell_measures:     area: areacello
-long_name:         Downward Heat Flux at Sea Water Surface
-comment:           "This is the net flux of heat entering the liquid water column through its upper surface (excluding any ""flux adjustment"") ."
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfds
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    tauuo 
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_x_stress
-units:             N m-2
-cell_methods:      time: mean area: mean where sea
-long_name:         Surface Downward X Stress 
-comment:           This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tauuo 
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    tauvo 
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_y_stress
-units:             N m-2
-cell_methods:      time: mean area: mean where sea
-long_name:         Surface Downward Y Stress 
-comment:           This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tauvo 
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    tauucorr 
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_x_stress_correction
-units:             N m-2
-cell_methods:      time: mean area: mean where sea
-long_name:         Surface Downward X Stress Correction 
-comment:           This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.  If this does not vary from one year to the next, report only a single year.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tauucorr 
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    tauvcorr 
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_y_stress_correction
-units:             N m-2
-cell_methods:      time: mean area: mean where sea
-long_name:         Surface Downward Y Stress Correction 
-comment:           This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.  If this does not vary from one year to the next, report only a single year.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tauvcorr 
-type:              real
-positive:          down
-!----------------------------------
-!
-
diff --git a/TestTables/CMIP5_cf3hr b/TestTables/CMIP5_cf3hr
deleted file mode 100644
index d6eeb0b..0000000
--- a/TestTables/CMIP5_cf3hr
+++ /dev/null
@@ -1,2736 +0,0 @@
-table_id: Table cf3hr
-modeling_realm: atmos
-
-frequency: 3hr
-
-cmor_version: 2.5.0 ! minimum 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:   12 November 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 parent_experiment_rip branch_time contact institute_id ! 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 hindcast initialized in year 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: '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:  0.125000     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-
-generic_levels:   alevel alevhalf
-
-!============
-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.0         
-valid_max:        360.0 
-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.0         
-valid_max:        90.0 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: p220
-!============
-!----------------------------------
-! 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
-type:             double
-value:            22000.            ! of scalar (singleton) dimension 
-bounds_values:    44000. 0.0    ! of scalar (singleton) dimension bounds
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: p560
-!============
-!----------------------------------
-! 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
-type:             double
-value:            56000.            ! of scalar (singleton) dimension 
-bounds_values:    68000. 44000.    ! of scalar (singleton) dimension bounds
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: p840
-!============
-!----------------------------------
-! 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
-type:             double
-value:            84000.            ! of scalar (singleton) dimension 
-bounds_values:    100000. 68000.    ! of scalar (singleton) dimension bounds
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: alt40
-!============
-!----------------------------------
-! 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:         alt40
-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. 1776 [...]
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-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: time1
-!============
-!----------------------------------
-! 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: no
-!----------------------------------
-!
-
-
-!============
-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.0         
-valid_max:        10.0 
-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.0         
-valid_max:        30.0 
-stored_direction: increasing
-type:             double
-value:            10.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: scatratio
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    backscattering_ratio
-units:            1
-long_name:        lidar backscattering ratio
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         scatratio
-stored_direction: increasing
-tolerance:        0.001
-type:             double
-requested:        0.0605 2.1 4. 6. 8.5 12.5 17.5 22.5 27.5 35. 45. 55. 70. 539.5 1004.        ! space-separated list of requested coordinates 
-requested_bounds: 0.01 1.2 1.2 3. 3. 5. 5. 7. 7. 10. 10. 15. 15. 20. 20. 25. 25. 30. 30. 40. 40. 50. 50. 60. 60. 80. 80. 999. 999. 1009. ! space-separated list of requested coordinate bounds
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: dbze
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    equivalent_reflectivity_factor
-units:            dBZ
-long_name:        CloudSat simulator equivalent radar reflectivity factor
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         dbze
-stored_direction: increasing
-tolerance:        0.001
-type:             double
-requested:        -47.5 -42.5 -37.5 -32.5 -27.5 -22.5 -17.5 -12.5 -7.5 -2.5 2.5 7.5 12.5 17.5 22.5        ! space-separated list of requested coordinates 
-requested_bounds: -50. -45. -45. -40. -40. -35. -35. -30. -30. -25. -25. -20. -20. -15. -15. -10. -10. -5. -5. 0. 0. 5. 5. 10. 10. 15. 15. 20. 20. 25. ! space-separated list of requested coordinate bounds
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: sza5
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    solar_zenith_angle
-units:            degree
-long_name:        solar zenith angle
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         sza
-stored_direction: increasing
-tolerance:        0.001
-type:             double
-requested:        0. 20. 40. 60. 80.        ! space-separated list of requested coordinates 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: location
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-units:            1
-long_name:        location index
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         loc
-stored_direction: increasing
-type:             integer
-must_have_bounds: no
-index_only:       ok
-must_call_cmor_grid: yes
-
-!----------------------------------
-!
-
-!============
-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:      clcalipso 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: point
-long_name:         CALIPSO Cloud Area Fraction
-comment:           (40 height levels)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location alt40 time1
-out_name:            clcalipso 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clcalipso2  
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: point
-long_name:         CALIPSO Cloud Fraction Undetected by CloudSat
-comment:           (40 height levels)  Clouds detected by CALIPSO but below the detectability threshold of CloudSat
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location alt40 time1
-out_name:          clcalipso2  
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cfadDbze94
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid
-units:             1
-cell_methods:      time: point
-long_name:         CloudSat Radar Reflectivity CFAD
-comment:           CFADs (Cloud Frequency Altitude Diagrams) are joint height - radar reflectivity (or lidar scattering ratio) distributions  (40 levelsx15 bins) .
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location alt40 dbze time1
-out_name:          cfadDbze94
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cfadLidarsr532
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid
-units:             1
-cell_methods:      time: point
-long_name:         CALIPSO Scattering Ratio CFAD
-comment:           CFADs (Cloud Frequency Altitude Diagrams) are joint height - radar reflectivity (or lidar scattering ratio) distributions  (40 levelsx15 bins) .
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location alt40 scatratio time1
-out_name:          cfadLidarsr532
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    parasolRefl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_bidirectional_reflectance
-units:             1
-cell_methods:      time: point
-long_name:         PARASOL Reflectance
-comment:           Simulated reflectance from PARASOL as seen at the top of the atmosphere for 5 solar zenith angles. Valid only over ocean and for one viewing direction (viewing zenith angle of 30 degrees and relative azimuth angle 320 degrees).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location sza5 time1
-out_name:          parasolRefl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cltcalipso
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction
-units:             %
-cell_methods:      time: point
-long_name:         CALIPSO Total Cloud Fraction 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location time1
-out_name:          cltcalipso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cllcalipso
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: point
-long_name:         CALIPSO Low Level Cloud Fraction 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location time1 p840
-out_name:          cllcalipso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clmcalipso
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: point
-long_name:         CALIPSO Mid Level Cloud Fraction 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location time1 p560
-out_name:          clmcalipso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clhcalipso
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: point
-long_name:         CALIPSO High Level Cloud Fraction 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location time1 p220
-out_name:          clhcalipso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    longitude
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     longitude
-units:             degrees_east
-cell_methods:      time: point
-long_name:         Longitude
-comment:           is a function of time.  Note that the CF convention and CMOR2 require that this field will be included in each file that contains a variable that is a function of the ""location"" dimension, so there is no need to save this field by itself.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location time1
-out_name:          lon
-type:              real
-valid_min:         0.0
-valid_max:         360.0
-!----------------------------------
-!
-
-!============
-variable_entry:    latitude
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     latitude
-units:             degrees_north
-cell_methods:      time: point
-long_name:         Latitude
-comment:           the above comment also applies to latitude.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location time1
-out_name:          lat
-type:              real
-valid_min:         -90.0
-valid_max:         90.0
-!----------------------------------
-!
-
-!============
-variable_entry:    toffset
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     time
-units:             day
-long_name:         Offset Time
-comment:           "this ""offset time"" should be added to the value stored in the ""time dimension"" to get the actual time.  This actual time is the time (UTC) of the corresponding point in the satellite orbit used to extract the model data."
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        location time1
-out_name:          toffset
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Near-Surface Air Temperature
-comment:           near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1 height2m
-out_name:          tas
-type:              real
-valid_min:         180.6
-valid_max:         325.7
-ok_min_mean_abs:   273.5
-ok_max_mean_abs:   281.7
-!----------------------------------
-!
-
-!============
-variable_entry:    ts
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_temperature
-units:             K
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Temperature
-comment:           ""skin"" temperature (i.e., SST for open ocean)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          ts
-type:              real
-valid_min:         176.8
-valid_max:         331.8
-ok_min_mean_abs:   274.2
-ok_max_mean_abs:   281.8
-!----------------------------------
-!
-
-!============
-variable_entry:    psl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_sea_level
-units:             Pa
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Sea Level Pressure
-comment:           not, in general, the same as surface pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          psl
-type:              real
-valid_min:         9.477e+04
-valid_max:         1.124e+05
-ok_min_mean_abs:   1.003e+05
-ok_max_mean_abs:   1.017e+05
-!----------------------------------
-!
-
-!============
-variable_entry:    ps
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_air_pressure
-units:             Pa
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Air Pressure
-comment:           not, in general, the same as mean sea-level pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          ps
-type:              real
-valid_min:         4.792e+04
-valid_max:         1.093e+05
-ok_min_mean_abs:   9.606e+04
-ok_max_mean_abs:   9.743e+04
-!----------------------------------
-!
-
-!============
-variable_entry:    uas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     eastward_wind
-units:             m s-1
-cell_methods:      time: point
-long_name:         Eastward Near-Surface Wind
-comment:           near-surface (usually, 10 meters) eastward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1 height10m
-out_name:          uas
-type:              real
-valid_min:         -19.01
-valid_max:         18.68
-ok_min_mean_abs:   1.668
-ok_max_mean_abs:   4.106
-!----------------------------------
-!
-
-!============
-variable_entry:    vas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_wind
-units:             m s-1
-cell_methods:      time: point
-long_name:         Northward Near-Surface Wind
-comment:           near-surface (usually, 10 meters) northward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1 height10m
-out_name:          vas
-type:              real
-valid_min:         -18.04
-valid_max:         22.84
-ok_min_mean_abs:   1.065
-ok_max_mean_abs:   2.678
-!----------------------------------
-!
-
-!============
-variable_entry:    sfcWind
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     wind_speed
-units:             m s-1
-cell_methods:      time: point
-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 time1 height10m
-out_name:          sfcWind
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hurs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: point
-cell_measures:     area: areacella
-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 time1 height2m
-out_name:          hurs
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    huss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Near-Surface Specific Humidity
-comment:           near-surface (usually, 2 meters) specific humidity.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1 height2m
-out_name:          huss
-type:              real
-valid_min:         -7.21e-06
-valid_max:         0.02992
-ok_min_mean_abs:   0.006391
-ok_max_mean_abs:   0.008749
-!----------------------------------
-!
-
-!============
-variable_entry:    pr
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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 time1
-out_name:          pr
-type:              real
-valid_min:         0
-valid_max:         0.001254
-ok_min_mean_abs:   2.156e-05
-ok_max_mean_abs:   3.215e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    prsn
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     snowfall_flux
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Snowfall Flux
-comment:           at surface; includes precipitation of all forms of water in the solid phase
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          prsn
-type:              real
-valid_min:         0
-valid_max:         0.0002987
-ok_min_mean_abs:   1.449e-06
-ok_max_mean_abs:   6.11e-06
-!----------------------------------
-!
-
-!============
-variable_entry:    prc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Convective Precipitation
-comment:           at surface; includes both liquid and solid phases.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          prc
-type:              real
-valid_min:         0
-valid_max:         0.0006323
-ok_min_mean_abs:   -2.528e-06
-ok_max_mean_abs:   3.209e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    evspsbl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_evaporation_flux
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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 time1
-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: point
-cell_measures:     area: areacella
-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. This differs from sbl appearing in table Limon in that the flux is averaged over the entire grid cell, not just the land portion.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          sbl
-type:              real
-valid_min:         -0.004959
-valid_max:         0.0009936
-ok_min_mean_abs:   -5.521e-05
-ok_max_mean_abs:   9.61e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    tauu
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_eastward_stress
-units:             Pa
-cell_methods:      time: point
-long_name:         Surface Downward Eastward Wind Stress
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          tauu
-type:              real
-positive:          down
-valid_min:         -2.729
-valid_max:         2.934
-ok_min_mean_abs:   0.03979
-ok_max_mean_abs:   0.1065
-!----------------------------------
-!
-
-!============
-variable_entry:    tauv
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_northward_stress
-units:             Pa
-cell_methods:      time: point
-long_name:         Surface Downward Northward Wind Stress
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          tauv
-type:              real
-positive:          down
-valid_min:         -2.472
-valid_max:         2.527
-ok_min_mean_abs:   0.01447
-ok_max_mean_abs:   0.08134
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          hfls
-type:              real
-positive:          up
-valid_min:         -76.77
-valid_max:         790.7
-ok_min_mean_abs:   50.39
-ok_max_mean_abs:   73.2
-!----------------------------------
-!
-
-!============
-variable_entry:    hfss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_sensible_heat_flux
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Upward Sensible Heat Flux
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          hfss
-type:              real
-positive:          up
-valid_min:         -264.5
-valid_max:         844.8
-ok_min_mean_abs:   10.7
-ok_max_mean_abs:   34.84
-!----------------------------------
-!
-
-!============
-variable_entry:    rlds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          rlds
-type:              real
-positive:          down
-valid_min:         30.71
-valid_max:         520.5
-ok_min_mean_abs:   271.2
-ok_max_mean_abs:   323.6
-!----------------------------------
-!
-
-!============
-variable_entry:    rlus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          rlus
-type:              real
-positive:          up
-valid_min:         43.75
-valid_max:         658
-ok_min_mean_abs:   331.1
-ok_max_mean_abs:   369.9
-!----------------------------------
-!
-
-!============
-variable_entry:    rsds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          rsds
-type:              real
-positive:          down
-valid_min:         -0.002946
-valid_max:         524.4
-ok_min_mean_abs:   143.9
-ok_max_mean_abs:   181.6
-!----------------------------------
-!
-
-!============
-variable_entry:    rsus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          rsus
-type:              real
-positive:          up
-valid_min:         -0.006589
-valid_max:         422.2
-ok_min_mean_abs:   26.22
-ok_max_mean_abs:   43.77
-!----------------------------------
-!
-
-!============
-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: point
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          rsdscs
-type:              real
-positive:          down
-valid_min:         -1.748e+30
-valid_max:         518
-ok_min_mean_abs:   206.9
-ok_max_mean_abs:   238.6
-!----------------------------------
-!
-
-!============
-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: point
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          rsuscs
-type:              real
-positive:          up
-valid_min:         -0.01446
-valid_max:         462.2
-ok_min_mean_abs:   31.65
-ok_max_mean_abs:   61.59
-!----------------------------------
-!
-
-!============
-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: point
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          rldscs
-type:              real
-positive:          down
-valid_min:         33.55
-valid_max:         543.6
-ok_min_mean_abs:   238.6
-ok_max_mean_abs:   293.8
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_incoming_shortwave_flux
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         TOA Incident Shortwave Radiation
-comment:           incident shortwave at the top of the atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          rsdt
-type:              real
-positive:          down
-valid_min:         0
-valid_max:         555.5
-ok_min_mean_abs:   294.4
-ok_max_mean_abs:   303.8
-!----------------------------------
-!
-
-!============
-variable_entry:    rsut
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Shortwave Radiation
-comment:           at the top of the atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          rsut
-type:              real
-positive:          up
-valid_min:         -0.02689
-valid_max:         416.9
-ok_min_mean_abs:   96.72
-ok_max_mean_abs:   114.1
-!----------------------------------
-!
-
-!============
-variable_entry:    rlut
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-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 time1
-out_name:          rlut
-type:              real
-positive:          up
-valid_min:         67.48
-valid_max:         383.2
-ok_min_mean_abs:   214.1
-ok_max_mean_abs:   227.5
-!----------------------------------
-!
-
-!============
-variable_entry:    rlutcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          rlutcs
-type:              real
-positive:          up
-valid_min:         70.59
-valid_max:         372.3
-ok_min_mean_abs:   235.1
-ok_max_mean_abs:   253.8
-!----------------------------------
-!
-
-!============
-variable_entry:    rsutcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          rsutcs
-type:              real
-positive:          up
-valid_min:         0
-valid_max:         444
-ok_min_mean_abs:   54.7
-ok_max_mean_abs:   73.36
-!----------------------------------
-!
-
-!============
-variable_entry:    prw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_water_vapor_content
-units:             kg m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Water Vapor Path
-comment:           vertically integrated through the atmospheric column
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          prw
-type:              real
-valid_min:         -0.0006775
-valid_max:         78.04
-ok_min_mean_abs:   12.75
-ok_max_mean_abs:   23.09
-!----------------------------------
-!
-
-!============
-variable_entry:    clt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction
-units:             %
-cell_methods:      time: point
-cell_measures:     area: areacella
-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 time1
-out_name:          clt
-type:              real
-valid_min:         -0.0001822
-valid_max:         100.2
-ok_min_mean_abs:   39.37
-ok_max_mean_abs:   84.98
-!----------------------------------
-!
-
-!============
-variable_entry:    clwvi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_condensed_water_content
-units:             kg m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-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 time1
-out_name:          clwvi
-type:              real
-valid_min:         -3.827e-06
-valid_max:         3.364
-ok_min_mean_abs:   -0.03549
-ok_max_mean_abs:   0.2846
-!----------------------------------
-!
-
-!============
-variable_entry:    clivi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_ice_content
-units:             kg m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-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 time1
-out_name:          clivi
-type:              real
-valid_min:         -1.872e-06
-valid_max:         1.535
-ok_min_mean_abs:   -0.0348
-ok_max_mean_abs:   0.1187
-!----------------------------------
-!
-
-!============
-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: point
-cell_measures:     area: areacella
-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 time1
-out_name:          rtmt
-type:              real
-positive:          down
-valid_min:         -232.8
-valid_max:         218.7
-ok_min_mean_abs:   77.62
-ok_max_mean_abs:   88.34
-!----------------------------------
-!
-
-!============
-variable_entry:    ccb
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_convective_cloud_base
-units:             Pa
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Air Pressure at Convective Cloud Base
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-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: point
-cell_measures:     area: areacella
-long_name:         Air Pressure at Convective Cloud Top
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          cct
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ci 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convection_time_fraction
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Fraction of Time Convection Occurs
-comment:           Fraction of time that convection occurs in the grid cell .
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          ci 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sci
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     shallow_convection_time_fraction
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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 time1
-out_name:          sci
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2antt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission
-units:             kg  m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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 time1
-out_name:          fco2antt
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2fos
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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 time1
-out_name:          fco2fos
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2nat
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_sources
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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 time1
-out_name:          fco2nat
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    cltc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_cloud_area_fraction
-units:             %
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Convective Cloud Fraction
-comment:           for the whole atmospheric column, as seen from the surface or the top of the atmosphere. Include only convective cloud.  Besides the quantities from the Amon table, this is the only other 2-D field in this table.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time1
-out_name:          cltc
-type:              real
-valid_min:         0.0
-valid_max:         100.0
-!----------------------------------
-!
-
-!============
-variable_entry:    zfull
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     height_above_reference_ellipsoid
-units:             m
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Altitude of Model Full-Levels
-comment:           This is actual height above mean sea level, not geopotential height
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          zfull
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zhalf
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     height_above_reference_ellipsoid
-units:             m
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Altitude of Model Half-Levels
-comment:           This is actual height above mean sea level, not geopotential height.  This is actual height above mean sea level, not geopotential height.  Include both the top of the model atmosphere and surface levels.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time1
-out_name:          zhalf
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    pfull
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure
-units:             Pa
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Pressure at Model Full-Levels
-comment:           provide this field for models in which the pressure can't be calculated from the vertical coordinate information stored already for each variable.  Thus, the pressures are needed for height or theta-coordinate models, for example, but not sigma- or eta-coordinate models.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          pfull
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phalf
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure
-units:             Pa
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Pressure at Model Half-Levels
-comment:           provide this field for models in which the pressure can't be calculated from the vertical coordinate information stored already for each variable.  Thus, the pressures are needed for height or theta-coordinate models, for example, but not sigma- or eta-coordinate models.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time1
-out_name:          phalf
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ta
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Air Temperature
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          ta
-type:              real
-valid_min:         157.1
-valid_max:         326.4
-ok_min_mean_abs:   200.2
-ok_max_mean_abs:   289.9
-!----------------------------------
-!
-
-!============
-variable_entry:    h2o
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_water_in_air
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Mass Fraction of Water
-comment:           include all phases of water
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          h2o
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clws
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_stratiform_cloud_liquid_water_in_air
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Mass Fraction of Stratiform Cloud Liquid Water
-comment:           Calculate as the mass of stratiform cloud liquid water 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 time1
-out_name:          clws
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clis
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_stratiform_cloud_ice_in_air
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Mass Fraction of Stratiform Cloud Ice
-comment:           Calculate as the mass of stratiform 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 time1
-out_name:          clis
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clwc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_convective_cloud_liquid_water_in_air
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Mass Fraction of Convective Cloud Liquid Water
-comment:           Calculate as the mass of convective cloud liquid water 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 time1
-out_name:          clwc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clic
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_convective_cloud_ice_in_air
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Mass Fraction of Convective Cloud Ice
-comment:           Calculate as the mass of convective 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 time1
-out_name:          clic
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    reffclws
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     effective_radius_of_stratiform_cloud_liquid_water_particle
-units:             m
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Hydrometeor Effective Radius of Stratiform Cloud Liquid Water 
-comment:           This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          reffclws
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    reffclis
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     effective_radius_of_stratiform_cloud_ice_particle
-units:             m
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Hydrometeor Effective Radius of Stratiform Cloud Ice
-comment:           This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          reffclis
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    reffclwc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     effective_radius_of_convective_cloud_liquid_water_particle
-units:             m
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Hydrometeor Effective Radius of Convective Cloud Liquid Water
-comment:           This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          reffclwc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    reffclic
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     effective_radius_of_convective_cloud_ice_particle
-units:             m
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Hydrometeor Effective Radius of Convective Cloud Ice
-comment:           This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          reffclic
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    grpllsprof
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     large_scale_graupel_flux
-units:             kg m-2 s-1 
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Stratiform Graupel Flux
-comment:           report on model half-levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          grpllsprof
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    prcprof
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_rainfall_flux
-units:             kg m-2 s-1 
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Convective Rainfall Flux
-comment:           report on model half-levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          prcprof
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    prlsprof
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     large_scale_rainfall_flux
-units:             kg m-2 s-1 
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Stratiform Rainfall Flux
-comment:           report on model half-levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          prlsprof
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    prsnc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_snowfall_flux
-units:             kg m-2 s-1 
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Convective Snowfall Flux
-comment:           report on model half-levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          prsnc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    prlsns
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     large_scale_snowfall_flux
-units:             kg m-2 s-1 
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Stratiform Snowfall Flux
-comment:           report on model half-levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          prlsns
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    reffgrpls
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     effective_radius_of_stratiform_cloud_graupel_particle
-units:             m
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Hydrometeor Effective Radius of Stratiform Graupel
-comment:           This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          reffgrpls
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    reffrainc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     effective_radius_of_convective_cloud_rain_particle
-units:             m
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Hydrometeor Effective Radius of Convective Rainfall
-comment:           This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          reffrainc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    reffrains
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     effective_radius_of_stratiform_cloud_rain_particle
-units:             m
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Hydrometeor Effective Radius of Stratiform Rainfall
-comment:           This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          reffrains
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    reffsnowc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     effective_radius_of_convective_cloud_snow_particle
-units:             m
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Hydrometeor Effective Radius of Convective Snowfall
-comment:           This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          reffsnowc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    reffsnows
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     effective_radius_of_stratiform_cloud_snow_particle
-units:             m
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Hydrometeor Effective Radius of Stratiform Snowfall
-comment:           This is defined as the in-cloud ratio of the third moment over the second moment of the particle size distribution (obtained by considering only the cloudy portion of the grid cell). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          reffsnows
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    dtaus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_optical_thickness_due_to_stratiform_cloud
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Stratiform Cloud Optical Depth
-comment:           This is the in-cloud optical depth obtained by considering only the cloudy portion of the grid cell.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          dtaus
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    dtauc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_optical_thickness_due_to_convective_cloud
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Convective Cloud Optical Depth
-comment:           This is the in-cloud optical depth obtained by considering only the cloudy portion of the grid cell
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          dtauc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    dems
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     stratiform_cloud_longwave_emissivity
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Stratiform Cloud Emissivity
-comment:           This is the in-cloud emissivity obtained by considering only the cloudy portion of the grid cell.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          dems
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    demc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_cloud_longwave_emissivity
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Convective Cloud Emissivity
-comment:           This is the in-cloud emissivity obtained by considering only the cloudy portion of the grid cell.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          demc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Convective Cloud Area Fraction
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          clc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cls
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     stratiform_cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Stratiform Cloud Area Fraction
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time1
-out_name:          cls
-type:              real
-!----------------------------------
-!
-
diff --git a/TestTables/CMIP5_cfMon b/TestTables/CMIP5_cfMon
deleted file mode 100644
index 83d2186..0000000
--- a/TestTables/CMIP5_cfMon
+++ /dev/null
@@ -1,2756 +0,0 @@
-table_id: Table cfMon
-modeling_realm: atmos
-
-frequency: mon
-
-cmor_version: 2.5.0 ! minimum 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:   12 November 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 parent_experiment_rip branch_time contact institute_id ! 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 hindcast initialized in year 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: '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.
-
-generic_levels:   alevel alevhalf
-
-!============
-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.0         
-valid_max:        360.0 
-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.0         
-valid_max:        90.0 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: plev7
-!============
-!----------------------------------
-! 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:        90000. 74000. 62000. 50000. 37500. 24500. 9000.        ! space-separated list of requested coordinates 
-requested_bounds: 100000. 80000. 80000. 68000. 68000. 56000. 56000. 44000. 44000. 31000. 31000. 18000. 18000.  0. ! space-separated list of requested coordinate bounds
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: p220
-!============
-!----------------------------------
-! 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
-type:             double
-value:            22000.            ! of scalar (singleton) dimension 
-bounds_values:    44000. 0.0    ! of scalar (singleton) dimension bounds
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: p560
-!============
-!----------------------------------
-! 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
-type:             double
-value:            56000.            ! of scalar (singleton) dimension 
-bounds_values:    68000. 44000.    ! of scalar (singleton) dimension bounds
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: p840
-!============
-!----------------------------------
-! 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
-type:             double
-value:            84000.            ! of scalar (singleton) dimension 
-bounds_values:    100000. 68000.    ! of scalar (singleton) dimension bounds
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: alt40
-!============
-!----------------------------------
-! 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:         alt40
-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. 1776 [...]
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-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: tau
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    atmosphere_optical_thickness_due_to_cloud
-units:            1
-long_name:        cloud optical thickness
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         tau
-stored_direction: increasing
-tolerance:        0.001
-type:             double
-requested:        0.15 0.8 2.45 6.5 16.2 41.5 100.        ! space-separated list of requested coordinates 
-requested_bounds: 0.0  0.3  0.3  1.3  1.3  3.6  3.6  9.4 9.4 23.0 23.0 60.0 60.0 100000. ! space-separated list of requested coordinate bounds
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: sza5
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    solar_zenith_angle
-units:            degree
-long_name:        solar zenith angle
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         sza
-stored_direction: increasing
-tolerance:        0.001
-type:             double
-requested:        0. 20. 40. 60. 80.        ! space-separated list of requested coordinates 
-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: 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:    rlu
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Upwelling Longwave Radiation
-comment:           Include also the fluxes at the surface and TOA.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rlu
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsu
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Upwelling Shortwave Radiation
-comment:           Include also the fluxes at the surface and TOA.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rsu
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rld
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Downwelling Longwave Radiation
-comment:           Include also the fluxes at the surface and TOA.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rld
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsd
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Downwelling Shortwave Radiation
-comment:           Include also the fluxes at the surface and TOA.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rsd
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rlucs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_longwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Upwelling Clear-Sky Longwave Radiation
-comment:           Include also the fluxes at the surface and TOA.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rlucs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsucs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Upwelling Clear-Sky Shortwave Radiation
-comment:           Include also the fluxes at the surface and TOA.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rsucs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rldcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_longwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Downwelling Clear-Sky Longwave Radiation
-comment:           Include also the fluxes at the surface and TOA.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rldcs
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Downwelling Clear-Sky Shortwave Radiation
-comment:           Include also the fluxes at the surface and TOA.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rsdcs
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-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 alevel time
-out_name:          ta
-type:              real
-valid_min:         157.1
-valid_max:         326.4
-ok_min_mean_abs:   200.2
-ok_max_mean_abs:   289.9
-!----------------------------------
-!
-
-!============
-variable_entry:    tnt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature
-units:             K s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Air Temperature
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnt
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnta 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature_due_to_advection
-units:             K s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Air Temperature due to Advection
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnta 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tntmp
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature_due_to_model_physics
-units:             K s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Air Temperature due to Diabatic Processes
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tntmp
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tntscpbl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing
-units:             K s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Air Temperature Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tntscpbl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tntr 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature_due_to_radiative_heating
-units:             K s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Air Temperature due to Radiative Heating
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tntr 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tntc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature_due_to_convection
-units:             K s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Air Temperature due to Moist Convection
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tntc
-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 alevel time
-out_name:          hus
-type:              real
-valid_min:         -0.000299
-valid_max:         0.02812
-ok_min_mean_abs:   -0.0003539
-ok_max_mean_abs:   0.01027
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Specific Humidity
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnhus
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhusa
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity_due_to_advection
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Specific Humidity due to Advection
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnhusa
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhusc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity_due_to_convection
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Specific Humidity due to Convection
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnhusc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhusd
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity_due_to_diffusion
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Specific Humidity due to Diffusion
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnhusd
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhusscpbl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Specific Humidity due to Stratiform Cloud Condensation and Evaporation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnhusscpbl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhusmp
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity_due_to_model_physics
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Specific Humidity due to Model Physics
-comment:           This should include sources and sinks from parametrized physics (e.g. convection, stratiform condensation/evaporation, etc.) and should exclude sources and sinks from resolved dynamics and diffusion.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnhusmp
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    eviscu
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_momentum_diffusivity
-units:             m2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Eddy Viscosity Coefficients for Momentum
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          eviscu
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    evisct
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_heat_diffusivity
-units:             m2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Eddy Diffusivity Coefficients for Temperature
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          evisct
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Convective Cloud Area Fraction
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          clc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:     clwc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_convective_cloud_liquid_water_in_air
-units:             1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Mass Fraction of Convective Cloud Liquid Water 
-comment:           Calculate as the mass of convective cloud liquid water 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:           clwc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clic
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_convective_cloud_ice_in_air
-units:             1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Mass Fraction of Convective Cloud Ice
-comment:           Calculate as the mass of convective 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:          clic
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cls
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     stratiform_cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Stratiform Cloud Area Fraction
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          cls
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clws
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_stratiform_cloud_liquid_water_in_air
-units:             1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Mass Fraction of Stratiform Cloud Liquid Water
-comment:           Calculate as the mass of stratiform cloud liquid water 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:          clws
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clis
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_stratiform_cloud_ice_in_air
-units:             1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Mass Fraction of Stratiform Cloud Ice
-comment:           Calculate as the mass of stratiform 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:          clis
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    mcu
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_updraft_convective_mass_flux
-units:             kg m-2 s-1 
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Updraft Convective Mass Flux
-comment:           Report on model half-levels (i.e., model layer bounds and not standard pressures).   Calculate as the convective mass flux divided by the area of the whole grid cell (not just the area of the cloud).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          mcu
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    mcd
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_downdraft_convective_mass_flux
-units:             kg m-2 s-1 
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Downdraft Convective Mass Flux
-comment:           Report on model half-levels (i.e., model layer bounds and not standard pressures).  Calculate as the convective mass flux divided by the area of the whole grid cell (not just the area of the cloud).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          mcd
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    smc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_net_upward_shallow_convective_mass_flux
-units:             kg m-2 s-1 
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Shallow 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.  For models with a distinct shallow convection scheme, calculate as the convective mass flux divided by the area of the whole grid cell (not just the area of the cloud).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          smc
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    dmc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_net_upward_deep_convective_mass_flux
-units:             kg m-2 s-1 
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Deep 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.   Calculate as the convective mass flux divided by the area of the whole grid cell (not just the area of the cloud).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          dmc
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water In Air
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclw
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwcm
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_cloud_microphysics
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water In Air Due To Cloud Microphysics
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwcm
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwbl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_boundary_layer_mixing
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water In Air Due To Boundary Layer Mixing
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwbl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwbfpcli
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_bergeron_findeisen_process_to_cloud_ice
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water In Air Due To Bergeron Findeisen Process To Cloud Ice
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwbfpcli
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwce 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_condensation_and_evaporation
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water due to Condensation and Evaporation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwce 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwcd 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_convective_detrainment
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water Due to Convective Detrainment
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwcd 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwhon 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_homogeneous_nucleation
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water due to Homogeneous Nucleation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwhon 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwhen 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_heterogeneous_nucleation
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water due to Heterogeneous Nucleation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwhen 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwri 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_riming
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water due to Riming
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwri 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwar 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_accretion_to_rain
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water due to Accretion to Rain
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwar 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwas 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_accretion_to_snow
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water due to Accretion to Snow
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwas 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwmi 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_melting_from_cloud_ice
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water due to Melting From Cloud Ice
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwmi 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwac 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_autoconversion
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water due to Autoconversion
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwac 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclwa 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_liquid_water_in_air_due_to_advection
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Liquid Water due to Advection
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclwa 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnscli
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice In Air
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnscli
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclicm
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_cloud_microphysics
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice In Air Due To Cloud Microphysics
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclicm
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclibl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_boundary_layer_mixing
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice In Air Due To Boundary Layer Mixing
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclibl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclibfpcl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_bergeron_findeisen_process_from_cloud_liquid
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice In Air Due To Bergeron Findeisen Process from Cloud Liquid
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclibfpcl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclicd
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_convective_detrainment
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice Due Convective Detrainment
-comment:           Tendency of Mass Fraction of Stratiform Cloud Ice Due to Convective Detrainment
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclicd
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclihon
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_homogeneous_nucleation
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Homogeneous Nucleation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclihon
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclihencl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_heterogeneous_nucleation_from_cloud_liquid_water
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Heterogeneous Nucleation From Cloud Liquid
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclihencl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclihenv
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_heterogeneous_nucleation_from_water_vapor
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Heterogeneous Nucleation From Water Vapor
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclihenv
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnscliricl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_riming_from_cloud_liquid_water
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Riming From Cloud Liquid
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnscliricl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclirir
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_riming_from_rain
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Riming From Rain
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclirir
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclids
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_deposition_and_sublimation
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Deposition and Sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclids
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnscliag
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_aggregation
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Aggregation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnscliag
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclias
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_accretion_to_snow
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Accretion to Snow
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclias
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnscliemi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_evaporation_of_melting_ice
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Evaporation of Melting Ice
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnscliemi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclimr
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_melting_to_rain
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Melting to Rain
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclimr
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclimcl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_melting_to_cloud_liquid_water
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Melting to Cloud Liquid
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclimcl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnscliif
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_icefall
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Icefall
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnscliif
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsclia
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_ice_in_air_due_to_advection
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Ice due to Advection
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsclia
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsccw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_condensed_water_in_air
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Condensed Water In Air
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsccw
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsccwcm
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_condensed_water_in_air_due_to_cloud_microphysics
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Condensed Water In Air Due To Cloud Microphysics
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsccwcm
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsccwbl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_condensed_water_in_air_due_to_boundary_layer_mixing
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Condensed Water In Air Due To Boundary Layer Mixing
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsccwbl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsccwce
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_condensed_water_in_air_due_to_condensation_and_evaporation
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Condensed Water due to Condensation and Evaporation
-comment:           condensed water includes both liquid and ice.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsccwce
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsccwacr
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_condensed_water_in_air_due_to_autoconversion_to_rain
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Condensed Water due to Autoconversion to Rain
-comment:           condensed water includes both liquid and ice.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsccwacr
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsccwacs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_condensed_water_in_air_due_to_autoconversion_to_snow
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Condensed Water due to Autoconversion to Snow
-comment:           condensed water includes both liquid and ice.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsccwacs
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsccwif
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_condensed_water_in_air_due_to_icefall
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Condensed Water due to Icefall
-comment:           condensed water includes both liquid and ice.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsccwif
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnsccwa
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_mass_fraction_of_stratiform_cloud_condensed_water_in_air_due_to_advection
-units:             s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Tendency of Mass Fraction of Stratiform Cloud Condensed Water due to Advection
-comment:           condensed water includes both liquid and ice.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          tnsccwa
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    rsut4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Shortwave Radiation in 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsut4co2
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlut4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Longwave Radiation 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlut4co2
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsutcs4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Clear-Sky Shortwave Radiation 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsutcs4co2
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlutcs4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Clear-Sky Longwave Radiation 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlutcs4co2
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlu4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Upwelling Longwave Radiation 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rlu4co2
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsu4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Upwelling Shortwave Radiation 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rsu4co2
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rld4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Downwelling Longwave Radiation 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rld4co2
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsd4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Downwelling Shortwave Radiation 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rsd4co2
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rlucs4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_longwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Upwelling Clear-Sky Longwave Radiation 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rlucs4co2
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsucs4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Upwelling Clear-Sky Shortwave Radiation 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rsucs4co2
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rldcs4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_longwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Downwelling Clear-Sky Longwave Radiation 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rldcs4co2
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdcs4co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Downwelling Clear-Sky Shortwave Radiation 4XCO2 Atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          rsdcs4co2
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    cltisccp
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         ISCCP Total Cloud Fraction
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cltisccp
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    albisccp
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_albedo
-units:             1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         ISCCP Mean Cloud Albedo
-comment:           When computing time-means, weight by the ISCCP Total Cloud Fraction - see  http://www.cfmip.net/README
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          albisccp
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ctpisccp
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_cloud_top
-units:             Pa 
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         ISCCP Mean Cloud Top Pressure
-comment:           When computing time-means, weight by the ISCCP Total Cloud Fraction - see  http://www.cfmip.net/README
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ctpisccp
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clisccp
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     isccp_cloud_area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         ISCCP Cloud Area Fraction
-comment:            7 levels x 7 tau
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plev7 tau time
-out_name:          clisccp
-type:              real
-valid_min:         0
-valid_max:         1.399
-ok_min_mean_abs:   0.0004413
-ok_max_mean_abs:   0.04866
-!----------------------------------
-!
-
-!============
-variable_entry:    cltcalipso
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         CALIPSO Total Cloud Fraction
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cltcalipso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cllcalipso
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         CALIPSO Low Level Cloud Fraction 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time p840
-out_name:          cllcalipso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clmcalipso
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         CALIPSO Mid Level Cloud Fraction 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time p560
-out_name:          clmcalipso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clhcalipso
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         CALIPSO High Level Cloud Fraction 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time p220
-out_name:          clhcalipso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clcalipso
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         CALIPSO Cloud Fraction 
-comment:            40 height levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alt40 time
-out_name:          clcalipso
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    parasolRefl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_bidirectional_reflectance
-units:             1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         PARASOL Reflectance 
-comment:            5 bins of solar zenith angle.  This is reflectance as seen at the top of the atmosphere.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude sza5 time
-out_name:          parasolRefl
-type:              real
-!----------------------------------
-!
-
diff --git a/TestTables/CMIP5_cfSites b/TestTables/CMIP5_cfSites
deleted file mode 100644
index c40d57c..0000000
--- a/TestTables/CMIP5_cfSites
+++ /dev/null
@@ -1,2365 +0,0 @@
-table_id: Table cfSites
-!
-! WARNING: Although this table define variables as function of longitude and latitude
-!          the user MUST use a 'grid' (using the 'site' index in CMIP5_grids)
-!          in order to define correctly the location of each site.
-!
-modeling_realm: atmos
-
-frequency: subhr
-
-cmor_version: 2.5.0 ! minimum 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:   12 November 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 parent_experiment_rip branch_time contact institute_id ! 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 hindcast initialized in year 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: '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:  0.017361     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-
-generic_levels:   alevel alevhalf
-
-!============
-axis_entry: time1
-!============
-!----------------------------------
-! 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: no
-!----------------------------------
-!
-
-
-!============
-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.0         
-valid_max:        10.0 
-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.0         
-valid_max:        30.0 
-stored_direction: increasing
-type:             double
-value:            10.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: site
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-units:            1
-long_name:        site index
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         site
-type:             integer
-must_have_bounds: no
-index_only:       ok
-must_call_cmor_grid: yes
-
-!----------------------------------
-!
-
-!============
-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:        site
-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: point
-cell_measures:     area: areacella
-long_name:         Near-Surface Air Temperature
-comment:           near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1 height2m
-out_name:          tas
-type:              real
-valid_min:         180.6
-valid_max:         325.7
-ok_min_mean_abs:   273.5
-ok_max_mean_abs:   281.7
-!----------------------------------
-!
-
-!============
-variable_entry:    ts
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_temperature
-units:             K
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Temperature
-comment:           ""skin"" temperature (i.e., SST for open ocean)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          ts
-type:              real
-valid_min:         176.8
-valid_max:         331.8
-ok_min_mean_abs:   274.2
-ok_max_mean_abs:   281.8
-!----------------------------------
-!
-
-!============
-variable_entry:    psl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_sea_level
-units:             Pa
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Sea Level Pressure
-comment:           not, in general, the same as surface pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          psl
-type:              real
-valid_min:         9.477e+04
-valid_max:         1.124e+05
-ok_min_mean_abs:   1.003e+05
-ok_max_mean_abs:   1.017e+05
-!----------------------------------
-!
-
-!============
-variable_entry:    ps
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_air_pressure
-units:             Pa
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Air Pressure
-comment:           not, in general, the same as mean sea-level pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          ps
-type:              real
-valid_min:         4.792e+04
-valid_max:         1.093e+05
-ok_min_mean_abs:   9.606e+04
-ok_max_mean_abs:   9.743e+04
-!----------------------------------
-!
-
-!============
-variable_entry:    uas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     eastward_wind
-units:             m s-1
-cell_methods:      time: point
-long_name:         Eastward Near-Surface Wind
-comment:           near-surface (usually, 10 meters) eastward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1 height10m
-out_name:          uas
-type:              real
-valid_min:         -19.01
-valid_max:         18.68
-ok_min_mean_abs:   1.668
-ok_max_mean_abs:   4.106
-!----------------------------------
-!
-
-!============
-variable_entry:    vas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_wind
-units:             m s-1
-cell_methods:      time: point
-long_name:         Northward Near-Surface Wind
-comment:           near-surface (usually, 10 meters) northward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1 height10m
-out_name:          vas
-type:              real
-valid_min:         -18.04
-valid_max:         22.84
-ok_min_mean_abs:   1.065
-ok_max_mean_abs:   2.678
-!----------------------------------
-!
-
-!============
-variable_entry:    sfcWind
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     wind_speed
-units:             m s-1
-cell_methods:      time: point
-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:        site time1 height10m
-out_name:          sfcWind
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hurs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: point
-cell_measures:     area: areacella
-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:        site time1 height2m
-out_name:          hurs
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    huss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Near-Surface Specific Humidity
-comment:           near-surface (usually, 2 meters) specific humidity.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1 height2m
-out_name:          huss
-type:              real
-valid_min:         -7.21e-06
-valid_max:         0.02992
-ok_min_mean_abs:   0.006391
-ok_max_mean_abs:   0.008749
-!----------------------------------
-!
-
-!============
-variable_entry:    pr
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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:        site time1
-out_name:          pr
-type:              real
-valid_min:         0
-valid_max:         0.001254
-ok_min_mean_abs:   2.156e-05
-ok_max_mean_abs:   3.215e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    prsn
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     snowfall_flux
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Snowfall Flux
-comment:           at surface; includes precipitation of all forms of water in the solid phase
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          prsn
-type:              real
-valid_min:         0
-valid_max:         0.0002987
-ok_min_mean_abs:   1.449e-06
-ok_max_mean_abs:   6.11e-06
-!----------------------------------
-!
-
-!============
-variable_entry:    prc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Convective Precipitation
-comment:           at surface; includes both liquid and solid phases.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          prc
-type:              real
-valid_min:         0
-valid_max:         0.0006323
-ok_min_mean_abs:   -2.528e-06
-ok_max_mean_abs:   3.209e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    evspsbl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_evaporation_flux
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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:        site time1
-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: point
-cell_measures:     area: areacella
-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. This differs from sbl appearing in table Limon in that the flux is averaged over the entire grid cell, not just the land portion.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          sbl
-type:              real
-valid_min:         -0.004959
-valid_max:         0.0009936
-ok_min_mean_abs:   -5.521e-05
-ok_max_mean_abs:   9.61e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    tauu
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_eastward_stress
-units:             Pa
-cell_methods:      time: point
-long_name:         Surface Downward Eastward Wind Stress
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          tauu
-type:              real
-positive:          down
-valid_min:         -2.729
-valid_max:         2.934
-ok_min_mean_abs:   0.03979
-ok_max_mean_abs:   0.1065
-!----------------------------------
-!
-
-!============
-variable_entry:    tauv
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_northward_stress
-units:             Pa
-cell_methods:      time: point
-long_name:         Surface Downward Northward Wind Stress
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          tauv
-type:              real
-positive:          down
-valid_min:         -2.472
-valid_max:         2.527
-ok_min_mean_abs:   0.01447
-ok_max_mean_abs:   0.08134
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          hfls
-type:              real
-positive:          up
-valid_min:         -76.77
-valid_max:         790.7
-ok_min_mean_abs:   50.39
-ok_max_mean_abs:   73.2
-!----------------------------------
-!
-
-!============
-variable_entry:    hfss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_sensible_heat_flux
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Upward Sensible Heat Flux
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          hfss
-type:              real
-positive:          up
-valid_min:         -264.5
-valid_max:         844.8
-ok_min_mean_abs:   10.7
-ok_max_mean_abs:   34.84
-!----------------------------------
-!
-
-!============
-variable_entry:    rlds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rlds
-type:              real
-positive:          down
-valid_min:         30.71
-valid_max:         520.5
-ok_min_mean_abs:   271.2
-ok_max_mean_abs:   323.6
-!----------------------------------
-!
-
-!============
-variable_entry:    rlus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rlus
-type:              real
-positive:          up
-valid_min:         43.75
-valid_max:         658
-ok_min_mean_abs:   331.1
-ok_max_mean_abs:   369.9
-!----------------------------------
-!
-
-!============
-variable_entry:    rsds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rsds
-type:              real
-positive:          down
-valid_min:         -0.002946
-valid_max:         524.4
-ok_min_mean_abs:   143.9
-ok_max_mean_abs:   181.6
-!----------------------------------
-!
-
-!============
-variable_entry:    rsus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rsus
-type:              real
-positive:          up
-valid_min:         -0.006589
-valid_max:         422.2
-ok_min_mean_abs:   26.22
-ok_max_mean_abs:   43.77
-!----------------------------------
-!
-
-!============
-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: point
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rsdscs
-type:              real
-positive:          down
-valid_min:         -1.748e+30
-valid_max:         518
-ok_min_mean_abs:   206.9
-ok_max_mean_abs:   238.6
-!----------------------------------
-!
-
-!============
-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: point
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rsuscs
-type:              real
-positive:          up
-valid_min:         -0.01446
-valid_max:         462.2
-ok_min_mean_abs:   31.65
-ok_max_mean_abs:   61.59
-!----------------------------------
-!
-
-!============
-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: point
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rldscs
-type:              real
-positive:          down
-valid_min:         33.55
-valid_max:         543.6
-ok_min_mean_abs:   238.6
-ok_max_mean_abs:   293.8
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_incoming_shortwave_flux
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         TOA Incident Shortwave Radiation
-comment:           incident shortwave at the top of the atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rsdt
-type:              real
-positive:          down
-valid_min:         0
-valid_max:         555.5
-ok_min_mean_abs:   294.4
-ok_max_mean_abs:   303.8
-!----------------------------------
-!
-
-!============
-variable_entry:    rsut
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Shortwave Radiation
-comment:           at the top of the atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rsut
-type:              real
-positive:          up
-valid_min:         -0.02689
-valid_max:         416.9
-ok_min_mean_abs:   96.72
-ok_max_mean_abs:   114.1
-!----------------------------------
-!
-
-!============
-variable_entry:    rlut
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Longwave Radiation
-comment:           at the top of the atmosphere (to be compared with satellite measurements)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rlut
-type:              real
-positive:          up
-valid_min:         67.48
-valid_max:         383.2
-ok_min_mean_abs:   214.1
-ok_max_mean_abs:   227.5
-!----------------------------------
-!
-
-!============
-variable_entry:    rlutcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rlutcs
-type:              real
-positive:          up
-valid_min:         70.59
-valid_max:         372.3
-ok_min_mean_abs:   235.1
-ok_max_mean_abs:   253.8
-!----------------------------------
-!
-
-!============
-variable_entry:    rsutcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          rsutcs
-type:              real
-positive:          up
-valid_min:         0
-valid_max:         444
-ok_min_mean_abs:   54.7
-ok_max_mean_abs:   73.36
-!----------------------------------
-!
-
-!============
-variable_entry:    prw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_water_vapor_content
-units:             kg m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Water Vapor Path
-comment:           vertically integrated through the atmospheric column
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          prw
-type:              real
-valid_min:         -0.0006775
-valid_max:         78.04
-ok_min_mean_abs:   12.75
-ok_max_mean_abs:   23.09
-!----------------------------------
-!
-
-!============
-variable_entry:    clt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction
-units:             %
-cell_methods:      time: point
-cell_measures:     area: areacella
-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:        site time1
-out_name:          clt
-type:              real
-valid_min:         -0.0001822
-valid_max:         100.2
-ok_min_mean_abs:   39.37
-ok_max_mean_abs:   84.98
-!----------------------------------
-!
-
-!============
-variable_entry:    clwvi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_condensed_water_content
-units:             kg m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-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:        site time1
-out_name:          clwvi
-type:              real
-valid_min:         -3.827e-06
-valid_max:         3.364
-ok_min_mean_abs:   -0.03549
-ok_max_mean_abs:   0.2846
-!----------------------------------
-!
-
-!============
-variable_entry:    clivi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_ice_content
-units:             kg m-2
-cell_methods:      time: point
-cell_measures:     area: areacella
-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:        site time1
-out_name:          clivi
-type:              real
-valid_min:         -1.872e-06
-valid_max:         1.535
-ok_min_mean_abs:   -0.0348
-ok_max_mean_abs:   0.1187
-!----------------------------------
-!
-
-!============
-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: point
-cell_measures:     area: areacella
-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:        site time1
-out_name:          rtmt
-type:              real
-positive:          down
-valid_min:         -232.8
-valid_max:         218.7
-ok_min_mean_abs:   77.62
-ok_max_mean_abs:   88.34
-!----------------------------------
-!
-
-!============
-variable_entry:    ccb
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_convective_cloud_base
-units:             Pa
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Air Pressure at Convective Cloud Base
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-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: point
-cell_measures:     area: areacella
-long_name:         Air Pressure at Convective Cloud Top
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          cct
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ci 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convection_time_fraction
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-long_name:         Fraction of Time Convection Occurs
-comment:           Fraction of time that convection occurs in the grid cell .
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site time1
-out_name:          ci 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sci
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     shallow_convection_time_fraction
-units:             1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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:        site time1
-out_name:          sci
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2antt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission
-units:             kg  m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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:        site time1
-out_name:          fco2antt
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2fos
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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:        site time1
-out_name:          fco2fos
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2nat
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_sources
-units:             kg m-2 s-1
-cell_methods:      time: point
-cell_measures:     area: areacella
-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:        site time1
-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: point
-long_name:         Cloud Area Fraction
-comment:           Include both large-scale and convective cloud.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          cl
-type:              real
-valid_min:         0
-valid_max:         100.2
-ok_min_mean_abs:   -0.04479
-ok_max_mean_abs:   24.87
-!----------------------------------
-!
-
-!============
-variable_entry:    clw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_cloud_liquid_water_in_air
-units:             1
-cell_methods:      time: point
-long_name:         Mass Fraction of Cloud Liquid Water
-comment:           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 cell.  Include precipitating hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-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: point
-long_name:         Mass Fraction of Cloud Ice
-comment:           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:        alevel site time1
-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: point
-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.  Calculate as the convective mass flux divided by the area of the whole grid cell (not just the area of the updrafts).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevhalf site time1
-out_name:          mc
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    ta
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: point
-long_name:         Air Temperature
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          ta
-type:              real
-valid_min:         157.1
-valid_max:         326.4
-ok_min_mean_abs:   200.2
-ok_max_mean_abs:   289.9
-!----------------------------------
-!
-
-!============
-variable_entry:    ua
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     eastward_wind
-units:             m s-1
-cell_methods:      time: point
-long_name:         Eastward Wind
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          ua
-type:              real
-valid_min:         -68.65
-valid_max:         136.6
-ok_min_mean_abs:   1.101
-ok_max_mean_abs:   22.42
-!----------------------------------
-!
-
-!============
-variable_entry:    va
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_wind
-units:             m s-1
-cell_methods:      time: point
-long_name:         Northward Wind
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          va
-type:              real
-valid_min:         -71.1
-valid_max:         69.93
-ok_min_mean_abs:   0.9886
-ok_max_mean_abs:   4.679
-!----------------------------------
-!
-
-!============
-variable_entry:    hus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_methods:      time: point
-long_name:         Specific Humidity
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          hus
-type:              real
-valid_min:         -0.000299
-valid_max:         0.02812
-ok_min_mean_abs:   -0.0003539
-ok_max_mean_abs:   0.01027
-!----------------------------------
-!
-
-!============
-variable_entry:    hur
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: point
-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:        alevel site time1
-out_name:          hur
-type:              real
-valid_min:         -2.642
-valid_max:         135.7
-ok_min_mean_abs:   -10.31
-ok_max_mean_abs:   97
-!----------------------------------
-!
-
-!============
-variable_entry:    wap
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     lagrangian_tendency_of_air_pressure
-units:             Pa s-1
-cell_methods:      time: point
-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:        alevel site time1
-out_name:          wap
-type:              real
-valid_min:         -1.126
-valid_max:         2.319
-ok_min_mean_abs:   -0.005083
-ok_max_mean_abs:   0.04256
-!----------------------------------
-!
-
-!============
-variable_entry:    zg
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     geopotential_height
-units:             m
-cell_methods:      time: point
-long_name:         Geopotential Height
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          zg
-type:              real
-valid_min:         -719.7
-valid_max:         3.306e+04
-ok_min_mean_abs:   -113.4
-ok_max_mean_abs:   3.164e+04
-!----------------------------------
-!
-
-!============
-variable_entry:    rlu
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-long_name:         Upwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          rlu
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsu
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-long_name:         Upwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          rsu
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rld
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-long_name:         Downwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          rld
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsd
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: point
-long_name:         Downwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          rsd
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rlucs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_longwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: point
-long_name:         Upwelling Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          rlucs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsucs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     upwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: point
-long_name:         Upwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          rsucs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rldcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_longwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: point
-long_name:         Downwelling Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          rldcs
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     downwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: point
-long_name:         Downwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          rsdcs
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    tnt 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature
-units:             K s-1
-cell_methods:      time: point
-long_name:         Tendency of Air Temperature
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tnt 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnta 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature_due_to_advection
-units:             K s-1
-cell_methods:      time: point
-long_name:         Tendency of Air Temperature due to Advection
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tnta 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tntmp
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature_due_to_model_physics
-units:             K s-1
-cell_methods:      time: point
-long_name:         Tendency of Air Temperature due to Diabatic Processes
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tntmp
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tntscpbl 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing
-units:             K s-1
-cell_methods:      time: point
-long_name:         Tendency of Air Temperature due to Stratiform Cloud Condensation and Evaporation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tntscpbl 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tntr 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature_due_to_radiative_heating
-units:             K s-1
-cell_methods:      time: point
-long_name:         Tendency of Air Temperature due to Radiative Heating
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tntr 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tntc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_air_temperature_due_to_convection
-units:             K s-1
-cell_methods:      time: point
-long_name:         Tendency of Air Temperature due to Moist Convection
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tntc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity
-units:             s-1
-cell_methods:      time: point
-long_name:         Tendency of Specific Humidity
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tnhus
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhusa 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity_due_to_advection
-units:             s-1
-cell_methods:      time: point
-long_name:         Tendency of Specific Humidity due to Advection
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tnhusa 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhusc 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity_due_to_convection
-units:             s-1
-cell_methods:      time: point
-long_name:         Tendency of Specific Humidity due to Convection
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tnhusc 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhusd 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity_due_to_diffusion
-units:             s-1
-cell_methods:      time: point
-long_name:         Tendency of Specific Humidity due to Diffusion
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tnhusd 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhusscpbl 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing
-units:             s-1
-cell_methods:      time: point
-long_name:         Tendency of Specific Humidity due to Stratiform Cloud Condensation and Evaporation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tnhusscpbl 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tnhusmp 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     tendency_of_specific_humidity_due_to_model_physics
-units:             s-1
-cell_methods:      time: point
-long_name:         Tendency of Specific Humidity due to Model Physics
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          tnhusmp 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    evu
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_momentum_diffusivity
-units:             m2 s-1
-cell_methods:      time: point
-long_name:         Eddy Viscosity Coefficient for Momentum Variables
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          evu
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    edt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_heat_diffusivity
-units:             m2 s-1
-cell_methods:      time: point
-long_name:         Eddy Diffusivity Coefficient for Temperature Variable
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          edt
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    pfull
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure
-units:             Pa
-cell_methods:      time: point
-long_name:         Pressure on Model Levels
-comment:           This field is needed only for models in which the pressure can't be calculated from the vertical coordinate information stored already for each variable.  Thus, the pressures are needed for height or theta-coordinate models, for example, but not sigma- or eta-coordinate models.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          pfull
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phalf
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure
-units:             Pa
-cell_methods:      time: point
-long_name:         Pressure on Model Half-Levels
-comment:           This field is needed only for models in which the pressure can't be calculated from the vertical coordinate information stored already for each variable.  Thus, the pressures are needed for height or theta-coordinate models, for example, but not sigma- or eta-coordinate models.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        alevel site time1
-out_name:          phalf
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    longitude
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     longitude
-units:             degrees_east
-cell_methods:      0.0
-long_name:         Longitude
-comment:           Note that the CF convention and CMOR2 require that this field will be included in each file that contains a variable that is a function of the ""site"" dimension, so there is no need to save this field by itself.  It is included here simply to indicate that longitudes should be stored for the site grid in each file written.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site
-out_name:          lon
-type:              real
-valid_min:         360.0
-!----------------------------------
-!
-
-!============
-variable_entry:    latitude
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     latitude
-units:             degrees_north
-cell_methods:      -90.0
-long_name:         Latitude
-comment:           the above comment also applies to latitude.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        site
-out_name:          lat
-type:              real
-valid_min:         90.0
-!----------------------------------
-!
-
diff --git a/TestTables/CMIP5_day b/TestTables/CMIP5_day
deleted file mode 100644
index cbe9f5c..0000000
--- a/TestTables/CMIP5_day
+++ /dev/null
@@ -1,1274 +0,0 @@
-table_id: Table day
-modeling_realm: atmos
-
-frequency: day
-
-cmor_version: 2.5.0 ! minimum 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:   12 November 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 parent_experiment_rip branch_time contact institute_id ! 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 hindcast initialized in year 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: '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:  1.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.0         
-valid_max:        360.0 
-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.0         
-valid_max:        90.0 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: plev8
-!============
-!----------------------------------
-! 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. 85000. 70000. 50000. 25000. 10000. 5000. 1000.        ! space-separated list of requested coordinates 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-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: 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.0         
-valid_max:        10.0 
-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.0         
-valid_max:        30.0 
-stored_direction: increasing
-type:             double
-value:            10.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: sdepth1 
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    depth
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         down         ! up or down (default: undeclared)
-long_name:        depth
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         depth
-valid_min:        0.0         
-valid_max:        0.2 
-stored_direction: increasing
-type:             double
-value:            0.05            ! of scalar (singleton) dimension 
-bounds_values:    0.0 0.1    ! of scalar (singleton) dimension bounds
-must_have_bounds: yes
-!----------------------------------
-!
-
-!============
-variable_entry:    huss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Near-Surface Specific Humidity
-comment:           near-surface (usually, 2 meter) specific humidity.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          huss
-type:              real
-valid_min:         -7.21e-06
-valid_max:         0.02992
-ok_min_mean_abs:   0.006391
-ok_max_mean_abs:   0.008749
-!----------------------------------
-!
-
-!============
-variable_entry:    tasmin
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: minimum
-cell_measures:     area: areacella
-long_name:         Daily Minimum Near-Surface Air Temperature
-comment:           daily-minimum near-surface (usually, 2 meter) air temperature.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tasmin
-type:              real
-valid_min:         183.6
-valid_max:         309.8
-ok_min_mean_abs:   271.8
-ok_max_mean_abs:   279.6
-!----------------------------------
-!
-
-!============
-variable_entry:    tasmax
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: maximum
-cell_measures:     area: areacella
-long_name:         Daily Maximum Near-Surface Air Temperature
-comment:           daily-maximum near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tasmax
-type:              real
-valid_min:         181.9
-valid_max:         330.6
-ok_min_mean_abs:   277.3
-ok_max_mean_abs:   281.4
-!----------------------------------
-!
-
-!============
-variable_entry:    tas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Near-Surface Air Temperature
-comment:           daily-mean near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tas
-type:              real
-valid_min:         180.6
-valid_max:         325.7
-ok_min_mean_abs:   273.5
-ok_max_mean_abs:   281.7
-!----------------------------------
-!
-
-!============
-variable_entry:    pr
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         0
-valid_max:         0.001254
-ok_min_mean_abs:   2.156e-05
-ok_max_mean_abs:   3.215e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    psl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_sea_level
-units:             Pa
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Sea Level Pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          psl
-type:              real
-valid_min:         9.477e+04
-valid_max:         1.124e+05
-ok_min_mean_abs:   1.003e+05
-ok_max_mean_abs:   1.017e+05
-!----------------------------------
-!
-
-!============
-variable_entry:    sfcWind
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     wind_speed
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Daily-Mean Near-Surface Wind Speed
-comment:           near-surface (usually, 10 meters) wind speed.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          sfcWind
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tossq
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     square_of_sea_surface_temperature
-units:             K2
-cell_methods:      time:mean
-cell_measures:     area: areacello
-long_name:         Square of Sea Surface Temperature
-comment:           square of temperature of liquid ocean, averaged over the day. Report on the ocean grid.  This variable appears in WGOMD Table 2.2 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tossq
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tos
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_temperature
-units:             K
-cell_methods:      time: mean
-cell_measures:     area: areacello
-long_name:         Sea Surface Temperature
-comment:           temperature of liquid ocean. Report on the ocean grid.  This variable appears in WGOMD Table 2.2 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tos
-type:              real
-valid_min:         270.6
-valid_max:         313.9
-ok_min_mean_abs:   283.7
-ok_max_mean_abs:   291.7
-!----------------------------------
-!
-
-!============
-variable_entry:    omldamax
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_mixed_layer_thickness_defined_by_mixing_scheme
-units:             m 
-cell_methods:      time: maximum
-cell_measures:     area: areacello
-long_name:         Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme 
-comment:           Report on the ocean grid.  This variable appears in WGOMD Table 2.2 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          omldamax
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    mrsos
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     moisture_content_of_soil_layer
-units:             kg m-2
-cell_methods:      time: mean area: mean where land 
-cell_measures:     area: areacella
-long_name:         Moisture in Upper 0.1 m of Soil Column
-comment:           Compute the mass of water in all phases in the upper 0.1 meters of soil.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time sdepth1
-out_name:          mrsos
-type:              real
-valid_min:         -2.008
-valid_max:         146.5
-ok_min_mean_abs:   -35.89
-ok_max_mean_abs:   123.3
-!----------------------------------
-!
-
-!============
-variable_entry:    rhs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Near-Surface Relative Humidity
-comment:           near-surface (usually, 2 meter) relative humidity.  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:          rhs
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    rhsmin
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: minimum
-cell_measures:     area: areacella
-long_name:         Surface Daily Minimum Relative Humidity
-comment:           near-surface (usually, 2 meter) minimum  relative humidity.  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:          rhsmin
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    rhsmax
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: maximum
-cell_measures:     area: areacella
-long_name:         Surface Daily Maximum Relative Humidity
-comment:           near-surface (usually, 2 meter) maximum  relative humidity.  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:          rhsmax
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    snc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_snow_area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Snow Area Fraction
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          snc
-type:              real
-valid_min:         0
-valid_max:         102.1
-ok_min_mean_abs:   -29.01
-ok_max_mean_abs:   78.46
-!----------------------------------
-!
-
-!============
-variable_entry:    clt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         -0.0001822
-valid_max:         100.2
-ok_min_mean_abs:   39.37
-ok_max_mean_abs:   84.98
-!----------------------------------
-!
-
-!============
-variable_entry:    tslsi
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_temperature
-units:             K
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:          Surface Temperature Where Land or Sea Ice
-comment:           """skin"" temperature of all surfaces except open ocean.  "
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tslsi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    snw
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_snow_amount
-units:             kg m-2
-cell_methods:      time: mean area: mean where land
-cell_measures:     area: areacella
-long_name:         Surface Snow Amount
-comment:           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 0.0 where the land fraction is 0; exclude snow on vegetation canopy or on sea ice.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          snw
-type:              real
-valid_min:         -0.007542
-valid_max:         9.555e+05
-ok_min_mean_abs:   -6025
-ok_max_mean_abs:   1.213e+04
-!----------------------------------
-!
-
-!============
-variable_entry:    prc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-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
-valid_min:         0
-valid_max:         0.0006323
-ok_min_mean_abs:   -2.528e-06
-ok_max_mean_abs:   3.209e-05
-!----------------------------------
-!
-
-!============
-variable_entry:    prsn
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     snowfall_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Solid Precipitation
-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
-valid_min:         0
-valid_max:         0.0002987
-ok_min_mean_abs:   1.449e-06
-ok_max_mean_abs:   6.11e-06
-!----------------------------------
-!
-
-!============
-variable_entry:    mrro
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     runoff_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean area: mean where land 
-cell_measures:     area: areacella
-long_name:         Total Runoff
-comment:           "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."
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          mrro
-type:              real
-valid_min:         -0.0002019
-valid_max:         0.001065
-ok_min_mean_abs:   -6.668e-06
-ok_max_mean_abs:   1.874e-05
-!----------------------------------
-!
-
-!============
-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
-comment:           near-surface (usually, 10 meters) eastward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          uas
-type:              real
-valid_min:         -19.01
-valid_max:         18.68
-ok_min_mean_abs:   1.668
-ok_max_mean_abs:   4.106
-!----------------------------------
-!
-
-!============
-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
-comment:           near-surface (usually, 10 meters) northward component of wind.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          vas
-type:              real
-valid_min:         -18.04
-valid_max:         22.84
-ok_min_mean_abs:   1.065
-ok_max_mean_abs:   2.678
-!----------------------------------
-!
-
-!============
-variable_entry:    sfcWindmax
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     wind_speed
-units:             m s-1
-cell_methods:      time: maximum
-long_name:         Daily Maximum Near-Surface Wind Speed
-comment:           near-surface (usually, 10 meters) wind speed.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          sfcWindmax
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upward Latent Heat Flux
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfls
-type:              real
-positive:          up
-valid_min:         -76.77
-valid_max:         790.7
-ok_min_mean_abs:   50.39
-ok_max_mean_abs:   73.2
-!----------------------------------
-!
-
-!============
-variable_entry:    hfss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_sensible_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upward Sensible Heat Flux
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfss
-type:              real
-positive:          up
-valid_min:         -264.5
-valid_max:         844.8
-ok_min_mean_abs:   10.7
-ok_max_mean_abs:   34.84
-!----------------------------------
-!
-
-!============
-variable_entry:    rlds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlds
-type:              real
-positive:          down
-valid_min:         30.71
-valid_max:         520.5
-ok_min_mean_abs:   271.2
-ok_max_mean_abs:   323.6
-!----------------------------------
-!
-
-!============
-variable_entry:    rlus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlus
-type:              real
-positive:          up
-valid_min:         43.75
-valid_max:         658
-ok_min_mean_abs:   331.1
-ok_max_mean_abs:   369.9
-!----------------------------------
-!
-
-!============
-variable_entry:    rsds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Downwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsds
-type:              real
-positive:          down
-valid_min:         -0.002946
-valid_max:         524.4
-ok_min_mean_abs:   143.9
-ok_max_mean_abs:   181.6
-!----------------------------------
-!
-
-!============
-variable_entry:    rsus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Surface Upwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsus
-type:              real
-positive:          up
-valid_min:         -0.006589
-valid_max:         422.2
-ok_min_mean_abs:   26.22
-ok_max_mean_abs:   43.77
-!----------------------------------
-!
-
-!============
-variable_entry:    rlut
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux
-units:             W m-2
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         TOA Outgoing Longwave Radiation
-comment:           at the top of the atmosphere.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlut
-type:              real
-positive:          up
-valid_min:         67.48
-valid_max:         383.2
-ok_min_mean_abs:   214.1
-ok_max_mean_abs:   227.5
-!----------------------------------
-!
-
-!============
-variable_entry:    usi
-!============
-modeling_realm:    seaIce ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_ice_x_velocity
-units:             m s-1
-cell_methods:      time: mean
-long_name:         X-Component of Sea Ice Velocity
-comment:           "Report on ocean's grid.  Report as ""missing"" in regions free of sea ice."
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          usi
-type:              real
-valid_min:         -1.469
-valid_max:         1.634
-ok_min_mean_abs:   -0.03933
-ok_max_mean_abs:   0.1016
-!----------------------------------
-!
-
-!============
-variable_entry:    vsi
-!============
-modeling_realm:    seaIce ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_ice_y_velocity
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Y-Component of Sea Ice Velocity
-comment:           "Report on ocean's grid.  Report as ""missing"" in regions free of sea ice."
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          vsi
-type:              real
-valid_min:         -2.081
-valid_max:         2.193
-ok_min_mean_abs:   -0.02994
-ok_max_mean_abs:   0.07904
-!----------------------------------
-!
-
-!============
-variable_entry:    sic
-!============
-modeling_realm:    seaIce ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_ice_area_fraction
-units:             %
-cell_methods:      time: mean
-cell_measures:     area: areacella
-long_name:         Sea Ice Area Fraction
-comment:           fraction of grid cell covered by sea ice. Report on ocean's grid. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sic
-type:              real
-valid_min:         -0.000225
-valid_max:         166.1
-ok_min_mean_abs:   -13.33
-ok_max_mean_abs:   36.65
-!----------------------------------
-!
-
-!============
-variable_entry:    sit
-!============
-modeling_realm:    seaIce ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_ice_thickness
-units:             m
-cell_methods:      time: mean area: mean where sea 
-cell_measures:     area: areacella
-long_name:         Sea Ice Thickness
-comment:           Report on ocean's grid.  Compute the mean thickness of sea ice in the ocean portion of the grid cell (averaging over the entire ocean portion, including the ice-free fraction).  Report as 0.0 in regions free of sea ice.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sit
-type:              real
-valid_min:         -0.006698
-valid_max:         104.4
-ok_min_mean_abs:   -0.9217
-ok_max_mean_abs:   2.582
-!----------------------------------
-!
-
-!============
-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 plev8 time
-out_name:          ta
-type:              real
-valid_min:         157.1
-valid_max:         326.4
-ok_min_mean_abs:   200.2
-ok_max_mean_abs:   289.9
-!----------------------------------
-!
-
-!============
-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 plev8 time
-out_name:          hur
-type:              real
-valid_min:         -2.642
-valid_max:         135.7
-ok_min_mean_abs:   -10.31
-ok_max_mean_abs:   97
-!----------------------------------
-!
-
-!============
-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 plev8 time
-out_name:          hus
-type:              real
-valid_min:         -0.000299
-valid_max:         0.02812
-ok_min_mean_abs:   -0.0003539
-ok_max_mean_abs:   0.01027
-!----------------------------------
-!
-
-!============
-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 plev8 time
-out_name:          wap
-type:              real
-valid_min:         -1.126
-valid_max:         2.319
-ok_min_mean_abs:   -0.005083
-ok_max_mean_abs:   0.04256
-!----------------------------------
-!
-
-!============
-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 plev8 time
-out_name:          va
-type:              real
-valid_min:         -71.1
-valid_max:         69.93
-ok_min_mean_abs:   0.9886
-ok_max_mean_abs:   4.679
-!----------------------------------
-!
-
-!============
-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 plev8 time
-out_name:          ua
-type:              real
-valid_min:         -68.65
-valid_max:         136.6
-ok_min_mean_abs:   1.101
-ok_max_mean_abs:   22.42
-!----------------------------------
-!
-
-!============
-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 plev8 time
-out_name:          zg
-type:              real
-valid_min:         -719.7
-valid_max:         3.306e+04
-ok_min_mean_abs:   -113.4
-ok_max_mean_abs:   3.164e+04
-!----------------------------------
-!
-
diff --git a/TestTables/CMIP5_fx b/TestTables/CMIP5_fx
deleted file mode 100644
index abd345b..0000000
--- a/TestTables/CMIP5_fx
+++ /dev/null
@@ -1,665 +0,0 @@
-table_id: Table fx
-modeling_realm: atmos
-
-frequency: fx
-
-cmor_version: 2.5.0 ! minimum 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:   12 November 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 parent_experiment_rip branch_time contact institute_id ! 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 hindcast initialized in year 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: '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:  0.000000     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-
-generic_levels:   olevel
-
-!============
-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.0         
-valid_max:        360.0 
-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.0         
-valid_max:        90.0 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-!============
-axis_entry: depth_coord
-!============
-!
-!  This vertical coordinate is used in z-coordinate models 
-!   The units are meters (m), and it has a value of 0. at the surface
-!   and becomes more and more positive with depth.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    depth
-units:            m
-axis:             Z
-positive:	  down
-long_name:        ocean depth coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        12000.
-!----------------------------------	
-!
-!============
-axis_entry: ocean_double_sigma
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    ocean_double_sigma
-axis:             Z
-positive:	  up
-long_name:        ocean double sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-formula:          for k <= k_c:\n z(k,j,i)= sigma(k)*f(j,i) \n for k > k_c:\n z(k,j,i)= f(j,i) + (sigma(k)-1)*(depth(j,i)-f(j,i)) \n f(j,i)= 0.5*(z1+ z2) + 0.5*(z1-z2)* tanh(2*a/(z1-z2)*(depth(j,i)-href))
-z_factors:        sigma: sigma depth: depth z1: z1 z2: z2 a: a_coeff href: href k_c: k_c
-z_bounds_factors: sigma: sigma_bnds depth: depth z1: z1 z2: z2 a: a href: href k_c: k_c
-!----------------------------------	
-!
-!----------------------------------	
-!
-!
-! ***************************************************************
-!
-! Vertical coordinate formula_terms:
-!
-! ***************************************************************
-!
-!============
-variable_entry: depth
-!============
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:        m
-long_name:    Sea Floor Depth
-comment:      Ocean bathymetry.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      longitude latitude
-out_name:        depth
-type:            real
-valid_min:        0.
-valid_max:        12000.
-ok_min_mean_abs:  2000.
-ok_max_mean_abs:  5000.
-!----------------------------------
-!
-!
-!============
-variable_entry: sigma
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: sigma(k)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         olevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma_bnds
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: sigma(k+1/2)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         olevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: zlev
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: zlev(k)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         olevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: zlev_bnds
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: zlev(k+1/2)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         olevel
-type:               double
-!----------------------------------	
-!
-!
-!
-!============
-variable_entry: depth_c
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: depth_c
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: a
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: coefficient a
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: b
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: coefficient b
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: nsigma
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: nsigma
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               integer
-!----------------------------------
-!
-!
-!============
-variable_entry: z1
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: z1
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: z2
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: z2
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: href
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: href
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: k_c
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: k_c
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-type:               integer
-!----------------------------------
-!
-!
-
-!============
-variable_entry:    areacella
-!============
-modeling_realm:    atmos land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cell_area
-units:             m2
-long_name:         Atmosphere Grid-Cell Area
-comment:           For atmospheres with more than 1 mesh (e.g., staggered grids), report areas that apply to surface vertical fluxes of energy.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          areacella
-type:              real
-valid_min:         100000.0
-valid_max:         1e+12
-ok_min_mean_abs:   100000.0
-ok_max_mean_abs:   1e+12
-!----------------------------------
-!
-
-!============
-variable_entry:    orog
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_altitude
-units:             m
-cell_measures:     area: areacella
-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.0
-valid_max:         10000.0
-ok_min_mean_abs:   327.9
-ok_max_mean_abs:   431.3
-!----------------------------------
-!
-
-!============
-variable_entry:    sftlf
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     land_area_fraction
-units:             %
-cell_measures:     area: areacella
-long_name:         Land Area Fraction
-comment:           For atmospheres with more than 1 mesh (e.g., staggered grids), report areas that apply to surface vertical fluxes of energy.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          sftlf
-type:              real
-valid_min:         0.0
-valid_max:         100.0
-ok_min_mean_abs:   30.58
-ok_max_mean_abs:   37.07
-!----------------------------------
-!
-
-!============
-variable_entry:    sftgif
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     land_ice_area_fraction
-units:             %
-cell_measures:     area: areacella
-long_name:         Fraction of Grid Cell Covered with Glacier
-comment:           fraction of grid cell occupied by ""permanent"" ice (i.e., glaciers).  If time varying, report annual values for each year of simulation. For atmospheres with more than 1 mesh (e.g., staggered grids), report areas that apply to surface vertical fluxes of energy.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          sftgif
-type:              real
-valid_min:         0.0
-valid_max:         100.0
-ok_min_mean_abs:   7.328
-ok_max_mean_abs:   14.93
-!----------------------------------
-!
-
-!============
-variable_entry:    mrsofc
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     soil_moisture_content_at_field_capacity
-units:             kg m-2
-cell_measures:     area: areacella
-long_name:         Capacity of Soil to Store Water
-comment:           """where land"": 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"" where the land fraction is 0."
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          mrsofc
-type:              real
-valid_min:         -52.65
-valid_max:         4910
-ok_min_mean_abs:   -865
-ok_max_mean_abs:   2220
-!----------------------------------
-!
-
-!============
-variable_entry:    rootd
-!============
-modeling_realm:    land
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     root_depth
-units:             m
-cell_measures:     area: areacella
-long_name:         Maximum Root Depth
-comment:           report the maximum soil depth reachable by plant roots (if defined in model), i.e., the maximum soil depth from which they can extract moisture; report as ""missing"" where the land fraction is 0.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          rootd
-type:              real
-valid_min:         0.0
-valid_max:         30.0
-ok_min_mean_abs:   0.8
-ok_max_mean_abs:   3.2
-!----------------------------------
-!
-
-!============
-variable_entry:    deptho
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_floor_depth_below_geoid
-units:             m
-cell_measures:     area: areacello
-long_name:         Sea Floor Depth
-comment:           Ocean bathymetry.   Report here the sea floor depth for present day.  Report as missing for land grid cells.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          deptho
-type:              real
-valid_min:         0.0
-valid_max:         10000.0
-ok_min_mean_abs:   2000.0
-ok_max_mean_abs:   5000.0
-!----------------------------------
-!
-
-!============
-variable_entry:    volcello
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     ocean_volume
-units:             m3
-long_name:         Ocean Grid-Cell Volume
-comment:           3-D field: grid-cell volume ca. 2000.  For oceans with more than 1 mesh, report for on grid that applies to temperature 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude olevel
-out_name:          volcello
-type:              real
-valid_min:         100000.0
-valid_max:         1e+15
-ok_min_mean_abs:   100000.0
-ok_max_mean_abs:   1e+15
-!----------------------------------
-!
-
-!============
-variable_entry:    areacello
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cell_area
-units:             m2
-long_name:         Ocean Grid-Cell Area
-comment:           For oceans with more than 1 mesh (e.g., staggered grids), report areas that apply to surface vertical fluxes of energy.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          areacello
-type:              real
-valid_min:         100000.0
-valid_max:         1e+12
-ok_min_mean_abs:   100000.0
-ok_max_mean_abs:   1e+12
-!----------------------------------
-!
-
-!============
-variable_entry:    sftof
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     sea_area_fraction
-units:             %
-cell_measures:     area: areacello
-long_name:         Sea Area Fraction
-comment:           Report on the same grid that ocean fields are reported (i.e., the ocean native grid, or the grid that ocean data has been provided to CMIP.  For completeness, provide this even if the ocean grid is the same as the atmospheric grid. This is the area fraction at the ocean surface.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          sftof
-type:              real
-valid_min:         0.0
-valid_max:         100.0
-!----------------------------------
-!
-
-!============
-variable_entry:    basin
-!============
-modeling_realm:    ocean
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     region
-units:             1
-cell_measures:     area: areacello
-long_name:         Region Selection Index
-comment:           Report on the same grid as the temperature field.  flag_values=0,1,2,3,4,5,6,7,8,9,10 corresponding to flag_meanings=global_land, southern_ocean, atlantic_ocean, pacific_ocean, arctic_ocean, indian_ocean, mediterranean_sea, black_sea, hudson_bay, baltic_sea, red_sea.  Report on the grid used for the temperature field.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          basin
-type:              integer
-valid_min:         1.0
-valid_max:         10.0
-!----------------------------------
-!
-
diff --git a/TestTables/CMIP5_grids b/TestTables/CMIP5_grids
deleted file mode 100644
index 94f6d08..0000000
--- a/TestTables/CMIP5_grids
+++ /dev/null
@@ -1,319 +0,0 @@
-table_id: Table grids
-
-
-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:   12 November 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 parent_experiment_rip branch_time contact institute_id ! space separated required global attribute 
-
-expt_id_ok: '10- or 30-year run initialized in year XXXX' 'decadalXXXX'
-expt_id_ok: 'volcano-free hindcasts' '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: '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'
-
-
-!
-!
-!============
-mapping_entry: sample_user_mapping
-!============
-parameter: false_easting
-parameter: false_northing
-coordinates: rlon rlat
-!
-!============
-axis_entry: i_index
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------
-out_name:         i
-units:            1
-long_name:        cell index along first dimension
-type: 		  integer
-!----------------------------------	
-!
-!
-!============
-axis_entry: j_index
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------
-out_name:         j
-units:            1
-long_name:        cell index along second dimension
-type: 		  integer
-!----------------------------------	
-!
-!
-!============
-axis_entry: k_index
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------
-out_name:         k
-units:            1
-long_name:        cell index along third dimension
-type: 		  integer
-!----------------------------------	
-!
-!============
-axis_entry: l_index
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------
-out_name:         l
-units:            1
-long_name:        cell index along fourth dimension
-type: 		  integer
-!----------------------------------	
-!
-!============
-axis_entry: m_index
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------
-out_name:         m
-units:            1
-long_name:        cell index along fifth dimension
-type: 		  integer
-!----------------------------------	
-!
-!============
-axis_entry: x
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    projection_x_coordinate
-units:            m
-long_name:        x coordinate of projection
-axis: X
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!
-!============
-axis_entry: y
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    projection_y_coordinate
-units:            m
-long_name:        y coordinate of projection
-axis: Y
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!
-!============
-axis_entry: x_deg
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-out_name:         x
-standard_name:    projection_x_coordinate
-units:            degrees
-long_name:        x coordinate of projection
-axis: X
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!
-!============
-axis_entry: y_deg
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-out_name:         y
-standard_name:    projection_y_coordinate
-units:            degrees
-long_name:        y coordinate of projection
-axis: Y
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!
-!============
-axis_entry: grid_latitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    grid_latitude
-units:            degrees
-long_name:        latitude in rotated pole grid
-axis: Y
-!----------------------------------	
-!
-! 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
-axis: X
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         rlon
-!
-!============
-axis_entry: 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:        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:	  longitude latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.        
-valid_max:        90.
-!----------------------------------	
-!
-!
-!============
-variable_entry: vertices_longitude
-!============
-!----------------------------------	
-units:            degrees_east
-dimensions:	  vertices longitude latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon_vertices
-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: vertices_latitude
-!============
-!----------------------------------	
-units:            degrees_north
-dimensions:	  vertices longitude latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat_vertices
-valid_min:        -90.        
-valid_max:        90.
-!----------------------------------	
-!
-!
diff --git a/TestTables/CMIP6_3hr.json b/TestTables/CMIP6_3hr.json
index d5da7d0..94bb791 100644
--- a/TestTables/CMIP6_3hr.json
+++ b/TestTables/CMIP6_3hr.json
@@ -1,24 +1,24 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table 3hr", 
         "realm": "atmos", 
         "frequency": "3hr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "0.125000", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "clt": {
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "units": "%", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Total Cloud Fraction", 
             "comment": "Total cloud area fraction for the whole atmospheric column, as seen from the surface or the top of the atmosphere. Includes both large-scale and convective cloud.", 
@@ -35,7 +35,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_latent_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upward Latent Heat Flux", 
             "comment": "", 
@@ -52,7 +52,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_sensible_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upward Sensible Heat Flux", 
             "comment": "", 
@@ -120,7 +120,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Precipitation", 
             "comment": "includes both liquid and solid phases", 
@@ -137,7 +137,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "convective_precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Convective Precipitation", 
             "comment": "Convective precipitation at surface; includes both liquid and solid phases.", 
@@ -154,7 +154,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "snowfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Snowfall Flux", 
             "comment": "at surface; includes precipitation of all forms of water in the solid phase", 
@@ -188,7 +188,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Longwave Radiation", 
             "comment": "", 
@@ -205,7 +205,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", 
             "comment": "Surface downwelling clear-sky longwave radiation", 
@@ -222,7 +222,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upwelling Longwave Radiation", 
             "comment": "", 
@@ -239,7 +239,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Shortwave Radiation", 
             "comment": "surface solar irradiance for UV calculations", 
@@ -256,7 +256,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", 
             "comment": "surface solar irradiance clear sky for UV calculations", 
@@ -273,7 +273,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Diffuse Downwelling Shortwave Radiation", 
             "comment": "", 
@@ -290,7 +290,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upwelling Shortwave Radiation", 
             "comment": "", 
@@ -307,7 +307,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", 
             "comment": "Surface upwelling clear-sky shortwave radiation", 
diff --git a/TestTables/CMIP6_6hrLev.json b/TestTables/CMIP6_6hrLev.json
index 8d0e105..1f81bba 100644
--- a/TestTables/CMIP6_6hrLev.json
+++ b/TestTables/CMIP6_6hrLev.json
@@ -1,19 +1,53 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table 6hrLev", 
         "realm": "atmos", 
         "frequency": "6hr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "0.250000", 
         "generic_levels": "alevel", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
+        "bs550aer": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "volume_lidar_backwards_scattering_coefficient_in_air_due_to_ambient_aerosol_particles", 
+            "units": "m-1 sr-1", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Aerosol backscatter coefficient", 
+            "comment": "Aerosol  Backscatter @550nm @ 180 degrees, computed from extinction and lidar ratio", 
+            "dimensions": "longitude latitude alevel time1", 
+            "out_name": "bs550aer", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "ec550aer": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "volume_extinction_coefficient_in_air_due_to_ambient_aerosol_particles", 
+            "units": "m-1", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Aerosol extinction coefficient", 
+            "comment": "Aerosol Extinction @550nm", 
+            "dimensions": "longitude latitude alevel time1", 
+            "out_name": "ec550aer", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "hus": {
             "modeling_realm": "atmos", 
             "standard_name": "specific_humidity", 
@@ -35,7 +69,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure", 
             "units": "Pa", 
-            "cell_methods": "", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Air Pressure", 
             "comment": "The atmospheric pressure at the model layer midpoints for all times and levels in the associated output variables", 
@@ -115,40 +149,6 @@
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
-        }, 
-        "zmlwaero": {
-            "modeling_realm": "atmos", 
-            "standard_name": "longwave_heating_rate_due_to_volcanic_aerosols", 
-            "units": "K s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Zonal mean longwave heating rate due to volcanic aerosols", 
-            "comment": "longwave heating rate due to volcanic aerosols to be diagnosed through double radiation call, zonal average values required", 
-            "dimensions": "latitude alevel time1", 
-            "out_name": "zmlwaero", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zmswaero": {
-            "modeling_realm": "atmos", 
-            "standard_name": "shortwave_heating_rate_due_to_volcanic_aerosols", 
-            "units": "K s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Zonal mean shortwave heating rate due to volcanic aerosols", 
-            "comment": "shortwave heating rate due to volcanic aerosols to be diagnosed through double radiation call, zonal average values required", 
-            "dimensions": "latitude alevel time1", 
-            "out_name": "zmswaero", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
         }
     }
 }
diff --git a/TestTables/CMIP6_6hrPlev.json b/TestTables/CMIP6_6hrPlev.json
index 4e2f71c..c964d35 100644
--- a/TestTables/CMIP6_6hrPlev.json
+++ b/TestTables/CMIP6_6hrPlev.json
@@ -1,30 +1,30 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table 6hrPlev", 
         "realm": "atmos", 
         "frequency": "6hr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "0.250000", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "bldep": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_boundary_layer_thickness", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "boundary_layer_depth", 
+            "long_name": "Boundary Layer Depth", 
             "comment": "Boundary layer depth", 
             "dimensions": "longitude latitude time", 
             "out_name": "bldep", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -35,7 +35,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "relative_humidity", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Near-Surface Relative Humidity", 
             "comment": "The relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.", 
@@ -52,7 +52,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "specific_humidity", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Specific Humidity", 
             "comment": "", 
@@ -65,16 +65,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hus7h": {
+        "pr": {
             "modeling_realm": "atmos", 
-            "standard_name": "specific_humidity", 
-            "units": "1.0", 
-            "cell_methods": "time: point", 
+            "standard_name": "precipitation_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Specific Humidity", 
+            "long_name": "Precipitation", 
+            "comment": "includes both liquid and solid phases", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "pr", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "prhmax": {
+            "modeling_realm": "atmos", 
+            "standard_name": "precipitation_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: mean time: mean within hours time: maximum over hours", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Maximum Hourly Precipitation Rate", 
             "comment": "", 
-            "dimensions": "longitude latitude plev7h time1", 
-            "out_name": "hus7h", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "prhmax", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -86,11 +103,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure_at_sea_level", 
             "units": "Pa", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Sea Level Pressure", 
             "comment": "Sea Level Pressure", 
-            "dimensions": "longitude latitude time1", 
+            "dimensions": "longitude latitude time", 
             "out_name": "psl", 
             "type": "real", 
             "positive": "", 
@@ -101,7 +118,7 @@
         }, 
         "rv850": {
             "modeling_realm": "atmos", 
-            "standard_name": "relative_vorticity", 
+            "standard_name": "atmosphere_relative_vorticity", 
             "units": "s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
@@ -109,23 +126,23 @@
             "comment": "", 
             "dimensions": "longitude latitude time p850", 
             "out_name": "rv850", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ta": {
+        "sfcWind": {
             "modeling_realm": "atmos", 
-            "standard_name": "air_temperature", 
-            "units": "K", 
-            "cell_methods": "", 
+            "standard_name": "wind_speed", 
+            "units": "m s-1", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Air Temperature", 
-            "comment": "Air Temperature", 
-            "dimensions": "longitude latitude plev3 time1", 
-            "out_name": "ta", 
+            "long_name": "Near-Surface Wind Speed", 
+            "comment": "near-surface (usually, 10 meters) wind speed.", 
+            "dimensions": "longitude latitude height10m time", 
+            "out_name": "sfcWind", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -133,34 +150,17 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ta7h": {
+        "tas": {
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Air Temperature", 
-            "comment": "Air Temperature", 
-            "dimensions": "longitude latitude plev7h time1", 
-            "out_name": "ta7h", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ua": {
-            "modeling_realm": "atmos", 
-            "standard_name": "eastward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Eastward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev3 time1", 
-            "out_name": "ua", 
-            "type": "real", 
+            "long_name": "Surface Temperature", 
+            "comment": "near-surface (usually, 2 meter) air temperature", 
+            "dimensions": "longitude latitude height2m time", 
+            "out_name": "tas", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -171,11 +171,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "eastward_wind", 
             "units": "m s-1", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Eastward Wind at 100 hPa", 
-            "comment": "Zonal wind on the 100m", 
-            "dimensions": "longitude latitude height100 time", 
+            "long_name": "Eastward Wind at 100m", 
+            "comment": "Zonal wind at 100m height", 
+            "dimensions": "longitude latitude height100m time", 
             "out_name": "ua100m", 
             "type": "", 
             "positive": "", 
@@ -190,7 +190,7 @@
             "units": "m s-1", 
             "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Eastward Wind", 
+            "long_name": "Eastward Wind at 200hPa", 
             "comment": "Zonal wind (positive eastwards) at 200hPa", 
             "dimensions": "longitude latitude time p200", 
             "out_name": "ua200", 
@@ -201,28 +201,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ua7h": {
-            "modeling_realm": "atmos", 
-            "standard_name": "eastward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Eastward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev7h time1", 
-            "out_name": "ua7h", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "ua850": {
             "modeling_realm": "atmos", 
             "standard_name": "eastward_wind", 
             "units": "m s-1", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Eastward Wind at 850 hPa", 
             "comment": "Zonal wind on the 850 hPa surface", 
@@ -235,16 +218,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "va": {
+        "uas": {
             "modeling_realm": "atmos", 
-            "standard_name": "northward_wind", 
+            "standard_name": "eastward_wind", 
             "units": "m s-1", 
-            "cell_methods": "", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Northward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev3 time1", 
-            "out_name": "va", 
+            "long_name": "Eastward Near-Surface Wind", 
+            "comment": "Eastward component of the near-surface (usually, 10 meters)  wind", 
+            "dimensions": "longitude latitude height10m time", 
+            "out_name": "uas", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -256,11 +239,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "northward_wind", 
             "units": "m s-1", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Northward Wind at 100m", 
             "comment": "Meridional wind at 100m above the surface.", 
-            "dimensions": "longitude latitude height100 time", 
+            "dimensions": "longitude latitude height100m time", 
             "out_name": "va100m", 
             "type": "", 
             "positive": "", 
@@ -286,28 +269,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "va7h": {
-            "modeling_realm": "atmos", 
-            "standard_name": "northward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Northward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev7h time1", 
-            "out_name": "va7h", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "va850": {
             "modeling_realm": "atmos", 
             "standard_name": "northward_wind", 
             "units": "m s-1", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Northward Wind", 
             "comment": "Northward component of the wind at 850hPa", 
@@ -324,7 +290,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "lagrangian_tendency_of_air_pressure", 
             "units": "Pa s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "omega (=dp/dt)", 
             "comment": "Omega (vertical velocity in pressure coordinates, positive downwards)", 
@@ -337,32 +303,15 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "wbptemp7h": {
-            "modeling_realm": "atmos", 
-            "standard_name": "", 
-            "units": "K", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "wet_bulb_potential_temperature", 
-            "comment": "Wet bulb potential temperature", 
-            "dimensions": "longitude latitude plev7h time", 
-            "out_name": "wbptemp7h", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "wsgmax100m": {
             "modeling_realm": "atmos", 
             "standard_name": "wind_speed_of_gust", 
             "units": "m s-1", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Maximum Wind Speed of Gust at 100m", 
             "comment": "Wind speed gust maximum at 100m above surface", 
-            "dimensions": "longitude latitude height100 time", 
+            "dimensions": "longitude latitude height100m time", 
             "out_name": "wsgmax100m", 
             "type": "", 
             "positive": "", 
@@ -372,7 +321,7 @@
             "ok_max_mean_abs": ""
         }, 
         "zg1000": {
-            "modeling_realm": "aerosol", 
+            "modeling_realm": "atmos", 
             "standard_name": "geopotential_height", 
             "units": "m", 
             "cell_methods": "time: mean", 
@@ -387,23 +336,6 @@
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
-        }, 
-        "zg7h": {
-            "modeling_realm": "atmos", 
-            "standard_name": "geopotential_height", 
-            "units": "m", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Geopotential Height", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev7h time1", 
-            "out_name": "zg7h", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
         }
     }
 }
diff --git a/TestTables/CMIP6_6hrPlevpt.json b/TestTables/CMIP6_6hrPlevPt.json
similarity index 76%
rename from TestTables/CMIP6_6hrPlevpt.json
rename to TestTables/CMIP6_6hrPlevPt.json
index 90eb2d9..ea2aa16 100644
--- a/TestTables/CMIP6_6hrPlevpt.json
+++ b/TestTables/CMIP6_6hrPlevPt.json
@@ -1,30 +1,30 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table 6hrPlevpt", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table 6hrPlevPt", 
         "realm": "atmos", 
         "frequency": "6hr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "0.250000", 
+        "product": "model-output", 
+        "approx_interval": "", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
-        "alb": {
-            "modeling_realm": "atmos", 
+        "albsrfc": {
+            "modeling_realm": "aerosol", 
             "standard_name": "surface_albedo", 
             "units": "1.0", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Surface Albedo", 
+            "long_name": "surface albedo", 
             "comment": "", 
             "dimensions": "longitude latitude time1", 
-            "out_name": "alb", 
-            "type": "", 
+            "out_name": "albsrfc", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -116,6 +116,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "hus": {
+            "modeling_realm": "atmos", 
+            "standard_name": "specific_humidity", 
+            "units": "1.0", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Specific Humidity", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev3 time1", 
+            "out_name": "hus", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "hus27": {
             "modeling_realm": "atmos", 
             "standard_name": "specific_humidity", 
@@ -133,6 +150,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "hus7h": {
+            "modeling_realm": "atmos", 
+            "standard_name": "specific_humidity", 
+            "units": "1.0", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Specific Humidity", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev7h time1", 
+            "out_name": "hus7h", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "huss": {
             "modeling_realm": "atmos", 
             "standard_name": "specific_humidity", 
@@ -153,7 +187,7 @@
         "lwsffluxaero": {
             "modeling_realm": "atmos", 
             "standard_name": "longwave__flux__due_to_volcanic_aerosols_at_the_surface", 
-            "units": "W m-2 ", 
+            "units": "W m-2", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Longwave flux  due to volcanic aerosols at the surface", 
@@ -170,7 +204,7 @@
         "lwtoafluxaerocs": {
             "modeling_realm": "atmos", 
             "standard_name": "longwave_flux_due_to_volcanic_aerosols_at_TOA_under_clear_sky", 
-            "units": "W m-2 ", 
+            "units": "W m-2", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Longwave flux due to volcanic aerosols at TOA under clear sky", 
@@ -188,11 +222,11 @@
             "modeling_realm": "land", 
             "standard_name": "moisture_content_of_soil_layer", 
             "units": "kg m-2", 
-            "cell_methods": "time: point", 
+            "cell_methods": "area: mean where land time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Water Content of Soil Layer", 
             "comment": "The mass of water in all phases, including ice, in soil layers.  Report as missing for grid cells with no land.", 
-            "dimensions": "longitude latitude time1", 
+            "dimensions": "longitude latitude time1 sdepth1", 
             "out_name": "mrlsl", 
             "type": "real", 
             "positive": "", 
@@ -205,11 +239,11 @@
             "modeling_realm": "land", 
             "standard_name": "moisture_content_of_soil_layer", 
             "units": "kg m-2", 
-            "cell_methods": "time: point", 
+            "cell_methods": "area: mean where land time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Moisture in Upper Portion of Soil Column", 
             "comment": "The mass of water in all phases in the upper 10cm of the  soil layer.", 
-            "dimensions": "longitude latitude time1", 
+            "dimensions": "longitude latitude time1 sdepth1", 
             "out_name": "mrsos", 
             "type": "real", 
             "positive": "", 
@@ -224,44 +258,10 @@
             "units": "Pa", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Pressure at Model Full-Levels", 
+            "long_name": "Pressure on Model Levels", 
             "comment": "Air pressure on model levels", 
             "dimensions": "longitude latitude plev27 time1", 
             "out_name": "pfull27", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "prhmax": {
-            "modeling_realm": "atmos", 
-            "standard_name": "precipitation_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Daily Maximum Hourly Precipitation Rate", 
-            "comment": "", 
-            "dimensions": "longitude latitude time1", 
-            "out_name": "prhmax", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "prmax": {
-            "modeling_realm": "atmos", 
-            "standard_name": "precipitation_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Precipitation maximum", 
-            "comment": "Maximum instantaneous precipitation", 
-            "dimensions": "longitude latitude time1", 
-            "out_name": "prmax", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -303,13 +303,30 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "rv850": {
+            "modeling_realm": "atmos", 
+            "standard_name": "atmosphere_relative_vorticity", 
+            "units": "s-1", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Relative Vorticity at 850 hPa", 
+            "comment": "", 
+            "dimensions": "longitude latitude time1 p850", 
+            "out_name": "rv850", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "sfcWind": {
             "modeling_realm": "atmos", 
             "standard_name": "wind_speed", 
             "units": "m s-1", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Daily-Mean Near-Surface Wind Speed", 
+            "long_name": "Near-Surface Wind Speed", 
             "comment": "near-surface (usually, 10 meters) wind speed.", 
             "dimensions": "longitude latitude time1", 
             "out_name": "sfcWind", 
@@ -357,7 +374,7 @@
         "swsffluxaero": {
             "modeling_realm": "atmos", 
             "standard_name": "shortwave__flux_due_to_volcanic_aerosols_at__the_surface", 
-            "units": "W m-2 ", 
+            "units": "W m-2", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Shortwave heating rate due to volcanic aerosols", 
@@ -374,7 +391,7 @@
         "swtoafluxaerocs": {
             "modeling_realm": "atmos", 
             "standard_name": "shortwave_flux_due_to_volcanic_aerosols_at_TOA_under_clear_sky", 
-            "units": "W m-2 ", 
+            "units": "W m-2", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Shortwave flux due to volcanic aerosols at TOA under clear sky", 
@@ -422,17 +439,34 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "ta7h": {
+            "modeling_realm": "atmos", 
+            "standard_name": "air_temperature", 
+            "units": "K", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Air Temperature", 
+            "comment": "Air Temperature", 
+            "dimensions": "longitude latitude plev7h time1", 
+            "out_name": "ta7h", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "tas": {
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Near-Surface Air Temperature", 
+            "long_name": "Surface Temperature", 
             "comment": "near-surface (usually, 2 meter) air temperature", 
             "dimensions": "longitude latitude time1", 
             "out_name": "tas", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -460,11 +494,11 @@
             "modeling_realm": "land", 
             "standard_name": "soil_temperature", 
             "units": "K", 
-            "cell_methods": "time: point", 
+            "cell_methods": "area: mean where land time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Temperature of Soil", 
             "comment": "Temperature of each soil layer. Reported as missing for grid cells with no land.", 
-            "dimensions": "longitude latitude time1", 
+            "dimensions": "longitude latitude time1 sdepth1", 
             "out_name": "tsl", 
             "type": "real", 
             "positive": "", 
@@ -483,6 +517,23 @@
             "comment": "", 
             "dimensions": "longitude latitude plev3 time1", 
             "out_name": "ua", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "ua7h": {
+            "modeling_realm": "atmos", 
+            "standard_name": "eastward_wind", 
+            "units": "m s-1", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Eastward Wind", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev7h time1", 
+            "out_name": "ua7h", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -498,7 +549,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Eastward Near-Surface Wind", 
             "comment": "Eastward component of the near-surface (usually, 10 meters)  wind", 
-            "dimensions": "longitude latitude time1", 
+            "dimensions": "longitude latitude height10m time1", 
             "out_name": "uas", 
             "type": "real", 
             "positive": "", 
@@ -517,6 +568,23 @@
             "comment": "", 
             "dimensions": "longitude latitude plev3 time1", 
             "out_name": "va", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "va7h": {
+            "modeling_realm": "atmos", 
+            "standard_name": "northward_wind", 
+            "units": "m s-1", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Northward Wind", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev7h time1", 
+            "out_name": "va7h", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -532,7 +600,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Northward Near-Surface Wind", 
             "comment": "Northward component of the near surface wind", 
-            "dimensions": "longitude latitude time1", 
+            "dimensions": "longitude latitude height10m time1", 
             "out_name": "vas", 
             "type": "real", 
             "positive": "", 
@@ -543,13 +611,13 @@
         }, 
         "vortmean": {
             "modeling_realm": "atmos", 
-            "standard_name": "", 
+            "standard_name": "atmosphere_relative_vorticity", 
             "units": "s-1", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "vorticity_mean_850_700", 
+            "long_name": "atmosphere_relative_vorticity", 
             "comment": "Mean vorticity over 850,700,600 hPa", 
-            "dimensions": "longitude latitude plev3 time1", 
+            "dimensions": "longitude latitude pl700 time1", 
             "out_name": "vortmean", 
             "type": "", 
             "positive": "", 
@@ -558,6 +626,40 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "wbptemp7h": {
+            "modeling_realm": "atmos", 
+            "standard_name": "", 
+            "units": "K", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "wet_bulb_potential_temperature", 
+            "comment": "Wet bulb potential temperature", 
+            "dimensions": "longitude latitude plev7h time1", 
+            "out_name": "wbptemp7h", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "zg": {
+            "modeling_realm": "atmos", 
+            "standard_name": "geopotential_height", 
+            "units": "m", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Geopotential Height", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev3 time1", 
+            "out_name": "zg", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "zg27": {
             "modeling_realm": "atmos", 
             "standard_name": "geopotential_height", 
@@ -568,7 +670,41 @@
             "comment": "", 
             "dimensions": "longitude latitude plev27 time1", 
             "out_name": "zg27", 
-            "type": "", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "zg500": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "geopotential_height", 
+            "units": "m", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Geopotential Height at 500 hPa", 
+            "comment": "geopotential height on the 500 hPa surface", 
+            "dimensions": "longitude latitude time1 p500", 
+            "out_name": "zg500", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "zg7h": {
+            "modeling_realm": "atmos", 
+            "standard_name": "geopotential_height", 
+            "units": "m", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Geopotential Height", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev7h time1", 
+            "out_name": "zg7h", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
diff --git a/TestTables/CMIP6_aerdaily.json b/TestTables/CMIP6_AERday.json
similarity index 72%
rename from TestTables/CMIP6_aerdaily.json
rename to TestTables/CMIP6_AERday.json
index 477b190..61f202a 100644
--- a/TestTables/CMIP6_aerdaily.json
+++ b/TestTables/CMIP6_AERday.json
@@ -1,24 +1,24 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table aerdaily", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table AERday", 
         "realm": "aerosol", 
         "frequency": "day", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "1.00000", 
+        "product": "model-output", 
+        "approx_interval": "", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "cod": {
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_cloud", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "cloud optical depth", 
             "comment": "", 
@@ -35,10 +35,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_boundary_layer_thickness", 
             "units": "m", 
-            "cell_methods": "time: maximum", 
+            "cell_methods": "area: mean time: maximum", 
             "cell_measures": "area: areacella", 
             "long_name": "maximum PBL height", 
-            "comment": "", 
+            "comment": "maximum boundary layer height during the day (add cell_methods attribute: 'time: maximum')", 
             "dimensions": "longitude latitude time", 
             "out_name": "maxpblz", 
             "type": "float", 
@@ -52,10 +52,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_boundary_layer_thickness", 
             "units": "m", 
-            "cell_methods": "time: minimum", 
+            "cell_methods": "area: mean time: minimum", 
             "cell_measures": "area: areacella", 
             "long_name": "minimum PBL height", 
-            "comment": "", 
+            "comment": "minimum boundary layer height during the day (add cell_methods attribute: 'time: minimum')", 
             "dimensions": "longitude latitude time", 
             "out_name": "minpblz", 
             "type": "float", 
@@ -69,7 +69,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "ambient aerosol optical thickness at 550 nm", 
             "comment": "AOD from the ambient aerosls (i.e., includes aerosol water).  Does not include AOD from stratospheric aerosols if these are prescribed but includes other possible background aerosol types. Needs a comment attribute 'wavelength: 550 nm'", 
@@ -86,7 +86,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_ozone_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean time: maximum", 
             "cell_measures": "area: areacella", 
             "long_name": "daily maximum O3 volume mixing ratio in lowest model layer", 
             "comment": "", 
@@ -99,28 +99,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tas": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "air_temperature", 
-            "units": "K", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Surface Air Temperature", 
-            "comment": "near-surface (usually, 2 meter) air temperature", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "tas", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "toz": {
             "modeling_realm": "aerosol", 
             "standard_name": "equivalent_thickness_at_stp_of_atmosphere_ozone_content", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Total Column Ozone", 
             "comment": "total ozone column in DU", 
@@ -133,32 +116,15 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tpp": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "tropopause_air_pressure", 
-            "units": "Pa", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "tropopause pressure", 
-            "comment": "Only required for the first day 00:00 UTC of each month. The tropopause follows the WMO definition and should be consistent with the the tropopause definition used for tpo3chm and lso3chm.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "tpp", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "ua10": {
             "modeling_realm": "aerosol", 
             "standard_name": "eastward_wind", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Eastward Wind at 10 hPa", 
             "comment": "Zonal wind on the 10 hPa surface", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time p10", 
             "out_name": "ua10", 
             "type": "float", 
             "positive": "", 
@@ -171,11 +137,11 @@
             "modeling_realm": "aerosol", 
             "standard_name": "geopotential_height", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Geopotential Height at 10 hPa", 
             "comment": "Geopotential height on the 10 hPa surface", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time p10", 
             "out_name": "zg10", 
             "type": "float", 
             "positive": "", 
@@ -188,11 +154,11 @@
             "modeling_realm": "aerosol", 
             "standard_name": "geopotential_height", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Geopotential Height at 100 hPa", 
             "comment": "Geopotential height on the 100 hPa surface", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time p100", 
             "out_name": "zg100", 
             "type": "float", 
             "positive": "", 
@@ -202,14 +168,14 @@
             "ok_max_mean_abs": ""
         }, 
         "zg1000": {
-            "modeling_realm": "aerosol", 
+            "modeling_realm": "atmos", 
             "standard_name": "geopotential_height", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Geopotential Height at 1000 hPa", 
             "comment": "Geopotential height on the 1000 hPa surface", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time p1000", 
             "out_name": "zg1000", 
             "type": "float", 
             "positive": "", 
@@ -222,11 +188,11 @@
             "modeling_realm": "aerosol", 
             "standard_name": "geopotential_height", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Geopotential Height at 500 hPa", 
             "comment": "geopotential height on the 500 hPa surface", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time p500", 
             "out_name": "zg500", 
             "type": "float", 
             "positive": "", 
diff --git a/TestTables/CMIP6_aerfixed.json b/TestTables/CMIP6_AERfx.json
similarity index 57%
rename from TestTables/CMIP6_aerfixed.json
rename to TestTables/CMIP6_AERfx.json
index 76fa096..fcc5c8a 100644
--- a/TestTables/CMIP6_aerfixed.json
+++ b/TestTables/CMIP6_AERfx.json
@@ -1,14 +1,14 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table aerfixed", 
+        "data_specs_version": "01.00.03", 
+        "table_id": "Table AERfx", 
         "realm": "aerosol", 
         "frequency": "fx", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "24 February 2017", 
         "missing_value": "1e20", 
         "product": "output", 
-        "approx_interval": "0.00000", 
+        "approx_interval": "", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
         "Conventions": "CF-1.6 CMIP-6.0"
@@ -18,11 +18,11 @@
             "modeling_realm": "aerosol", 
             "standard_name": "cell_area", 
             "units": "m2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean (global) time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "area of grid cell", 
             "comment": "For atmospheres with more than 1 mesh (e.g., staggered grids), report areas that apply to surface vertical fluxes of energy.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time1", 
             "out_name": "areacella", 
             "type": "float", 
             "positive": "", 
@@ -31,33 +31,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "landf": {
+        "sftlf": {
             "modeling_realm": "aerosol", 
             "standard_name": "land_area_fraction", 
-            "units": "1.0", 
+            "units": "1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "fraction of the grid  cell occupied by land", 
             "comment": "Please express 'X_area_fraction' as the fraction of horizontal area occupied by X.", 
             "dimensions": "longitude latitude time", 
-            "out_name": "landf", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "orog": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "surface_altitude", 
-            "units": "m", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "surface altitude", 
-            "comment": "The surface called 'surface' means the lower boundary of the atmosphere. Altitude is the (geometric) height above the geoid, which is the reference geopotential surface. The geoid is similar to mean sea level.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "orog", 
+            "out_name": "sftlf", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
diff --git a/TestTables/CMIP6_aerhourly.json b/TestTables/CMIP6_AERhr.json
similarity index 83%
rename from TestTables/CMIP6_aerhourly.json
rename to TestTables/CMIP6_AERhr.json
index f2fb486..aa953a3 100644
--- a/TestTables/CMIP6_aerhourly.json
+++ b/TestTables/CMIP6_AERhr.json
@@ -1,24 +1,24 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table aerhourly", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table AERhr", 
         "realm": "aerosol", 
         "frequency": "hr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "0.017361", 
+        "product": "model-output", 
+        "approx_interval": "", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "ps": {
             "modeling_realm": "aerosol", 
             "standard_name": "surface_air_pressure", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface pressure", 
             "comment": "surface pressure (not mean sea-level pressure), 2-D field to calculate the 3-D pressure field from hybrid coordinates", 
@@ -35,7 +35,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_nitrogen_dioxide_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "NO2 volume mixing ratio in lowest model layer", 
             "comment": "", 
@@ -52,7 +52,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_ozone_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "O3 volume mixing ratio in lowest model layer", 
             "comment": "", 
@@ -69,7 +69,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_pm2p5_ambient_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "PM2.5 mass mixing ratio in lowest model layer", 
             "comment": "", 
@@ -82,16 +82,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "sfta": {
-            "modeling_realm": "aerosol", 
+        "tas": {
+            "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Temperature", 
-            "comment": "Temperature at surface", 
+            "comment": "near-surface (usually, 2 meter) air temperature", 
             "dimensions": "longitude latitude time", 
-            "out_name": "sfta", 
+            "out_name": "tas", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
diff --git a/TestTables/CMIP6_aermonthly.json b/TestTables/CMIP6_AERmon.json
similarity index 74%
rename from TestTables/CMIP6_aermonthly.json
rename to TestTables/CMIP6_AERmon.json
index 68c9178..ef06a8e 100644
--- a/TestTables/CMIP6_aermonthly.json
+++ b/TestTables/CMIP6_AERmon.json
@@ -1,24 +1,24 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table aermonthly", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table AERmon", 
         "realm": "aerosol", 
         "frequency": "mon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "30.00000", 
-        "generic_levels": "", 
+        "generic_levels": "alevel", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "abs550aer": {
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_absorption_optical_thickness_due_to_ambient_aerosol", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "ambient aerosol absorption optical thickness at 550 nm", 
             "comment": "", 
@@ -35,7 +35,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_mass_of_air_per_unit_area", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Vertically integrated mass content of air in layer", 
             "comment": "", 
@@ -50,12 +50,12 @@
         }, 
         "albs": {
             "modeling_realm": "aerosol", 
-            "standard_name": "planetary_albedo", 
+            "standard_name": "surface_albedo", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "planetary albedo", 
-            "comment": "", 
+            "comment": "Grid cell average albedo for all wavelengths.", 
             "dimensions": "longitude latitude time", 
             "out_name": "albs", 
             "type": "float", 
@@ -69,7 +69,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "surface_albedo", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "surface albedo", 
             "comment": "", 
@@ -86,9 +86,9 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tracer_lifetime", 
             "units": "yr", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "aoa_nh", 
+            "long_name": "Tracer age of air Northern Hemisphere", 
             "comment": "Fixed surface layer mixing ratio over 30o-50oN (0 ppbv), uniform fixed source (at all levels) everywhere else (source is unspecified but must be constant in space and time and documented). Note that the source could be 1yr/yr, so the tracer concentration provides mean age in years. For method using linearly increasing tracer include a method attribute: 'linearly increasing tracer'For method using uniform source (1yr/yr) include a method attribute: 'uniform source'", 
             "dimensions": "longitude latitude alevel time", 
             "out_name": "aoanh", 
@@ -99,11 +99,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "bldep": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "atmosphere_boundary_layer_thickness", 
+            "units": "m", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Boundary Layer Depth", 
+            "comment": "Boundary layer depth", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "bldep", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "c2h2": {
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_ethyne_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "C2H2 volume mixing ratio", 
             "comment": "", 
@@ -120,7 +137,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_ethane_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "C2H6 volume mixing ratio", 
             "comment": "", 
@@ -137,7 +154,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_propene_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "C3H6  volume mixing ratio", 
             "comment": "", 
@@ -154,7 +171,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_propane_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "C3H8  volume mixing ratio", 
             "comment": "", 
@@ -171,7 +188,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "number_concentration_of_cloud_condensation_nuclei_at_stp_in_air", 
             "units": "m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "cloud condensation nuclei concentration at liquid cloud top", 
             "comment": "proposed name: number_concentration_of_ambient_aerosol_in_air_at_liquid_water_cloud_top", 
@@ -188,10 +205,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "number_concentration_of_cloud_liquid_water_particles_in_air", 
             "units": "m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "cloud droplet number concentration", 
-            "comment": "Cloud Droplet Number Concentration in liquid water clouds. Question: Is this rather a 3D field?", 
+            "comment": "Cloud Droplet Number Concentration in liquid water clouds.", 
             "dimensions": "longitude latitude alevel time", 
             "out_name": "cdnc", 
             "type": "float", 
@@ -205,7 +222,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_acetone_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "CH3COCH3  volume mixing ratio", 
             "comment": "", 
@@ -222,7 +239,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_methane_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "CH4 volume mixing ratio", 
             "comment": "", 
@@ -239,7 +256,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_aqueous_phase_net_chemical_production", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Aqueous-phase production rate of SO4", 
             "comment": "proposed name: tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_aqueous_phase_net_chemical_production", 
@@ -256,7 +273,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_gaseous_phase_net_chemical_production", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Gas-phase production rate of SO4", 
             "comment": "proposed name: tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_gas_phase_net_chemical_production", 
@@ -273,10 +290,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total net production of anthropogenic secondary organic aerosol", 
-            "comment": "If model lumps SOA emissions with POA, then the sum of POA and SOA emissions is reported as POA emissions.  'mass' refers to the mass of primary organic matter, not mass of organic carbon alone. proposed name: tendency_of_atmosphere_mass_content_of_anthropogenic_secondary_particulate_organic_matter_dry_aerosol_due_to_net_chemical_production.  Used instead of emi_asoa in original ACCMIP Excel spreadsheet. That variable had notes: This can be a pseudo-emission flux  [...]
+            "comment": "anthropogenic part of chepsoa", 
             "dimensions": "longitude latitude time", 
             "out_name": "chepasoa", 
             "type": "float", 
@@ -290,10 +307,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "chemical production of dry aerosol secondary organic matter", 
-            "comment": "Tendency of atmosphere mass content of secondary organic matter_dry aerosol due to net production:  If model lumps SOA emissions with POA, then the sum of POA and SOA emissions is reported as POA emissions. Here, mass refers to the mass of primary organic matter, not mass of organic carbon alone. Instead of emi_soa in original ACCMIP Excel spreadsheet. That variable had notes: This can be a pseudo-emission flux as used in AEROCOM (Dentener et al, ACP, 2006) or the [...]
+            "comment": "If model lumps SOA emissions with POA, then the sum of POA and SOA emissions is reported as OA emissions. ''mass'' refers to the mass of primary organic matter, not mass of organic carbon alone.", 
             "dimensions": "longitude latitude time", 
             "out_name": "chepsoa", 
             "type": "float", 
@@ -303,11 +320,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "cltc": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "convective_cloud_area_fraction", 
+            "units": "%", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Convective Cloud Area Fraction", 
+            "comment": "Convective cloud area fraction for the whole atmospheric column, as seen from the surface or the top of the atmosphere. Includes only convective cloud.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "cltc", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "cnpz": {
             "modeling_realm": "aerosol", 
             "standard_name": "canopy_height", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "canopy height", 
             "comment": "", 
@@ -324,7 +358,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_carbon_monoxide_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "CO volume mixing ratio", 
             "comment": "", 
@@ -341,7 +375,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_carbon_dioxide_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "CO2 volume mixing ratio", 
             "comment": "", 
@@ -358,7 +392,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_cloud", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "cloud optical depth", 
             "comment": "", 
@@ -371,45 +405,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "convcl": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "convective_cloud_area_fraction_in_atmosphere_layer", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Convective Cloud Area Fraction", 
-            "comment": "Convective cloud fraction in an atmospheric layer", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "convcl", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "convclt": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "convective_cloud_area_fraction", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Convective Cloud Area Fraction", 
-            "comment": "Convective cloud fraction", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "convclt", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "dms": {
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_dimethyl_sulfide_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "DMS volume mixing ratio", 
             "comment": "", 
@@ -426,7 +426,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_dry_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "dry deposition rate of black carbon aerosol mass", 
             "comment": "Dry deposition includes gravitational settling, impact scavenging, and turbulent deposition.", 
@@ -443,7 +443,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_dry_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "dry deposition rate of dust", 
             "comment": "Dry deposition includes gravitational settling, impact scavenging, and turbulent deposition.", 
@@ -460,7 +460,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_ammonia_due_to_dry_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "dry deposition rate of nh3", 
             "comment": "dry deposition includes gravitational settling, impact scavenging, and turbulent deposition", 
@@ -477,7 +477,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_particles_due_to_dry_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "dry deposition rate of nh4", 
             "comment": "dry deposition includes gravitational settling, impact scavenging, and turbulent deposition", 
@@ -494,10 +494,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_noy_expressed_as_nitrogen_due_to_dry_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "dry deposition rate of noy", 
-            "comment": "proposed name: tendency_of_atmosphere_mass_content_of_all_nitrogen_oxides_due_to_dry_deposition. NOy is the sum of all simulated oxidized nitrogen species out of NO, NO2, HNO3, HNO4, NO3aerosol, NO3(radical), N2O5, PAN, other organic nitrates. Dry deposition includes gravitational settling, impact scavenging, and turbulent deposition.", 
+            "comment": "NOy is the sum of all simulated oxidized nitrogen species out of NO, NO2, HNO3, HNO4, NO3aerosol, NO3(radical), N2O5, PAN, other organic nitrates. Dry deposition includes gravitational settling, impact scavenging, and turbulent deposition.", 
             "dimensions": "longitude latitude time", 
             "out_name": "drynoy", 
             "type": "float", 
@@ -511,7 +511,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_ozone_due_to_dry_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "dry deposition rate of o3", 
             "comment": "dry deposition includes gravitational settling, impact scavenging, and turbulent deposition.", 
@@ -528,7 +528,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_dry_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "dry deposition rate of dry aerosol total organic matter", 
             "comment": "Tendency of atmosphere mass content of organic dry aerosol due to dry deposition: This is the sum of dry deposition of POA and dry deposition of SOA (see next two entries). 'Mass' refers to the mass of organic matter, not mass of organic carbon alone.  We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available. Was called dry_pom in old ACCMIP Excel table. Dry deposition includes gravitational settling, impact scavenging, and tur [...]
@@ -545,7 +545,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_dry_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "dry deposition rate of so2", 
             "comment": "dry deposition includes gravitational settling, impact scavenging, and turbulent deposition", 
@@ -562,7 +562,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_dry_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "dry deposition rate of so4", 
             "comment": "dry deposition includes gravitational settling, impact scavenging, and turbulent deposition", 
@@ -579,7 +579,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_particles_due_to_dry_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "dry deposition rate of seasalt", 
             "comment": "Dry deposition includes gravitational settling, impact scavenging, and turbulent deposition.", 
@@ -596,10 +596,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_monoxide_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission rate of anthropogenic co", 
-            "comment": "Includes agricultural waste burning but no other biomass burning. proposed name: tendency_of_atmosphere_mass_content_of_anthropogenic_carbon_monoxide_due_to_emission. Integrate 3D emission field vertically to 2d field.", 
+            "comment": "anthrophogenic  emission of CO", 
             "dimensions": "longitude latitude time", 
             "out_name": "emiaco", 
             "type": "float", 
@@ -613,10 +613,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_nox_expressed_as_nitrogen_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "anthropogenic emission rate of nox", 
-            "comment": "NOx=NO+NO2, Includes agricultural waste burning but no other biomass burning. proposed name: tendency_of_atmosphere_mass_content_of_anthropogenic_nox_expressed_as_nitrogen_due_to_emission. Integrate 3D emission field vertically to 2d field.", 
+            "comment": "Store flux as Nitrogen. Anthropogenic fraction. NOx=NO+NO2, Includes agricultural waste burning but no other biomass burning. Integrate 3D emission field vertically to 2d field.", 
             "dimensions": "longitude latitude time", 
             "out_name": "emianox", 
             "type": "float", 
@@ -630,10 +630,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production_and_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission of anthropogenic  organic aerosol", 
-            "comment": "Includes agricultural waste burning but no other biomass burning. We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available. Tendency of atmosphere mass content of total organic aerosol due to emission: 'mass' refers to the mass of organic matter, not mass of organic carbon alone. Was called emi_apom in old ACCMIP Excel table.  Integrate 3D emission field vertically to 2d field.", 
+            "comment": "anthropogenic part of emioa", 
             "dimensions": "longitude latitude time", 
             "out_name": "emiaoa", 
             "type": "float", 
@@ -647,7 +647,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "emission rate of black carbon aerosol mass", 
             "comment": "Integrate 3D emission field vertically to 2d field.", 
@@ -664,10 +664,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_biogenic_nmvoc_expressed_as_carbon_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission rate of biogenic nmvoc", 
-            "comment": "proposed name: tendency_of_atmosphere_mass_content_of_biogenic_non_methane_volatile_organic_compounds_as_carbon_due_to_emission. Integrate 3D emission field vertically to 2d field. _If_ fixed molecular weight of NMVOC is not available in model, please provide in units of kilomole m-2 s-1 (i.e. kg m-2 s-1 as if model NMVOC had molecular weight of 1) and add a comment to your file.", 
+            "comment": "Integrate 3D emission field vertically to 2d field._If_ fixed molecular weight of NMVOC is not available in model, please provide in units of kilomole m-2 s-1 (i.e. kg m-2 s-1 as if model NMVOC had molecular weight of 1) and add a comment to your file.", 
             "dimensions": "longitude latitude time", 
             "out_name": "emibvoc", 
             "type": "float", 
@@ -681,7 +681,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_monoxide_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission rate of co", 
             "comment": "Integrate 3D emission field vertically to 2d field.", 
@@ -698,7 +698,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_dimethyl_sulfide_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission rate of dms", 
             "comment": "Integrate 3D emission field vertically to 2d field.", 
@@ -715,7 +715,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission rate of dust", 
             "comment": "Integrate 3D emission field vertically to 2d field.", 
@@ -732,7 +732,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_isoprene_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission rate of isoprene", 
             "comment": "Integrate 3D emission field vertically to 2d field", 
@@ -749,7 +749,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_moles_of_nox_expressed_as_nitrogen", 
             "units": "mol s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "layer-integrated lightning production of NOx", 
             "comment": "Integrate the NOx production for lightning over model layer. proposed name: tendency_of_atmosphere_mass_content_of_nox_from_lightning", 
@@ -766,7 +766,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_ammonia_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission rate of nh3", 
             "comment": "Integrate 3D emission field vertically to 2d field.", 
@@ -783,7 +783,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_nox_expressed_as_nitrogen_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission rate of nox", 
             "comment": "NOx=NO+NO2. Integrate 3D emission field vertically to 2d field.", 
@@ -800,10 +800,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_net_chemical_production_and_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "primary emission and chemical production of dry aerosol organic matter", 
-            "comment": "tendency of atmosphere mass content of organic matter dry aerosol due to net production and emission.  This is the sum of total emission of POA and total production of SOA (emipoa+chepsoa). ''Mass'' refers to the mass of organic matter, not mass of organic carbon alone. We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available. Was called emi_pom in old ACCMIP Excel table. Integrate 3D emission field vertically to 2d field. ''ma [...]
+            "comment": "This is the sum of total emission of POA and total production of SOA (emipoa+chepsoa). ''Mass'' refers to the mass of organic matter, not mass of organic carbon alone. We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available.  Integrate 3D chemical production and emission field vertically to 2d field.", 
             "dimensions": "longitude latitude time", 
             "out_name": "emioa", 
             "type": "float", 
@@ -817,7 +817,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission rate of so2", 
             "comment": "Integrate 3D emission field vertically to 2d field.", 
@@ -834,10 +834,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total direct emission rate of so4", 
-            "comment": "expressed as a tendency of atmosphere mass content of SO4.  Direct emission does not include secondary sulfate production. Integrate 3D emission field vertically to 2d field. proposed name: tendency_of_atmosphere_mass_content_of_anthropogenic_sulfate_dry_aerosol_due_to_emission. Integrate 3D emission field vertically to 2d field.", 
+            "comment": "Direct primary emission does not include secondary sulfate production. Integrate 3D emission field vertically to 2d field.", 
             "dimensions": "longitude latitude time", 
             "out_name": "emiso4", 
             "type": "float", 
@@ -851,7 +851,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_particles_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission rate of seasalt", 
             "comment": "Integrate 3D emission field vertically to 2d field.", 
@@ -868,10 +868,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_nmvoc_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total emission rate of nmvoc", 
-            "comment": "proposed name: tendency_of_atmosphere_mass_content_of_non_methane_volatile_organic_compounds_as_carbon_due_to_emission. Integrate 3D emission field vertically to 2d field.  _If_ fixed molecular weight of NMVOC is not available in model, please provide in units of kilomole m-2 s-1 (i.e. kg m-2 s-1 as if model NMVOC had molecular weight of 1) and add a comment to your file.", 
+            "comment": "Integrate 3D emission field vertically to 2d field. _If_ fixed molecular weight of NMVOC is not available in model, please provide in units of kilomole m-2 s-1 (i.e. kg m-2 s-1 as if model NMVOC had molecular weight of 1) and add a comment to your file.", 
             "dimensions": "longitude latitude time", 
             "out_name": "emivoc", 
             "type": "float", 
@@ -883,12 +883,12 @@
         }, 
         "h2o": {
             "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_water_vapor_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "mass_fraction_of_water_in_air", 
+            "units": "1.0", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Water vapour volume mixing ratio", 
-            "comment": "", 
+            "comment": "includes all phases of water", 
             "dimensions": "longitude latitude alevel time", 
             "out_name": "h2o", 
             "type": "float", 
@@ -902,7 +902,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_formaldehyde_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Formaldehyde volume mixing ratio", 
             "comment": "", 
@@ -919,7 +919,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_hydrogen_chloride_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "HCl volume mixing ratio", 
             "comment": "", 
@@ -936,7 +936,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_nitric_acid_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "HNO3 volume mixing ratio", 
             "comment": "", 
@@ -953,7 +953,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_isoprene_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Isoprene volume mixing ratio", 
             "comment": "", 
@@ -966,33 +966,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "iwp": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "atmosphere_mass_content_of_cloud_ice", 
-            "units": "kg m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "ice water path", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "iwp", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "lai": {
+        "jno2": {
             "modeling_realm": "aerosol", 
-            "standard_name": "leaf_area_index", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "standard_name": "photolysis_rate_of_nitrogen_dioxide", 
+            "units": "s-1", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "leaf area index", 
+            "long_name": "photolysis rate of NO2", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "lai", 
+            "dimensions": "longitude latitude alevel time", 
+            "out_name": "jno2", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -1002,12 +985,12 @@
         }, 
         "lossch4": {
             "modeling_realm": "aerosol", 
-            "standard_name": "tendency_of_atmosphere_moles_of_methane", 
-            "units": "mol s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tendency_of_atmosphere_mole_concentration_of_methane_due_to_chemical_destruction", 
+            "units": "mol m-3 s-1", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Annual Loss of atmospheric Methane", 
-            "comment": "proposed name: tendency_of_mole_concentration_of_methane_due_to_chemical_gross_destruction", 
+            "long_name": "Monthly Loss of atmospheric Methane", 
+            "comment": "monthly averaged atmospheric loss", 
             "dimensions": "longitude latitude alevel time", 
             "out_name": "lossch4", 
             "type": "float", 
@@ -1019,12 +1002,12 @@
         }, 
         "lossco": {
             "modeling_realm": "aerosol", 
-            "standard_name": "tendency_of_atmosphere_moles_of_carbon_monoxide", 
-            "units": "mol s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tendency_of_atmosphere_of_mole_concentration_of_carbon_monoxide_due_to_chemical_destruction", 
+            "units": "mol m-3 s-1", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Annual Loss of atmospheric Carbon Monoxide", 
-            "comment": "proposed name: tendency_of_mole_concentration_of_carbon_monoxide_due_to_chemical_gross_destruction", 
+            "long_name": "Monthly Loss of atmospheric Carbon Monoxide", 
+            "comment": "monthly averaged atmospheric loss", 
             "dimensions": "longitude latitude alevel time", 
             "out_name": "lossco", 
             "type": "float", 
@@ -1036,12 +1019,12 @@
         }, 
         "lossn2o": {
             "modeling_realm": "aerosol", 
-            "standard_name": "tendency_of_atmosphere_moles_of_nitrous_oxide", 
-            "units": "mol yr-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tendency_of_atmosphere_of_mole_concentration_of_nitrous_oxide_due_to_chemical_destruction", 
+            "units": "mol m-3 s-1", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Annual Loss of atmospheric Nitrous Oxide", 
-            "comment": "total yearly averaged tropospheric loss", 
+            "long_name": "Monthly Loss of atmospheric Nitrous Oxide", 
+            "comment": "monthly averaged atmospheric loss", 
             "dimensions": "longitude latitude alevel time", 
             "out_name": "lossn2o", 
             "type": "float", 
@@ -1055,7 +1038,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_mass_content_of_cloud_liquid_water", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "liquid water path", 
             "comment": "", 
@@ -1068,79 +1051,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "lwtoaasaer": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_longwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "all sky lw-rf aerosols at toa", 
-            "comment": "proposed name: toa_instantaneous_longwave_forcing_due_to_ambient_aerosol", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "lwtoaasaer", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "lwtoaasdust": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_longwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "all sky lw-rf dust at toa", 
-            "comment": "proposed name: toa_instantaneous_longwave_forcing_due_to_dust_ambient_aerosol", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "lwtoaasdust", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "lwtoacsaer": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_longwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "clear sky lw-rf aerosols at toa", 
-            "comment": "proposed name: toa_instantaneous_longwave_forcing_due_to_ambient_aerosol_assuming_clear_sky", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "lwtoacsaer", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "mcu": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "atmosphere_updraft_convective_mass_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Convective Updraft Mass Flux", 
-            "comment": "In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. 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. For an area-average, cell_methods should specify whether the average is over all the area or the area of updrafts only.", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "mcu", 
-            "type": "float", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "mmraerh2o": {
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_water_in_ambient_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Aerosol water mass mixing ratio", 
             "comment": "", 
@@ -1157,7 +1072,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_elemental_carbon_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Elemental carbon mass mixing ratio", 
             "comment": "", 
@@ -1174,7 +1089,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_dust_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Dust aerosol mass mixing ratio", 
             "comment": "", 
@@ -1191,7 +1106,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_ammonium_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "NH4 mass mixing ratio", 
             "comment": "", 
@@ -1208,7 +1123,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_nitrate_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "NO3 aerosol mass mixing ratio", 
             "comment": "", 
@@ -1225,7 +1140,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_particulate_organic_matter_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Total organic aerosol mass mixing ratio", 
             "comment": "We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available.", 
@@ -1242,7 +1157,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_pm1_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "PM1.0 mass mixing ratio", 
             "comment": "E.g. mass_fraction_of_pm1_aerosol_at_50_percent_relative_humidity_in_air. proposed name:  mass_fraction_of_pm1_dry_aerosol_in_air", 
@@ -1259,7 +1174,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_pm10_ambient_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "PM10 mass mixing ratio", 
             "comment": "E.g. mass_fraction_of_pm10_aerosol_at_50_percent_relative_humidity_in_air, proposed name: mass_fraction_of_pm10_dry_aerosol_in_air", 
@@ -1276,7 +1191,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_pm2p5_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "PM2.5 mass mixing ratio", 
             "comment": "E.g. mass_fraction_of_pm2p5_aerosol_at_50_percent_relative_humidity_in_air, proposed_name: mass_fraction_of_pm2p5_dry_aerosol_in_air", 
@@ -1293,7 +1208,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_sulfate_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Aerosol sulfate mass mixing ratio", 
             "comment": "", 
@@ -1310,7 +1225,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_secondary_particulate_organic_matter_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Secondary organic aerosol mass mixing ratio", 
             "comment": "", 
@@ -1327,7 +1242,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_seasalt_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Sea Salt mass mixing ratio", 
             "comment": "", 
@@ -1344,7 +1259,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_nitrous_oxide_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "N2O volume mixing ratio", 
             "comment": "", 
@@ -1361,9 +1276,9 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_artificial_tracer_with_fixed_lifetime_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "nh_50", 
+            "long_name": "Artificial tracer with 50 day lifetime", 
             "comment": "", 
             "dimensions": "longitude latitude alevel time", 
             "out_name": "nh50", 
@@ -1378,7 +1293,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_nitrogen_monoxide_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "NO volume mixing ratio", 
             "comment": "", 
@@ -1395,7 +1310,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_nitrogen_dioxide_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "NO2 volume mixing ratio", 
             "comment": "", 
@@ -1412,7 +1327,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_ozone_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Ozone volume mixing ratio", 
             "comment": "", 
@@ -1429,10 +1344,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mole_concentration_of_ozone_due_to_chemical_destruction", 
             "units": "mol m-3 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "O3 destruction rate", 
-            "comment": "ONLY provide the sum of the following reactions: (i) O(1D)+H2O; (ii) O3+HO2; (iii) O3+OH; (iv) O3+alkenes (isoprene, ethene,etc)", 
+            "comment": "ONLY provide the sum of the following reactions: (i) O(1D)+H2O; (ii) O3+HO2; (iii) O3+OH; (iv) O3+alkenes (isoprene, ethene,...)", 
             "dimensions": "longitude latitude alevel time", 
             "out_name": "o3loss", 
             "type": "float", 
@@ -1446,7 +1361,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mole_concentration_of_ozone_due_to_chemical_production", 
             "units": "mol m-3 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "O3 production rate", 
             "comment": "ONLY provide the sum of all the HO2/RO2 + NO reactions (as k*[HO2]*[NO])", 
@@ -1463,10 +1378,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_ozone_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Ozone volume mixing ratio", 
-            "comment": "Ozone tracer intended to map out strat-trop exchange (STE) of ozone", 
+            "comment": "Ozone tracer intended to map out strat-trop exchange (STE) of ozone.", 
             "dimensions": "longitude latitude alevel time", 
             "out_name": "o3ste", 
             "type": "float", 
@@ -1480,10 +1395,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "ambient aerosol optical thickness at 440 nm", 
-            "comment": "", 
+            "comment": "AOD from the ambient aerosls (i.e., includes aerosol water).  Does not include AOD from stratospheric aerosols if these are prescribed but includes other possible background aerosol types. Needs a comment attribute 'wavelength: 440 nm'", 
             "dimensions": "longitude latitude time", 
             "out_name": "od440aer", 
             "type": "float", 
@@ -1497,7 +1412,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "ambient aerosol optical thickness at 550 nm", 
             "comment": "AOD from the ambient aerosls (i.e., includes aerosol water).  Does not include AOD from stratospheric aerosols if these are prescribed but includes other possible background aerosol types. Needs a comment attribute 'wavelength: 550 nm'", 
@@ -1514,7 +1429,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_water_in_ambient_aerosol", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "aerosol water aod at 550nm", 
             "comment": "proposed name: atmosphere_optical_thickness_due_to_water_ambient_aerosol", 
@@ -1531,10 +1446,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "bb aod at 550nm", 
-            "comment": "proposed name: atmosphere_optical_thickness_due_to_biomass_burning_ambient_aerosol", 
+            "comment": "total organic aerosol AOD due to biomass burning (excluding so4, nitrate BB components)", 
             "dimensions": "longitude latitude time", 
             "out_name": "od550bb", 
             "type": "float", 
@@ -1548,7 +1463,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_black_carbon_ambient_aerosol", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "black carbon aod at 550nm", 
             "comment": "", 
@@ -1561,11 +1476,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "od550csaer": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", 
+            "units": "1.0", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "ambient aerosol optical thickness at 550 nm", 
+            "comment": "AOD from the ambient aerosols in clear skies if od550aer is for all-sky (i.e., includes aerosol water).  Does not include AOD from stratospheric aerosols if these are prescribed but includes other possible background aerosol types. Needs a comment attribute 'wavelength: 550 nm'", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "od550csaer", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "od550dust": {
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_dust_ambient_aerosol", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "dust aod at 550nm", 
             "comment": "", 
@@ -1582,10 +1514,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_pm1_ambient_aerosol", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "ambient fine mode aerosol optical thickness at 550 nm", 
-            "comment": "od550 due to particles with wet diameter less than 1 um  (''ambient'' means ''wetted''). When models do not include explicit size information, it can be assumed that all anthropogenic aerosols and natural secondary aerosols have diameter less than 1 um.", 
+            "comment": "od550 due to particles with wet diameter less than 1 um  (ambient here means wetted). When models do not include explicit size information, it can be assumed that all anthropogenic aerosols and natural secondary aerosols have diameter less than 1 um.", 
             "dimensions": "longitude latitude time", 
             "out_name": "od550lt1aer", 
             "type": "float", 
@@ -1599,7 +1531,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_nitrate_ambient_aerosol", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "nitrate aod at 550nm", 
             "comment": "proposed name: atmosphere_optical_thickness_due_to_nitrate_ambient_aerosol", 
@@ -1616,7 +1548,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "total organic aerosol aod at 550nm", 
             "comment": "", 
@@ -1633,7 +1565,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_sulfate_ambient_aerosol", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "sulfate aod at 550nm", 
             "comment": "proposed name: atmosphere_optical_thickness_due_to_sulfate_ambient_aerosol", 
@@ -1646,11 +1578,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "od550soa": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol", 
+            "units": "1.0", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "soa aod at 550nm", 
+            "comment": "total organic aerosol AOD due to secondary aerosol formation", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "od550soa", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "od550ss": {
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_seasalt_ambient_aerosol", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "sea salt aod at 550nm", 
             "comment": "", 
@@ -1667,10 +1616,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "ambient aerosol optical thickness at 870 nm", 
-            "comment": "AOD from the ambient aerosls (i.e., includes aerosol water).  Does not include AOD from stratospheric aerosols if these are prescribed but includes other possible background aerosol types.", 
+            "comment": "AOD from the ambient aerosls (i.e., includes aerosol water).  Does not include AOD from stratospheric aerosols if these are prescribed but includes other possible background aerosol types. Needs a comment attribute 'wavelength: 870 nm'", 
             "dimensions": "longitude latitude time", 
             "out_name": "od870aer", 
             "type": "float", 
@@ -1684,7 +1633,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_hydroxyl_radical_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "OH volume mixing ratio", 
             "comment": "", 
@@ -1701,7 +1650,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mole_fraction_of_peroxyacetyl_nitrate_in_air", 
             "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "PAN volume mixing ratio", 
             "comment": "", 
@@ -1714,33 +1663,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "photo1d": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "photolysis_rate_of_ozone_to_1D_oxygen_atom", 
-            "units": "s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "photolysis rate of O3 to O1d", 
-            "comment": "proposed name: photolysis_rate_of_ozone_to_O1D", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "photo1d", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "pilev": {
+        "pfull": {
             "modeling_realm": "aerosol", 
             "standard_name": "air_pressure", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "air pressure at interfaces", 
-            "comment": "The atmospheric pressure at the model layer interfaces for all times and levels in the associated output variables", 
+            "long_name": "Air Pressure", 
+            "comment": "Air pressure on model levels", 
             "dimensions": "longitude latitude alevel time", 
-            "out_name": "pilev", 
+            "out_name": "pfull", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -1748,84 +1680,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "plev": {
+        "phalf": {
             "modeling_realm": "aerosol", 
             "standard_name": "air_pressure", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Air Pressure", 
-            "comment": "The atmospheric pressure at the model layer midpoints for all times and levels in the associated output variables", 
+            "long_name": "air pressure at interfaces", 
+            "comment": "Air pressure on model half-levels", 
             "dimensions": "longitude latitude alevel time", 
-            "out_name": "plev", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ptp": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "tropopause_air_pressure", 
-            "units": "Pa", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tropopause Air Pressure", 
-            "comment": "2D monthly mean thermal tropopause calculated using WMO tropopause definition on 3d temperature", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "ptp", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "reffclwtop": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "effective_radius_of_cloud_liquid_water_particle_at_liquid_water_cloud_top", 
-            "units": "m", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "cloud-top effective droplet radius", 
-            "comment": "Droplets are liquid only.  This is the effective radius ''as seen from space'' over liquid cloudy portion of grid cell. This is the value from uppermost model layer with liquid cloud or, if available, or for some models it is the sum over all liquid cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere.TOA) each time sample when computing monthly mean. Reported values are weighted by total liquid cloud top fraction of  (as [...]
-            "dimensions": "longitude latitude time", 
-            "out_name": "reffclwtop", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sic": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "sea_ice_area_fraction", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Sea Ice Area Fraction", 
-            "comment": "fraction of grid cell covered by sea ice.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "sic", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "snc": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "surface_snow_area_fraction", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "snow cover fraction", 
-            "comment": "Fraction of each grid cell that is occupied by snow that rests on land portion of cell.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "snc", 
+            "out_name": "phalf", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -1833,118 +1697,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "so2": {
+        "photo1d": {
             "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_sulfur_dioxide_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "photolysis_rate_of_ozone_to_1D_oxygen_atom", 
+            "units": "s-1", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "SO2 volume mixing ratio", 
-            "comment": "", 
+            "long_name": "photolysis rate of O3 to O1d", 
+            "comment": "proposed name: photolysis_rate_of_ozone_to_O1D", 
             "dimensions": "longitude latitude alevel time", 
-            "out_name": "so2", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "swtoaasaer": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "all sky sw-rf aerosols at toa", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_ambient_aerosol", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "swtoaasaer", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "swtoaasbb": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "all sky sw-rf bb at toa", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_biomass_burning_ambient_aerosol", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "swtoaasbb", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "swtoaasbcff": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "all sky sw-rf bcff at toa anthropogenic", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_black_carbon_ambient_aerosol_from_fossil_fuels", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "swtoaasbcff", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "swtoaasdust": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "all sky sw-rf dust at toa", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_dust_ambient_aerosol", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "swtoaasdust", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "swtoaasno3": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "all sky sw-rf no3 at toa", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_nitrate_ambient_aerosol", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "swtoaasno3", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "swtoaasoaff": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "all sky sw-rf oaff at toa anthropogenic", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_particulate_organic_matter_ambient_aerosol_from_fossil_fuels", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "swtoaasoaff", 
+            "out_name": "photo1d", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -1952,16 +1714,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "swtoaasso4": {
+        "pod0": {
             "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "pending_CF_name", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "all sky sw-rf so4 at toa", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_sulfate_ambient_aerosol", 
+            "long_name": "Phytotoxic ozone dose", 
+            "comment": "Accumulated stomatal ozone flux over the threshold of 0 mol m-2 s-1; Computation: Time Integral of (hourly above canopy ozone concentration * stomatal conductance * Rc/(Rb+Rc) )", 
             "dimensions": "longitude latitude time", 
-            "out_name": "swtoaasso4", 
+            "out_name": "pod0", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -1969,16 +1731,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "swtoaassoa": {
+        "ptp": {
             "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tropopause_air_pressure", 
+            "units": "Pa", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "all sky sw-rf soa at toa", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_secondary_particulate_organic_matter_ambient_aerosol", 
+            "long_name": "Tropopause Air Pressure", 
+            "comment": "2D monthly mean thermal tropopause calculated using WMO tropopause definition on 3d temperature", 
             "dimensions": "longitude latitude time", 
-            "out_name": "swtoaassoa", 
+            "out_name": "ptp", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -1986,16 +1748,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "swtoaasss": {
+        "reffclwtop": {
             "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "effective_radius_of_cloud_liquid_water_particle_at_liquid_water_cloud_top", 
+            "units": "m", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "all sky sw-rf ss at toa", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_seasalt_ambient_aerosol", 
+            "long_name": "cloud-top effective droplet radius", 
+            "comment": "Droplets are liquid only.  This is the effective radius as seen from space over liquid cloudy portion of grid cell. This is the value from uppermost model layer with liquid cloud or, if available, or for some models it is the sum over all liquid cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere.TOA) each time sample when computing monthly mean. Reported values are weighted by total liquid cloud top fraction of  (as see [...]
             "dimensions": "longitude latitude time", 
-            "out_name": "swtoaasss", 
+            "out_name": "reffclwtop", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -2003,16 +1765,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "swtoacsaer": {
+        "rlutca": {
             "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
+            "standard_name": "toa_outgoing_longwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "clear sky sw-rf aerosols at toa", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_ambient_aerosol_assuming_clear_sky", 
+            "long_name": "toa outgoing longwave radiation", 
+            "comment": "Flux corresponding to rlut resulting fom aerosol-free call to radiation", 
             "dimensions": "longitude latitude time", 
-            "out_name": "swtoacsaer", 
+            "out_name": "rlutca", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -2020,16 +1782,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "swtoacsbb": {
+        "rlutcsca": {
             "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
+            "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "clear sky sw-rf bb at toa", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_biomass_burning_ambient_aerosol_assuming_clear_sky", 
+            "long_name": "toa outgoing clear-sky longwave radiation", 
+            "comment": "Flux corresponding to rlutcs resulting fom aerosol-free call to radiation", 
             "dimensions": "longitude latitude time", 
-            "out_name": "swtoacsbb", 
+            "out_name": "rlutcsca", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -2037,16 +1799,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "swtoacsbcff": {
+        "rsutca": {
             "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
+            "standard_name": "toa_outgoing_shortwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "clear sky sw-rf bcff at toa", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_black_carbon_ambient_aerosol_from_fossil_fuels_assuming_clear_sky", 
+            "long_name": "toa outgoing shortwave radiation", 
+            "comment": "Flux corresponding to rsut resulting fom aerosol-free call to radiation", 
             "dimensions": "longitude latitude time", 
-            "out_name": "swtoacsbcff", 
+            "out_name": "rsutca", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -2054,16 +1816,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "swtoacsdust": {
+        "rsutcsca": {
             "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
+            "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "clear sky sw-rf dust at toa", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_dust_ambient_aerosol_assuming_clear_sky", 
+            "long_name": "toa outgoing clear-sky shortwave radiation", 
+            "comment": "Flux corresponding to rsutcs resulting fom aerosol-free call to radiation", 
             "dimensions": "longitude latitude time", 
-            "out_name": "swtoacsdust", 
+            "out_name": "rsutcsca", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -2071,16 +1833,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "swtoacsoaff": {
+        "so2": {
             "modeling_realm": "aerosol", 
-            "standard_name": "toa_instantaneous_shortwave_forcing", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "mole_fraction_of_sulfur_dioxide_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "clear sky sw-rf oaff at toa anthropogenic", 
-            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_particulate_organic_matter_ambient_aerosol_from_fossil_fuels_assuming_clear_sky", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "swtoacsoaff", 
+            "long_name": "SO2 volume mixing ratio", 
+            "comment": "", 
+            "dimensions": "longitude latitude alevel time", 
+            "out_name": "so2", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -2092,7 +1854,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tropopause_air_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Tropopause Air Temperature", 
             "comment": "2D monthly mean thermal tropopause calculated using WMO tropopause definition on 3d temperature", 
@@ -2105,16 +1867,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tntlw": {
+        "tntrl": {
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", 
             "units": "K s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Longwave heating rate", 
-            "comment": "Longwave heating rates", 
+            "comment": "Tendency of air temperature due to longwave radiative heating", 
             "dimensions": "longitude latitude alevel time", 
-            "out_name": "tntlw", 
+            "out_name": "tntrl", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -2122,16 +1884,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tntsw": {
+        "tntrs": {
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", 
             "units": "K s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Shortwave heating rate", 
-            "comment": "shortwave heating rates", 
+            "comment": "Tendency of air temperature due to shortwave radiative heating", 
             "dimensions": "longitude latitude alevel time", 
-            "out_name": "tntsw", 
+            "out_name": "tntrs", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -2143,7 +1905,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "equivalent_thickness_at_stp_of_atmosphere_ozone_content", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Total Ozone Column", 
             "comment": "total ozone column in DU", 
@@ -2160,10 +1922,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "equivalent_thickness_at_stp_of_atmosphere_ozone_content", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "tropospheric ozone column", 
-            "comment": "", 
+            "comment": "tropospheric ozone column in DU, should be consistent with ptp definition of tropopause", 
             "dimensions": "longitude latitude time", 
             "out_name": "tropoz", 
             "type": "float", 
@@ -2177,7 +1939,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "air_temperature_at_cloud_top", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "air temperature at cloud top", 
             "comment": "", 
@@ -2194,7 +1956,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "eastward_wind", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Eastward Wind", 
             "comment": "", 
@@ -2211,7 +1973,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "northward_wind", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Northward Wind", 
             "comment": "", 
@@ -2228,7 +1990,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "upward_air_velocity", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Upward Air Velocity", 
             "comment": "", 
@@ -2245,7 +2007,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_elemental_carbon_dry_aerosol_particles_due_to_wet_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "wet deposition rate of black carbon aerosol mass", 
             "comment": "", 
@@ -2262,7 +2024,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_wet_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "wet deposition rate of dust", 
             "comment": "", 
@@ -2279,7 +2041,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_ammonia_due_to_wet_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "wet deposition rate of nh3", 
             "comment": "", 
@@ -2296,7 +2058,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_ammonium_dry_aerosol_particles_due_to_wet_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "wet deposition rate of nh4", 
             "comment": "", 
@@ -2313,10 +2075,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_noy_expressed_as_nitrogen_due_to_wet_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "wet deposition of noy incl aerosol nitrate", 
-            "comment": "proposed name: tendency_of_atmosphere_mass_content_of_all_nitrogen_oxides_due_to_wet_deposition. NOy is the sum of all simulated oxidized nitrogen species, out of NO, NO2, HNO3, HNO4, NO3aerosol, NO3(radical), N2O5, PAN, other organic nitrates.", 
+            "comment": "NOy is the sum of all simulated oxidized nitrogen species, out of NO, NO2, HNO3, HNO4, NO3aerosol, NO3(radical), N2O5, PAN, other organic nitrates.", 
             "dimensions": "longitude latitude time", 
             "out_name": "wetnoy", 
             "type": "float", 
@@ -2330,10 +2092,10 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol_particles_due_to_wet_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "wet deposition rate of dry aerosol total organic matter", 
-            "comment": "tendency of atmosphere mass content of organic matter dry aerosols due to wet deposition: This is the sum of wet deposition of POA and wet deposition of SOA (see next two entries). ''Mass'' refers to the mass of organic matter, not mass of organic carbon alone. We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available. Was called wet_pom in old ACCMIP Excel spreadsheet.", 
+            "comment": "tendency of atmosphere mass content of organic matter dry aerosols due to wet deposition: This is the sum of wet deposition of POA and wet deposition of SOA (see next two entries). Mass here refers to the mass of organic matter, not mass of organic carbon alone. We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available. Was called wet_pom in old ACCMIP Excel spreadsheet.", 
             "dimensions": "longitude latitude time", 
             "out_name": "wetoa", 
             "type": "float", 
@@ -2347,7 +2109,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_sulfur_dioxide_due_to_wet_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "wet deposition rate of so2", 
             "comment": "", 
@@ -2364,7 +2126,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_particles_due_to_wet_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "wet deposition rate of so4", 
             "comment": "proposed name: tendency_of_atmosphere_mass_content_of_sulfate_dry_aerosol_due_to_wet_deposition", 
@@ -2381,7 +2143,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_seasalt_dry_aerosol_particles_due_to_wet_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "wet deposition rate of seasalt", 
             "comment": "", 
@@ -2395,10 +2157,10 @@
             "ok_max_mean_abs": ""
         }, 
         "zg": {
-            "modeling_realm": "aerosol", 
+            "modeling_realm": "atmos", 
             "standard_name": "geopotential_height", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Geopotential Height", 
             "comment": "", 
@@ -2415,7 +2177,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "tropopause_altitude", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Tropopause Altitude", 
             "comment": "2D monthly mean thermal tropopause calculated using WMO tropopause definition on 3d temperature", 
diff --git a/TestTables/CMIP6_AERmonZ.json b/TestTables/CMIP6_AERmonZ.json
new file mode 100644
index 0000000..7aa0b9c
--- /dev/null
+++ b/TestTables/CMIP6_AERmonZ.json
@@ -0,0 +1,307 @@
+{
+    "Header": {
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table AERmonZ", 
+        "realm": "aerosol", 
+        "frequency": "mon", 
+        "cmor_version": "3.2", 
+        "table_date": "10 April 2017", 
+        "missing_value": "1e20", 
+        "product": "model-output", 
+        "approx_interval": "", 
+        "generic_levels": "", 
+        "mip_era": "CMIP6", 
+        "Conventions": "CF-1.7 CMIP-6.0"
+    }, 
+    "variable_entry": {
+        "bry": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "mole_fraction_of_inorganic_bromine_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Total inorganic bromine volume mixing ratio", 
+            "comment": "Total family (the sum of all appropriate species in the model) ; list the species in the netCDF header, e.g. Bry = Br + BrO + HOBr + HBr + BrONO2 + BrCl Definition: Total inorganic bromine (e.g., HBr and inorganic bromine oxides and radicals (e.g., BrO, atomic bromine (Br), bromine nitrate (BrONO2)) resulting from degradation of bromine-containing organicsource gases (halons, methyl bromide, VSLS), and natural inorganic bromine sources (e.g., volcanoes, sea salt,  [...]
+            "dimensions": "latitude plev39 time", 
+            "out_name": "bry", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "ch4": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "mole_fraction_of_methane_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "CH4 volume mixing ratio", 
+            "comment": "", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "ch4", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "cly": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "mole_fraction_of_inorganic_chlorine_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Total inorganic chlorine volume mixing ratio", 
+            "comment": "Total family (the sum of all appropriate species in the model) ; list the species in the netCDF header, e.g. Cly = HCl + ClONO2 + HOCl + ClO + Cl + 2*Cl2O2 +2Cl2 + OClO + BrCl Definition: Total inorganic stratospheric chlorine (e.g., HCl, ClO) resulting from degradation of chlorine-containing source gases (CFCs, HCFCs, VSLS), and natural inorganic chlorine sources (e.g., sea salt and other aerosols) add comment attribute with detailed description about how the mod [...]
+            "dimensions": "latitude plev39 time", 
+            "out_name": "cly", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "h2o": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "mass_fraction_of_water_in_air", 
+            "units": "1.0", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "H2O volume mixing ratio", 
+            "comment": "includes all phases of water", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "h2o", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "hcl": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "mole_fraction_of_hydrogen_chloride_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "HCl volume mixing ratio", 
+            "comment": "", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "hcl", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "hno3": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "mole_fraction_of_nitric_acid_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "HNO3 volume mixing ratio", 
+            "comment": "", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "hno3", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "ho2": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "mole_fraction_of_hydroperoxyl_radical_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "HO2 volume mixing ratio", 
+            "comment": "", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "ho2", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "meanage": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "age_of_stratospheric_air", 
+            "units": "yr", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Mean Age of Stratospheric Air", 
+            "comment": "The mean age of air is defined as the mean time that a stratospheric air mass has been out of contact with the well-mixed troposphere.", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "meanage", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "n2o": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "mole_fraction_of_nitrous_oxide_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "N2O volume mixing ratio", 
+            "comment": "", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "n2o", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "noy": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "mole_fraction_of_noy_expressed_as_nitrogen_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Total reactive nitrogen volume mixing ratio", 
+            "comment": "Total family (the sum of all appropriate species in the model); list the species in the netCDF header, e.g. NOy = N + NO + NO2 + NO3 + HNO3 + 2N2O5 + HNO4 + ClONO2 + BrONO2 Definition: Total reactive nitrogen; usually includes atomic nitrogen (N), nitric oxide (NO), NO2, nitrogen trioxide (NO3), dinitrogen radical (N2O5), nitric acid (HNO3), peroxynitric acid (HNO4), BrONO2, ClONO2 add comment attribute with detailed description about how the model calculates thes [...]
+            "dimensions": "latitude plev39 time", 
+            "out_name": "noy", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "o3": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "mole_fraction_of_ozone_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Ozone volume mixing ratio", 
+            "comment": "", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "o3", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "oh": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "mole_fraction_of_hydroxyl_radical_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "OH volume mixing ratio", 
+            "comment": "", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "oh", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "ta": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "air_temperature", 
+            "units": "K", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Air Temperature", 
+            "comment": "Air Temperature", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "ta", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "ua": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "eastward_wind", 
+            "units": "m s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Eastward Wind", 
+            "comment": "", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "ua", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "va": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "northward_wind", 
+            "units": "m s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Northward Wind", 
+            "comment": "", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "va", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "vt100": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "northward_heat_flux_in_air_due_to_eddy_advection", 
+            "units": "W m-2", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Northward heat flux due to eddies", 
+            "comment": "Zonally averaged meridional heat flux at 100 hPa as monthly means derived from daily (or higher frequency) fields.", 
+            "dimensions": "latitude time p100", 
+            "out_name": "vt100", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "zg": {
+            "modeling_realm": "atmos", 
+            "standard_name": "geopotential_height", 
+            "units": "m", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Geopotential Height", 
+            "comment": "", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "zg", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }
+    }
+}
diff --git a/TestTables/CMIP6_Amon.json b/TestTables/CMIP6_Amon.json
index d663356..e6756a6 100644
--- a/TestTables/CMIP6_Amon.json
+++ b/TestTables/CMIP6_Amon.json
@@ -1,27 +1,27 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table Amon", 
         "realm": "atmos atmosChem", 
         "frequency": "mon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "30.00000", 
         "generic_levels": "alevel alevhalf", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "ccb": {
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure_at_convective_cloud_base", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Air Pressure at Convective Cloud Base", 
-            "comment": "Where convective cloud is present in the grid cell, the instantaneous cloud base altitude should be that of the bottom of the lowest level containing convective cloud. Missing data should be reported in the absence of convective cloud. The time mean should be calculated from these quantities averaging over occasions when convective cloud is present only, and should contain missing data for occasions when no convective cloud is present during the meaning period. ", 
+            "comment": "Where convective cloud is present in the grid cell, the instantaneous cloud base altitude should be that of the bottom of the lowest level containing convective cloud. Missing data should be reported in the absence of convective cloud. The time mean should be calculated from these quantities averaging over occasions when convective cloud is present only, and should contain missing data for occasions when no convective cloud is present during the meaning period.", 
             "dimensions": "longitude latitude time", 
             "out_name": "ccb", 
             "type": "real", 
@@ -35,7 +35,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure_at_convective_cloud_top", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Air Pressure at Convective Cloud Top", 
             "comment": "Where convective cloud is present in the grid cell, the instantaneous cloud top altitude should be that of the top of the highest level containing convective cloud. Missing data should be reported in the absence of convective cloud. The time mean should be calculated from these quantities averaging over occasions when convective cloud is present only, and should contain missing data for occasions when no convective cloud is present during the meaning period.", 
@@ -171,7 +171,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "convection_time_fraction", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Fraction of Time Convection Occurs", 
             "comment": "Fraction of time that convection occurs in the grid cell.", 
@@ -220,12 +220,12 @@
         }, 
         "clivi": {
             "modeling_realm": "atmos", 
-            "standard_name": "atmosphere_mass_content_of_cloud_ice", 
+            "standard_name": "atmosphere_cloud_ice_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Water Path", 
-            "comment": "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). Includes precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.", 
+            "comment": "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). Includes precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.", 
             "dimensions": "longitude latitude time", 
             "out_name": "clivi", 
             "type": "real", 
@@ -238,8 +238,8 @@
         "clt": {
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "units": "%", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Total Cloud Fraction", 
             "comment": "Total cloud area fraction for the whole atmospheric column, as seen from the surface or the top of the atmosphere. Includes both large-scale and convective cloud.", 
@@ -273,7 +273,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_cloud_condensed_water_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Condensed Water Path", 
             "comment": "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). Includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
@@ -358,7 +358,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "water_evaporation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Evaporation", 
             "comment": "Evaporation at surface: flux of water into the atmosphere due to conversion of both liquid and solid phases to vapor (from underlying surface and vegetation)", 
@@ -375,7 +375,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "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.  Does not include natural fire sources but, includes all anthropogenic sources, including fossil fuel use, cement production, agricultural burning, and sources associated with anthropogenic land use change excluding forest regrowth.", 
@@ -392,7 +392,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Carbon Mass Flux into Atmosphere Due to Fossil Fuel Emissions of CO2", 
             "comment": "This is 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.)", 
@@ -409,7 +409,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_sources", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Carbon Mass Flux into the Atmosphere Due to Natural Sources", 
             "comment": "This is what the atmosphere sees (on its own grid).  This field should be equivalent to the combined natural fluxes of carbon  that account for natural exchanges between the atmosphere and land (nep) or ocean (fgco2) reservoirs.", 
@@ -443,7 +443,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_latent_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upward Latent Heat Flux", 
             "comment": "", 
@@ -460,7 +460,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_sensible_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upward Sensible Heat Flux", 
             "comment": "", 
@@ -626,6 +626,40 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "o3": {
+            "modeling_realm": "atmos atmosChem", 
+            "standard_name": "mole_fraction_of_ozone_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Mole Fraction of O3", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev19 time", 
+            "out_name": "o3", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "o3Clim": {
+            "modeling_realm": "atmos atmosChem", 
+            "standard_name": "mole_fraction_of_ozone_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "time: mean within years time: mean over years", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Mole Fraction of O3", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev19 time2", 
+            "out_name": "o3Clim", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "pfull": {
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure", 
@@ -664,7 +698,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Precipitation", 
             "comment": "includes both liquid and solid phases", 
@@ -681,7 +715,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "convective_precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Convective Precipitation", 
             "comment": "Convective precipitation at surface; includes both liquid and solid phases.", 
@@ -698,7 +732,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "snowfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Snowfall Flux", 
             "comment": "at surface; includes precipitation of all forms of water in the solid phase", 
@@ -715,7 +749,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_water_vapor_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Water Vapor Path", 
             "comment": "vertically integrated through the atmospheric column", 
@@ -732,7 +766,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_air_pressure", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Air Pressure", 
             "comment": "surface pressure (not mean sea-level pressure), 2-D field to calculate the 3-D pressure field from hybrid coordinates", 
@@ -749,7 +783,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure_at_sea_level", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Sea Level Pressure", 
             "comment": "Sea Level Pressure", 
@@ -766,7 +800,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Longwave Radiation", 
             "comment": "", 
@@ -783,7 +817,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", 
             "comment": "Surface downwelling clear-sky longwave radiation", 
@@ -800,7 +834,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upwelling Longwave Radiation", 
             "comment": "", 
@@ -817,7 +851,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_longwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Longwave Radiation", 
             "comment": "at the top of the atmosphere (to be compared with satellite measurements)", 
@@ -834,7 +868,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", 
             "comment": "", 
@@ -851,7 +885,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Shortwave Radiation", 
             "comment": "surface solar irradiance for UV calculations", 
@@ -868,7 +902,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", 
             "comment": "surface solar irradiance clear sky for UV calculations", 
@@ -885,7 +919,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_incoming_shortwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Incident Shortwave Radiation", 
             "comment": "Shortwave radiation incident at the top of the atmosphere", 
@@ -902,7 +936,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upwelling Shortwave Radiation", 
             "comment": "", 
@@ -919,7 +953,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", 
             "comment": "Surface upwelling clear-sky shortwave radiation", 
@@ -936,7 +970,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_shortwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Shortwave Radiation", 
             "comment": "at the top of the atmosphere", 
@@ -953,7 +987,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", 
             "comment": "Calculated in the absence of clouds.", 
@@ -970,7 +1004,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Net Downward Flux at Top of Model", 
             "comment": "Net Downward Radiative Flux at Top of Model : I.e., at the top of that portion of the atmosphere where dynamics are explicitly treated by the model. This is reported only if it differs from the net downward radiative flux at the top of the atmosphere.", 
@@ -984,10 +1018,10 @@
             "ok_max_mean_abs": ""
         }, 
         "sbl": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_sublimation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Snow and Ice Sublimation Flux", 
             "comment": "The snow and ice sublimation flux is the loss of snow and ice mass per unit area from the surface resulting from their direct conversion to water vapor that enters the atmosphere.", 
@@ -1004,7 +1038,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "shallow_convection_time_fraction", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Fraction of Time Shallow Convection Occurs", 
             "comment": "Fraction of time that shallow convection occurs in the grid cell.", 
@@ -1106,7 +1140,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downward_eastward_stress", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downward Eastward Wind Stress", 
             "comment": "Downward eastward wind stress at the surface", 
@@ -1123,7 +1157,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downward_northward_stress", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downward Northward Wind Stress", 
             "comment": "Downward northward wind stress at the surface", 
@@ -1136,45 +1170,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tro3": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_ozone_in_air", 
-            "units": "1e-09", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Mole Fraction of O3", 
-            "comment": "Mole fraction of ozone (O3)", 
-            "dimensions": "longitude latitude plev19 time", 
-            "out_name": "tro3", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tro3Clim": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_ozone_in_air", 
-            "units": "1e-09", 
-            "cell_methods": "time: mean within years time: mean over years", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Mole Fraction of O3", 
-            "comment": "Mole fraction of ozone (O3)", 
-            "dimensions": "longitude latitude plev19 time2", 
-            "out_name": "tro3Clim", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "ts": {
             "modeling_realm": "atmos", 
             "standard_name": "surface_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Temperature", 
             "comment": "Temperature of the lower boundary of the atmosphere", 
diff --git a/TestTables/CMIP6_AmonAdj.json b/TestTables/CMIP6_AmonAdj.json
deleted file mode 100644
index 3495ea9..0000000
--- a/TestTables/CMIP6_AmonAdj.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
-    "Header": {
-        "data_specs_version": "01.beta.42.01", 
-        "table_id": "Table AmonAdj", 
-        "realm": "atmos", 
-        "frequency": "mon", 
-        "cmor_version": "3.2", 
-        "table_date": "23 November 2016", 
-        "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "30.00000", 
-        "generic_levels": "", 
-        "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
-    }, 
-    "variable_entry": {
-        "prAdjust": {
-            "modeling_realm": "atmos", 
-            "standard_name": "precipitation_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Bias-Corrected Precipitation", 
-            "comment": "at surface; includes both liquid and solid phases from all types of clouds (both large-scale and convective)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "prAdjust", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "pslAdjust": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_pressure_at_sea_level", 
-            "units": "Pa", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Bias-Corrected Sea Level Pressure", 
-            "comment": "not, in general, the same as surface pressure", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "pslAdjust", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tasAdjust": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_temperature", 
-            "units": "K", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Bias-Corrected Near-Surface Air Temperature", 
-            "comment": "", 
-            "dimensions": "longitude latitude time height2m", 
-            "out_name": "tasAdjust", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tsAdjust": {
-            "modeling_realm": "atmos", 
-            "standard_name": "surface_temperature", 
-            "units": "K", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Bias-Corrected Surface Temperature", 
-            "comment": "''skin'' temperature (i.e., SST for open ocean)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "tsAdjust", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }
-    }
-}
diff --git a/TestTables/CMIP6_Amon_json_hfls b/TestTables/CMIP6_Amon_json_hfls
index 9dc47fe..5f5dc06 100644
--- a/TestTables/CMIP6_Amon_json_hfls
+++ b/TestTables/CMIP6_Amon_json_hfls
@@ -1,17 +1,17 @@
 {
     "Header": {                                                                                                                                
-        "data_specs_version": "01.beta.38",                                                                                                    
+        "data_specs_version": "10.10.18",
         "table_id": "Table Amon",                                                                                                              
         "realm": "atmos atmosChem",                                                                                                            
         "frequency": "mon",                                                                                                                    
         "cmor_version": "3.2",                                                                                                                 
         "table_date": "15 November 2016",                                                                                                      
         "missing_value": "1e20",                                                                                                               
-        "product": "output",                                                                                                                   
+        "product": "model-output",
         "approx_interval": "30.00000",                                                                                                         
         "generic_levels": "alevel alevhalf",                                                                                                   
         "mip_era": "CMIP6",                                                                                                                    
-        "Conventions": "CF-1.6 CMIP-6.0"                                                                                                       
+        "Conventions": "CF-1.7 CMIP-6.0"                                                                                                       
     },                                                                                                                                         
     "axis_entry": {
         "plevs": {
diff --git a/TestTables/CMIP6_cf3hr.json b/TestTables/CMIP6_CF3hr.json
similarity index 72%
rename from TestTables/CMIP6_cf3hr.json
rename to TestTables/CMIP6_CF3hr.json
index b22fe4f..adb73a5 100644
--- a/TestTables/CMIP6_cf3hr.json
+++ b/TestTables/CMIP6_CF3hr.json
@@ -1,53 +1,19 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table cf3hr", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table CF3hr", 
         "realm": "atmos", 
         "frequency": "3hr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "0.125000", 
-        "generic_levels": "", 
+        "generic_levels": "alevel alevhalf", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
-        "cfadDbze94": {
-            "modeling_realm": "atmos", 
-            "standard_name": "histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid", 
-            "units": "1.0", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CloudSat Radar Reflectivity CFAD", 
-            "comment": "CFAD (Cloud Frequency Altitude Diagrams) are frequency distributions of radar  reflectivity (or lidar scattering ratio) as a function of altitude. The variable cfadDbze94 is defined as the simulated relative frequency of occurrence of radar reflectivity in sampling volumes defined by altitude bins. The radar is observing at a frequency of 94GHz.", 
-            "dimensions": "location alt40 dbze time1", 
-            "out_name": "cfadDbze94", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "cfadLidarsr532": {
-            "modeling_realm": "atmos", 
-            "standard_name": "histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid", 
-            "units": "1.0", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Scattering Ratio CFAD", 
-            "comment": "CFAD (Cloud Frequency Altitude Diagrams) are frequency distributions of radar  reflectivity (or lidar scattering ratio) as a function of altitude. The variable cfadLidarsr532 is defined as the simulated relative frequency of lidar scattering ratio in sampling volumes defined by altitude bins. The lidar is observing at a wavelength of 532nm.", 
-            "dimensions": "location alt40 scatratio time1", 
-            "out_name": "cfadLidarsr532", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "clc": {
             "modeling_realm": "atmos", 
             "standard_name": "convective_cloud_area_fraction_in_atmosphere_layer", 
@@ -65,57 +31,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "clcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Cloud Area Fraction", 
-            "comment": "Percentage cloud cover at CALIPSO standard heights.", 
-            "dimensions": "location alt40 time1", 
-            "out_name": "clcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "clcalipso2": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Cloud Fraction Undetected by CloudSat", 
-            "comment": "Clouds detected by CALIPSO but below the detectability threshold of CloudSat", 
-            "dimensions": "location alt40 time1", 
-            "out_name": "clcalipso2", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "clhcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO High Level Cloud Fraction", 
-            "comment": "Percentage cloud cover in layer centred on 220hPa", 
-            "dimensions": "location time1 p220", 
-            "out_name": "clhcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "clic": {
             "modeling_realm": "atmos", 
             "standard_name": "mass_fraction_of_convective_cloud_ice_in_air", 
@@ -150,40 +65,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "cllcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Low Level Cloud Fraction", 
-            "comment": "Percentage cloud cover in layer centred on 840hPa", 
-            "dimensions": "location time1 p840", 
-            "out_name": "cllcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "clmcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Mid Level Cloud Fraction", 
-            "comment": "Percentage cloud cover in layer centred on 560hPa", 
-            "dimensions": "location time1 p560", 
-            "out_name": "clmcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "cls": {
             "modeling_realm": "atmos", 
             "standard_name": "stratiform_cloud_area_fraction_in_atmosphere_layer", 
@@ -204,7 +85,7 @@
         "cltc": {
             "modeling_realm": "atmos", 
             "standard_name": "convective_cloud_area_fraction", 
-            "units": "1.0", 
+            "units": "%", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Convective Cloud Fraction", 
@@ -218,23 +99,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "cltcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "CALIPSO Total Cloud Fraction", 
-            "comment": "", 
-            "dimensions": "location time1", 
-            "out_name": "cltcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "clwc": {
             "modeling_realm": "atmos", 
             "standard_name": "mass_fraction_of_convective_cloud_liquid_water_in_air", 
@@ -356,12 +220,12 @@
         }, 
         "h2o": {
             "modeling_realm": "atmos", 
-            "standard_name": "mole_fraction_of_water_vapor_in_air", 
-            "units": "mol mol-1", 
+            "standard_name": "mass_fraction_of_water_in_air", 
+            "units": "1.0", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass Fraction of Water", 
-            "comment": "", 
+            "comment": "includes all phases of water", 
             "dimensions": "longitude latitude alevel time1", 
             "out_name": "h2o", 
             "type": "real", 
@@ -371,57 +235,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "latitude": {
-            "modeling_realm": "atmos", 
-            "standard_name": "latitude", 
-            "units": "degrees_north", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Latitude", 
-            "comment": "", 
-            "dimensions": "location time1", 
-            "out_name": "latitude", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "longitude": {
-            "modeling_realm": "atmos", 
-            "standard_name": "longitude", 
-            "units": "degrees_east", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Longitude", 
-            "comment": "", 
-            "dimensions": "location time1", 
-            "out_name": "longitude", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "parasolRefl": {
-            "modeling_realm": "atmos", 
-            "standard_name": "toa_bidirectional_reflectance", 
-            "units": "1.0", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "PARASOL Reflectance", 
-            "comment": "Simulated reflectance from PARASOL as seen at the top of the atmosphere for 5 solar zenith angles. Valid only over ocean and for one viewing direction (viewing zenith angle of 30 degrees and relative azimuth angle 320 degrees).", 
-            "dimensions": "location sza5 time1", 
-            "out_name": "parasolRefl", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "pfull": {
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure", 
@@ -694,23 +507,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "toffset": {
-            "modeling_realm": "atmos", 
-            "standard_name": "time", 
-            "units": "day", 
-            "cell_methods": "", 
-            "cell_measures": "", 
-            "long_name": "Offset Time", 
-            "comment": "'this ''offset time'' should be added to the value stored in the ''time dimension'' to get the actual time.  This actual time is the time (UTC) of the corresponding point in the satellite orbit used to extract the model data.'", 
-            "dimensions": "location time1", 
-            "out_name": "toffset", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "zfull": {
             "modeling_realm": "atmos", 
             "standard_name": "height_above_reference_ellipsoid", 
diff --git a/TestTables/CMIP6_cfDay.json b/TestTables/CMIP6_CFday.json
similarity index 94%
rename from TestTables/CMIP6_cfDay.json
rename to TestTables/CMIP6_CFday.json
index 76db2bd..0a463c8 100644
--- a/TestTables/CMIP6_cfDay.json
+++ b/TestTables/CMIP6_CFday.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table cfDay", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table CFday", 
         "realm": "atmos", 
         "frequency": "day", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "1.00000", 
         "generic_levels": "alevel alevhalf", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "albisccp": {
@@ -35,10 +35,10 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure_at_convective_cloud_base", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Air Pressure at Convective Cloud Base", 
-            "comment": "Where convective cloud is present in the grid cell, the instantaneous cloud base altitude should be that of the bottom of the lowest level containing convective cloud. Missing data should be reported in the absence of convective cloud. The time mean should be calculated from these quantities averaging over occasions when convective cloud is present only, and should contain missing data for occasions when no convective cloud is present during the meaning period. ", 
+            "comment": "Where convective cloud is present in the grid cell, the instantaneous cloud base altitude should be that of the bottom of the lowest level containing convective cloud. Missing data should be reported in the absence of convective cloud. The time mean should be calculated from these quantities averaging over occasions when convective cloud is present only, and should contain missing data for occasions when no convective cloud is present during the meaning period.", 
             "dimensions": "longitude latitude time", 
             "out_name": "ccb", 
             "type": "real", 
@@ -52,7 +52,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure_at_convective_cloud_top", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Air Pressure at Convective Cloud Top", 
             "comment": "Where convective cloud is present in the grid cell, the instantaneous cloud top altitude should be that of the top of the highest level containing convective cloud. Missing data should be reported in the absence of convective cloud. The time mean should be calculated from these quantities averaging over occasions when convective cloud is present only, and should contain missing data for occasions when no convective cloud is present during the meaning period.", 
@@ -103,7 +103,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "CALIPSO High Level Cloud Fraction", 
             "comment": "Percentage cloud cover in layer centred on 220hPa", 
@@ -135,7 +135,7 @@
         }, 
         "clisccp": {
             "modeling_realm": "atmos", 
-            "standard_name": "isccp_cloud_area_fraction", 
+            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
             "units": "%", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
@@ -152,12 +152,12 @@
         }, 
         "clivi": {
             "modeling_realm": "atmos", 
-            "standard_name": "atmosphere_mass_content_of_cloud_ice", 
+            "standard_name": "atmosphere_cloud_ice_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Water Path", 
-            "comment": "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). Includes precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.", 
+            "comment": "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). Includes precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.", 
             "dimensions": "longitude latitude time", 
             "out_name": "clivi", 
             "type": "real", 
@@ -171,7 +171,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "CALIPSO Low Level Cloud Fraction", 
             "comment": "Percentage cloud cover in layer centred on 840hPa", 
@@ -188,7 +188,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "CALIPSO Mid Level Cloud Fraction", 
             "comment": "Percentage cloud cover in layer centred on 560hPa", 
@@ -205,7 +205,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "CALIPSO Total Cloud Fraction", 
             "comment": "", 
@@ -222,7 +222,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "ISCCP Total Total Cloud Fraction", 
             "comment": "Percentage total cloud cover, simulating ISCCP observations.", 
@@ -256,7 +256,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_cloud_condensed_water_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Condensed Water Path", 
             "comment": "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). Includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
@@ -375,7 +375,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_air_pressure", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Air Pressure", 
             "comment": "surface pressure (not mean sea-level pressure), 2-D field to calculate the 3-D pressure field from hybrid coordinates", 
@@ -392,7 +392,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", 
             "comment": "Surface downwelling clear-sky longwave radiation", 
@@ -409,7 +409,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", 
             "comment": "", 
@@ -426,7 +426,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", 
             "comment": "surface solar irradiance clear sky for UV calculations", 
@@ -443,7 +443,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_incoming_shortwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Incident Shortwave Radiation", 
             "comment": "Shortwave radiation incident at the top of the atmosphere", 
@@ -460,7 +460,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", 
             "comment": "Surface upwelling clear-sky shortwave radiation", 
@@ -477,7 +477,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_shortwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Shortwave Radiation", 
             "comment": "at the top of the atmosphere", 
@@ -494,7 +494,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", 
             "comment": "Calculated in the absence of clouds.", 
@@ -599,7 +599,7 @@
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "omega (=dp/dt)", 
-            "comment": "Omega (vertical velocity in pressure coordinates, positive downwards) at 500 hPa level; ", 
+            "comment": "Omega (vertical velocity in pressure coordinates, positive downwards) at 500 hPa level;", 
             "dimensions": "longitude latitude time p500", 
             "out_name": "wap500", 
             "type": "real", 
diff --git a/TestTables/CMIP6_cfMon.json b/TestTables/CMIP6_CFmon.json
similarity index 98%
rename from TestTables/CMIP6_cfMon.json
rename to TestTables/CMIP6_CFmon.json
index ff8cfc1..275c66d 100644
--- a/TestTables/CMIP6_cfMon.json
+++ b/TestTables/CMIP6_CFmon.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table cfMon", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table CFmon", 
         "realm": "atmos", 
         "frequency": "mon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "30.00000", 
         "generic_levels": "alevel alevhalf", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "albisccp": {
@@ -118,7 +118,7 @@
         }, 
         "clisccp": {
             "modeling_realm": "atmos", 
-            "standard_name": "isccp_cloud_area_fraction", 
+            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
             "units": "%", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
@@ -188,7 +188,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "CALIPSO Percentage Total Cloud", 
             "comment": "", 
@@ -205,7 +205,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "ISCCP Total Cloud Fraction", 
             "comment": "Percentage total cloud cover, simulating ISCCP observations.", 
@@ -528,7 +528,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_longwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Longwave Radiation 4XCO2 Atmosphere", 
             "comment": "Top-of-atmosphere outgoing longwave radiation calculated using carbon dioxide concentrations increased fourfold", 
@@ -545,7 +545,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Clear-Sky Longwave Radiation 4XCO2 Atmosphere", 
             "comment": "Top-of-atmosphere outgoing clear-sky longwave radiation calculated using carbon dioxide concentrations increased fourfold", 
@@ -698,7 +698,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_shortwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Shortwave Radiation in 4XCO2 Atmosphere", 
             "comment": "TOA Outgoing Shortwave Radiation calculated using carbon dioxide concentrations increased fourfold", 
@@ -715,7 +715,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation 4XCO2 Atmosphere", 
             "comment": "TOA Outgoing Clear-Sky Shortwave Radiation calculated using carbon dioxide concentrations increased fourfold", 
diff --git a/TestTables/CMIP6_Amon.json b/TestTables/CMIP6_CFsubhr.json
similarity index 64%
copy from TestTables/CMIP6_Amon.json
copy to TestTables/CMIP6_CFsubhr.json
index d663356..95e7f6d 100644
--- a/TestTables/CMIP6_Amon.json
+++ b/TestTables/CMIP6_CFsubhr.json
@@ -1,28 +1,28 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table Amon", 
-        "realm": "atmos atmosChem", 
-        "frequency": "mon", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table CFsubhr", 
+        "realm": "atmos", 
+        "frequency": "subhr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "30.00000", 
+        "product": "model-output", 
+        "approx_interval": "0.017361", 
         "generic_levels": "alevel alevhalf", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "ccb": {
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure_at_convective_cloud_base", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Air Pressure at Convective Cloud Base", 
-            "comment": "Where convective cloud is present in the grid cell, the instantaneous cloud base altitude should be that of the bottom of the lowest level containing convective cloud. Missing data should be reported in the absence of convective cloud. The time mean should be calculated from these quantities averaging over occasions when convective cloud is present only, and should contain missing data for occasions when no convective cloud is present during the meaning period. ", 
-            "dimensions": "longitude latitude time", 
+            "comment": "Where convective cloud is present in the grid cell, the instantaneous cloud base altitude should be that of the bottom of the lowest level containing convective cloud. Missing data should be reported in the absence of convective cloud. The time mean should be calculated from these quantities averaging over occasions when convective cloud is present only, and should contain missing data for occasions when no convective cloud is present during the meaning period.", 
+            "dimensions": "site time1", 
             "out_name": "ccb", 
             "type": "real", 
             "positive": "", 
@@ -35,11 +35,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure_at_convective_cloud_top", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Air Pressure at Convective Cloud Top", 
             "comment": "Where convective cloud is present in the grid cell, the instantaneous cloud top altitude should be that of the top of the highest level containing convective cloud. Missing data should be reported in the absence of convective cloud. The time mean should be calculated from these quantities averaging over occasions when convective cloud is present only, and should contain missing data for occasions when no convective cloud is present during the meaning period.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "cct", 
             "type": "real", 
             "positive": "", 
@@ -48,134 +48,15 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "cfc113global": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_cfc113_in_air", 
-            "units": "1e-12", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "Global Mean Mole Fraction of CFC113", 
-            "comment": "", 
-            "dimensions": "time", 
-            "out_name": "cfc113global", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "cfc11global": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_cfc11_in_air", 
-            "units": "1e-12", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "Global Mean Mole Fraction of CFC11", 
-            "comment": "", 
-            "dimensions": "time", 
-            "out_name": "cfc11global", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "cfc12global": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_cfc12_in_air", 
-            "units": "1e-12", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "Global Mean Mole Fraction of CFC12", 
-            "comment": "", 
-            "dimensions": "time", 
-            "out_name": "cfc12global", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ch4": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_methane_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Mole Fraction of CH4", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev19 time", 
-            "out_name": "ch4", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ch4Clim": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_methane_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean within years time: mean over years", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Mole Fraction of CH4", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev19 time2", 
-            "out_name": "ch4Clim", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ch4global": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_methane_in_air", 
-            "units": "1e-09", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "Global Mean Mole Fraction of CH4", 
-            "comment": "Global Mean Mole Fraction of CH4", 
-            "dimensions": "time", 
-            "out_name": "ch4global", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ch4globalClim": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_methane_in_air", 
-            "units": "1e-09", 
-            "cell_methods": "time: mean within years time: mean over years", 
-            "cell_measures": "", 
-            "long_name": "Global Mean Mole Fraction of CH4", 
-            "comment": "Global Mean Mole Fraction of CH4", 
-            "dimensions": "time2", 
-            "out_name": "ch4globalClim", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "ci": {
             "modeling_realm": "atmos", 
             "standard_name": "convection_time_fraction", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Fraction of Time Convection Occurs", 
             "comment": "Fraction of time that convection occurs in the grid cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "ci", 
             "type": "real", 
             "positive": "", 
@@ -188,11 +69,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Cloud Area Fraction", 
             "comment": "Percentage cloud cover, including both large-scale and convective cloud.", 
-            "dimensions": "longitude latitude alevel time", 
+            "dimensions": "alevel site time1", 
             "out_name": "cl", 
             "type": "real", 
             "positive": "", 
@@ -205,11 +86,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "mass_fraction_of_cloud_ice_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass Fraction of Cloud Ice", 
             "comment": "Includes both large-scale and convective cloud. This is calculated 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. It includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
-            "dimensions": "longitude latitude alevel time", 
+            "dimensions": "alevel site time1", 
             "out_name": "cli", 
             "type": "real", 
             "positive": "", 
@@ -220,13 +101,13 @@
         }, 
         "clivi": {
             "modeling_realm": "atmos", 
-            "standard_name": "atmosphere_mass_content_of_cloud_ice", 
+            "standard_name": "atmosphere_cloud_ice_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Ice Water Path", 
-            "comment": "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). Includes precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.", 
-            "dimensions": "longitude latitude time", 
+            "comment": "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). Includes precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.", 
+            "dimensions": "site time1", 
             "out_name": "clivi", 
             "type": "real", 
             "positive": "", 
@@ -238,12 +119,12 @@
         "clt": {
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "units": "%", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Total Cloud Fraction", 
             "comment": "Total cloud area fraction for the whole atmospheric column, as seen from the surface or the top of the atmosphere. Includes both large-scale and convective cloud.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "clt", 
             "type": "real", 
             "positive": "", 
@@ -256,11 +137,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass Fraction of Cloud Liquid Water", 
             "comment": "Includes 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. Precipitating hydrometeors are included ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
-            "dimensions": "longitude latitude alevel time", 
+            "dimensions": "alevel site time1", 
             "out_name": "clw", 
             "type": "real", 
             "positive": "", 
@@ -273,11 +154,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_cloud_condensed_water_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Condensed Water Path", 
             "comment": "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). Includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "clwvi", 
             "type": "real", 
             "positive": "", 
@@ -286,33 +167,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "co2": {
-            "modeling_realm": "atmos", 
-            "standard_name": "mole_fraction_of_carbon_dioxide_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Mole Fraction of CO2", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev19 time", 
-            "out_name": "co2", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "co2Clim": {
+        "edt": {
             "modeling_realm": "atmos", 
-            "standard_name": "mole_fraction_of_carbon_dioxide_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean within years time: mean over years", 
+            "standard_name": "atmosphere_heat_diffusivity", 
+            "units": "m2 s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Mole Fraction of CO2", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev19 time2", 
-            "out_name": "co2Clim", 
+            "long_name": "Eddy Diffusivity Coefficient for Temperature Variable", 
+            "comment": "Vertical diffusion coefficient for temperature due to parametrised eddies", 
+            "dimensions": "alevel site time1", 
+            "out_name": "edt", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -320,16 +184,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "co2mass": {
+        "evspsbl": {
             "modeling_realm": "atmos", 
-            "standard_name": "atmosphere_mass_of_carbon_dioxide", 
-            "units": "kg", 
-            "cell_methods": "time: mean", 
+            "standard_name": "water_evaporation_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: point time: point", 
             "cell_measures": "", 
-            "long_name": "Total Atmospheric Mass of CO2", 
-            "comment": "Total atmospheric mass of Carbon Dioxide", 
-            "dimensions": "time", 
-            "out_name": "co2mass", 
+            "long_name": "Evaporation", 
+            "comment": "Evaporation at surface: flux of water into the atmosphere due to conversion of both liquid and solid phases to vapor (from underlying surface and vegetation)", 
+            "dimensions": "site time1", 
+            "out_name": "evspsbl", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -337,33 +201,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "co2massClim": {
+        "evu": {
             "modeling_realm": "atmos", 
-            "standard_name": "atmosphere_mass_of_carbon_dioxide", 
-            "units": "kg", 
-            "cell_methods": "time: mean within years time: mean over years", 
-            "cell_measures": "", 
-            "long_name": "Total Atmospheric Mass of CO2", 
-            "comment": "Total atmospheric mass of Carbon Dioxide", 
-            "dimensions": "time2", 
-            "out_name": "co2massClim", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "evspsbl": {
-            "modeling_realm": "atmos", 
-            "standard_name": "water_evaporation_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "atmosphere_momentum_diffusivity", 
+            "units": "m2 s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Evaporation", 
-            "comment": "Evaporation at surface: flux of water into the atmosphere due to conversion of both liquid and solid phases to vapor (from underlying surface and vegetation)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "evspsbl", 
+            "long_name": "Eddy Viscosity Coefficient for Momentum Variables", 
+            "comment": "Vertical diffusion coefficient for momentum due to parametrised eddies", 
+            "dimensions": "alevel site time1", 
+            "out_name": "evu", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -375,11 +222,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "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.  Does not include natural fire sources but, includes all anthropogenic sources, including fossil fuel use, cement production, agricultural burning, and sources associated with anthropogenic land use change excluding forest regrowth.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "fco2antt", 
             "type": "real", 
             "positive": "up", 
@@ -392,11 +239,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_fossil_fuel_combustion", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Carbon Mass Flux into Atmosphere Due to Fossil Fuel Emissions of CO2", 
             "comment": "This is 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.)", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "fco2fos", 
             "type": "real", 
             "positive": "up", 
@@ -409,11 +256,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_natural_sources", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Carbon Mass Flux into the Atmosphere Due to Natural Sources", 
             "comment": "This is what the atmosphere sees (on its own grid).  This field should be equivalent to the combined natural fluxes of carbon  that account for natural exchanges between the atmosphere and land (nep) or ocean (fgco2) reservoirs.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "fco2nat", 
             "type": "real", 
             "positive": "up", 
@@ -422,32 +269,15 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hcfc22global": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_hcfc22_in_air", 
-            "units": "1e-12", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "Global Mean Mole Fraction of HCFC22", 
-            "comment": "", 
-            "dimensions": "time", 
-            "out_name": "hcfc22global", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "hfls": {
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_latent_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Upward Latent Heat Flux", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "hfls", 
             "type": "real", 
             "positive": "up", 
@@ -460,11 +290,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_sensible_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Upward Sensible Heat Flux", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "hfss", 
             "type": "real", 
             "positive": "up", 
@@ -477,11 +307,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "relative_humidity", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Relative Humidity", 
             "comment": "The relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.", 
-            "dimensions": "longitude latitude plev19 time", 
+            "dimensions": "alevel site time1", 
             "out_name": "hur", 
             "type": "real", 
             "positive": "", 
@@ -494,11 +324,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "relative_humidity", 
             "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Near-Surface Relative Humidity", 
             "comment": "The relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.", 
-            "dimensions": "longitude latitude time height2m", 
+            "dimensions": "site time1 height2m", 
             "out_name": "hurs", 
             "type": "real", 
             "positive": "", 
@@ -511,11 +341,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "specific_humidity", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Specific Humidity", 
             "comment": "", 
-            "dimensions": "longitude latitude plev19 time", 
+            "dimensions": "alevel site time1", 
             "out_name": "hus", 
             "type": "real", 
             "positive": "", 
@@ -528,11 +358,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "specific_humidity", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Near-Surface Specific Humidity", 
             "comment": "Near-surface (usually, 2 meter) specific humidity.", 
-            "dimensions": "longitude latitude time height2m", 
+            "dimensions": "site time1 height2m", 
             "out_name": "huss", 
             "type": "real", 
             "positive": "", 
@@ -541,50 +371,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "mc": {
+        "latitude": {
             "modeling_realm": "atmos", 
-            "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": "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.", 
-            "dimensions": "longitude latitude alevhalf time", 
-            "out_name": "mc", 
-            "type": "real", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "n2o": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_nitrous_oxide_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Mole Fraction of N2O", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev19 time", 
-            "out_name": "n2o", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "n2oClim": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_nitrous_oxide_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean within years time: mean over years", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Mole Fraction of N2O", 
+            "standard_name": "latitude", 
+            "units": "degrees_north", 
+            "cell_methods": "area: point time: mean", 
+            "cell_measures": "", 
+            "long_name": "Latitude", 
             "comment": "", 
-            "dimensions": "longitude latitude plev19 time2", 
-            "out_name": "n2oClim", 
+            "dimensions": "site", 
+            "out_name": "latitude", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -592,16 +388,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "n2oglobal": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_nitrous_oxide_in_air", 
-            "units": "1e-09", 
-            "cell_methods": "time: mean", 
+        "longitude": {
+            "modeling_realm": "atmos", 
+            "standard_name": "longitude", 
+            "units": "degrees_east", 
+            "cell_methods": "area: point time: mean", 
             "cell_measures": "", 
-            "long_name": "Global Mean Mole Fraction of N2O", 
-            "comment": "Global mean Nitrous Oxide (N2O)", 
-            "dimensions": "time", 
-            "out_name": "n2oglobal", 
+            "long_name": "Longitude", 
+            "comment": "", 
+            "dimensions": "site", 
+            "out_name": "longitude", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -609,18 +405,18 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "n2oglobalClim": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_nitrous_oxide_in_air", 
-            "units": "1e-09", 
-            "cell_methods": "time: mean within years time: mean over years", 
+        "mc": {
+            "modeling_realm": "atmos", 
+            "standard_name": "atmosphere_net_upward_convective_mass_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "", 
-            "long_name": "Global Mean Mole Fraction of N2O", 
-            "comment": "Global mean Nitrous Oxide (N2O)", 
-            "dimensions": "time2", 
-            "out_name": "n2oglobalClim", 
+            "long_name": "Convective Mass Flux", 
+            "comment": "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.", 
+            "dimensions": "alevhalf site time1", 
+            "out_name": "mc", 
             "type": "real", 
-            "positive": "", 
+            "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
@@ -630,11 +426,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure", 
             "units": "Pa", 
-            "cell_methods": "time: mean within years time: mean over years", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Pressure on Model Levels", 
             "comment": "Air pressure on model levels", 
-            "dimensions": "longitude latitude alevel time2", 
+            "dimensions": "alevel site time1", 
             "out_name": "pfull", 
             "type": "real", 
             "positive": "", 
@@ -647,11 +443,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure", 
             "units": "Pa", 
-            "cell_methods": "time: mean within years time: mean over years", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "time: point", 
+            "cell_measures": "", 
             "long_name": "Pressure on Model Half-Levels", 
             "comment": "Air pressure on model half-levels", 
-            "dimensions": "longitude latitude alevhalf time2", 
+            "dimensions": "alevhalf site time1", 
             "out_name": "phalf", 
             "type": "real", 
             "positive": "", 
@@ -664,11 +460,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Precipitation", 
             "comment": "includes both liquid and solid phases", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "pr", 
             "type": "real", 
             "positive": "", 
@@ -681,11 +477,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "convective_precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Convective Precipitation", 
             "comment": "Convective precipitation at surface; includes both liquid and solid phases.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "prc", 
             "type": "real", 
             "positive": "", 
@@ -698,11 +494,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "snowfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Snowfall Flux", 
             "comment": "at surface; includes precipitation of all forms of water in the solid phase", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "prsn", 
             "type": "real", 
             "positive": "", 
@@ -715,11 +511,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_water_vapor_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Water Vapor Path", 
             "comment": "vertically integrated through the atmospheric column", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "prw", 
             "type": "real", 
             "positive": "", 
@@ -732,11 +528,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_air_pressure", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Air Pressure", 
             "comment": "surface pressure (not mean sea-level pressure), 2-D field to calculate the 3-D pressure field from hybrid coordinates", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "ps", 
             "type": "real", 
             "positive": "", 
@@ -749,11 +545,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure_at_sea_level", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Sea Level Pressure", 
             "comment": "Sea Level Pressure", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "psl", 
             "type": "real", 
             "positive": "", 
@@ -762,15 +558,49 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "rld": {
+            "modeling_realm": "atmos", 
+            "standard_name": "downwelling_longwave_flux_in_air", 
+            "units": "W m-2", 
+            "cell_methods": "time: point", 
+            "cell_measures": "", 
+            "long_name": "Downwelling Longwave Radiation", 
+            "comment": "Downwelling Longwave Radiation (includes the fluxes at the surface and TOA)", 
+            "dimensions": "alevhalf site time1", 
+            "out_name": "rld", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rldcs": {
+            "modeling_realm": "atmos", 
+            "standard_name": "downwelling_longwave_flux_in_air_assuming_clear_sky", 
+            "units": "W m-2", 
+            "cell_methods": "time: point", 
+            "cell_measures": "", 
+            "long_name": "Downwelling Clear-Sky Longwave Radiation", 
+            "comment": "Downwelling clear-sky longwave radiation (includes the fluxes at the surface and TOA)", 
+            "dimensions": "alevhalf site time1", 
+            "out_name": "rldcs", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "rlds": {
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Downwelling Longwave Radiation", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rlds", 
             "type": "real", 
             "positive": "down", 
@@ -783,11 +613,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", 
             "comment": "Surface downwelling clear-sky longwave radiation", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rldscs", 
             "type": "real", 
             "positive": "down", 
@@ -796,15 +626,49 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "rlu": {
+            "modeling_realm": "atmos", 
+            "standard_name": "upwelling_longwave_flux_in_air", 
+            "units": "W m-2", 
+            "cell_methods": "time: point", 
+            "cell_measures": "", 
+            "long_name": "Upwelling Longwave Radiation", 
+            "comment": "Upwelling longwave radiation (includes the fluxes at the surface and TOA)", 
+            "dimensions": "alevhalf site time1", 
+            "out_name": "rlu", 
+            "type": "real", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rlucs": {
+            "modeling_realm": "atmos", 
+            "standard_name": "upwelling_longwave_flux_in_air_assuming_clear_sky", 
+            "units": "W m-2", 
+            "cell_methods": "time: point", 
+            "cell_measures": "", 
+            "long_name": "Upwelling Clear-Sky Longwave Radiation", 
+            "comment": "Upwelling clear-sky longwave radiation  (includes the fluxes at the surface and TOA)", 
+            "dimensions": "alevhalf site time1", 
+            "out_name": "rlucs", 
+            "type": "real", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "rlus": {
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Upwelling Longwave Radiation", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rlus", 
             "type": "real", 
             "positive": "up", 
@@ -817,11 +681,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_longwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "TOA Outgoing Longwave Radiation", 
             "comment": "at the top of the atmosphere (to be compared with satellite measurements)", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rlut", 
             "type": "real", 
             "positive": "up", 
@@ -834,11 +698,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "TOA Outgoing Clear-Sky Longwave Radiation", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rlutcs", 
             "type": "real", 
             "positive": "up", 
@@ -847,15 +711,49 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "rsd": {
+            "modeling_realm": "atmos", 
+            "standard_name": "downwelling_shortwave_flux_in_air", 
+            "units": "W m-2", 
+            "cell_methods": "time: point", 
+            "cell_measures": "", 
+            "long_name": "Downwelling Shortwave Radiation", 
+            "comment": "Downwelling shortwave radiation (includes the fluxes at the surface and top-of-atmosphere)", 
+            "dimensions": "alevhalf site time1", 
+            "out_name": "rsd", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rsdcs": {
+            "modeling_realm": "atmos", 
+            "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", 
+            "units": "W m-2", 
+            "cell_methods": "time: point", 
+            "cell_measures": "", 
+            "long_name": "Downwelling Clear-Sky Shortwave Radiation", 
+            "comment": "Downwelling clear-sky shortwave radiation (includes the fluxes at the surface and top-of-atmosphere)", 
+            "dimensions": "alevhalf site time1", 
+            "out_name": "rsdcs", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "rsds": {
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Downwelling Shortwave Radiation", 
             "comment": "surface solar irradiance for UV calculations", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rsds", 
             "type": "real", 
             "positive": "down", 
@@ -868,11 +766,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation", 
             "comment": "surface solar irradiance clear sky for UV calculations", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rsdscs", 
             "type": "real", 
             "positive": "down", 
@@ -885,11 +783,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_incoming_shortwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "TOA Incident Shortwave Radiation", 
             "comment": "Shortwave radiation incident at the top of the atmosphere", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rsdt", 
             "type": "real", 
             "positive": "down", 
@@ -898,15 +796,49 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "rsu": {
+            "modeling_realm": "atmos", 
+            "standard_name": "upwelling_shortwave_flux_in_air", 
+            "units": "W m-2", 
+            "cell_methods": "time: point", 
+            "cell_measures": "", 
+            "long_name": "Upwelling Shortwave Radiation", 
+            "comment": "Upwelling shortwave radiation  (includes also the fluxes at the surface and top of atmosphere)", 
+            "dimensions": "alevhalf site time1", 
+            "out_name": "rsu", 
+            "type": "real", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rsucs": {
+            "modeling_realm": "atmos", 
+            "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", 
+            "units": "W m-2", 
+            "cell_methods": "time: point", 
+            "cell_measures": "", 
+            "long_name": "Upwelling Clear-Sky Shortwave Radiation", 
+            "comment": "Upwelling clear-sky shortwave radiation  (includes the fluxes at the surface and TOA)", 
+            "dimensions": "alevhalf site time1", 
+            "out_name": "rsucs", 
+            "type": "real", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "rsus": {
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Upwelling Shortwave Radiation", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rsus", 
             "type": "real", 
             "positive": "up", 
@@ -919,11 +851,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", 
             "comment": "Surface upwelling clear-sky shortwave radiation", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rsuscs", 
             "type": "real", 
             "positive": "up", 
@@ -936,11 +868,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_shortwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "TOA Outgoing Shortwave Radiation", 
             "comment": "at the top of the atmosphere", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rsut", 
             "type": "real", 
             "positive": "up", 
@@ -953,11 +885,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", 
             "comment": "Calculated in the absence of clouds.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rsutcs", 
             "type": "real", 
             "positive": "up", 
@@ -970,11 +902,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "net_downward_radiative_flux_at_top_of_atmosphere_model", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Net Downward Flux at Top of Model", 
             "comment": "Net Downward Radiative Flux at Top of Model : I.e., at the top of that portion of the atmosphere where dynamics are explicitly treated by the model. This is reported only if it differs from the net downward radiative flux at the top of the atmosphere.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "rtmt", 
             "type": "real", 
             "positive": "down", 
@@ -984,14 +916,14 @@
             "ok_max_mean_abs": ""
         }, 
         "sbl": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_sublimation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Snow and Ice Sublimation Flux", 
             "comment": "The snow and ice sublimation flux is the loss of snow and ice mass per unit area from the surface resulting from their direct conversion to water vapor that enters the atmosphere.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "sbl", 
             "type": "real", 
             "positive": "", 
@@ -1004,11 +936,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "shallow_convection_time_fraction", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Fraction of Time Shallow Convection Occurs", 
             "comment": "Fraction of time that shallow convection occurs in the grid cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "sci", 
             "type": "real", 
             "positive": "", 
@@ -1021,11 +953,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "wind_speed", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: point time: point", 
             "cell_measures": "", 
             "long_name": "Near-Surface Wind Speed", 
             "comment": "near-surface (usually, 10 meters) wind speed.", 
-            "dimensions": "longitude latitude time height10m", 
+            "dimensions": "site time1 height10m", 
             "out_name": "sfcWind", 
             "type": "real", 
             "positive": "", 
@@ -1038,11 +970,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Air Temperature", 
             "comment": "Air Temperature", 
-            "dimensions": "longitude latitude plev19 time", 
+            "dimensions": "alevel site time1", 
             "out_name": "ta", 
             "type": "real", 
             "positive": "", 
@@ -1055,11 +987,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Near-Surface Air Temperature", 
             "comment": "near-surface (usually, 2 meter) air temperature", 
-            "dimensions": "longitude latitude time height2m", 
+            "dimensions": "site time1 height2m", 
             "out_name": "tas", 
             "type": "real", 
             "positive": "", 
@@ -1068,16 +1000,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tasmax": {
+        "tauu": {
             "modeling_realm": "atmos", 
-            "standard_name": "air_temperature", 
-            "units": "K", 
-            "cell_methods": "time: maximum within days time: mean over days", 
+            "standard_name": "surface_downward_eastward_stress", 
+            "units": "Pa", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
+            "long_name": "Surface Downward Eastward Wind Stress", 
+            "comment": "Downward eastward wind stress at the surface", 
+            "dimensions": "site time1", 
+            "out_name": "tauu", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tauv": {
+            "modeling_realm": "atmos", 
+            "standard_name": "surface_downward_northward_stress", 
+            "units": "Pa", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
+            "long_name": "Surface Downward Northward Wind Stress", 
+            "comment": "Downward northward wind stress at the surface", 
+            "dimensions": "site time1", 
+            "out_name": "tauv", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tnhus": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_specific_humidity", 
+            "units": "s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Daily Maximum Near-Surface Air Temperature", 
-            "comment": "maximum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: max')", 
-            "dimensions": "longitude latitude time height2m", 
-            "out_name": "tasmax", 
+            "long_name": "Tendency of Specific Humidity", 
+            "comment": "Tendency of Specific Humidity", 
+            "dimensions": "alevel site time1", 
+            "out_name": "tnhus", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1085,16 +1051,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tasmin": {
+        "tnhusa": {
             "modeling_realm": "atmos", 
-            "standard_name": "air_temperature", 
-            "units": "K", 
-            "cell_methods": "time: minimum within days time: mean over days", 
+            "standard_name": "tendency_of_specific_humidity_due_to_advection", 
+            "units": "s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Daily Minimum Near-Surface Air Temperature", 
-            "comment": "minimum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: min')", 
-            "dimensions": "longitude latitude time height2m", 
-            "out_name": "tasmin", 
+            "long_name": "Tendency of Specific Humidity due to Advection", 
+            "comment": "Tendency of Specific Humidity due to Advection", 
+            "dimensions": "alevel site time1", 
+            "out_name": "tnhusa", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1102,50 +1068,118 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tauu": {
+        "tnhusc": {
             "modeling_realm": "atmos", 
-            "standard_name": "surface_downward_eastward_stress", 
-            "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tendency_of_specific_humidity_due_to_convection", 
+            "units": "s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Surface Downward Eastward Wind Stress", 
-            "comment": "Downward eastward wind stress at the surface", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "tauu", 
+            "long_name": "Tendency of Specific Humidity due to Convection", 
+            "comment": "Tendencies from cumulus convection scheme.", 
+            "dimensions": "alevel site time1", 
+            "out_name": "tnhusc", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tauv": {
+        "tnhusd": {
             "modeling_realm": "atmos", 
-            "standard_name": "surface_downward_northward_stress", 
-            "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tendency_of_specific_humidity_due_to_diffusion", 
+            "units": "s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Surface Downward Northward Wind Stress", 
-            "comment": "Downward northward wind stress at the surface", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "tauv", 
+            "long_name": "Tendency of Specific Humidity due to Numerical Diffusion", 
+            "comment": "Tendency of specific humidity due to numerical diffusion.This includes any horizontal or vertical numerical moisture diffusion not associated with the parametrized moist physics or the resolved dynamics.  For example, any vertical diffusion which is part of the boundary layer mixing scheme should be excluded, as should any diffusion which is included in the terms from the resolved dynamics.   This term is required to check the closure of the moisture budget.", 
+            "dimensions": "alevel site time1", 
+            "out_name": "tnhusd", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tnhusmp": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_specific_humidity_due_to_model_physics", 
+            "units": "s-1", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Tendency of Specific Humidity due to Model Physics", 
+            "comment": "Tendency of specific humidity due to model physics. This includes sources and sinks from parametrized moist physics (e.g. convection, boundary layer, stratiform condensation/evaporation, etc.) and excludes sources and sinks from resolved dynamics or from horizontal or vertical numerical diffusion not associated with model physicsl.  For example any diffusive mixing by the boundary layer scheme would be included.", 
+            "dimensions": "alevel site time1", 
+            "out_name": "tnhusmp", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tnhusscpbl": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", 
+            "units": "s-1", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Tendency of Specific Humidity Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", 
+            "comment": "Tendency of Specific Humidity Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing  (to be specified only in  models which do not separate budget terms for stratiform cloud, precipitation and boundary layer schemes.  Includes all bounday layer terms including and diffusive terms.)", 
+            "dimensions": "alevel site time1", 
+            "out_name": "tnhusscpbl", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tnt": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_air_temperature", 
+            "units": "K s-1", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Tendency of Air Temperature", 
+            "comment": "Tendency of Air Temperature", 
+            "dimensions": "alevel site time1", 
+            "out_name": "tnt", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tnta": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_air_temperature_due_to_advection", 
+            "units": "K s-1", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Tendency of Air Temperature due to Advection", 
+            "comment": "Tendency of Air Temperature due to Advection", 
+            "dimensions": "alevel site time1", 
+            "out_name": "tnta", 
+            "type": "real", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tro3": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_ozone_in_air", 
-            "units": "1e-09", 
-            "cell_methods": "time: mean", 
+        "tntc": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_air_temperature_due_to_convection", 
+            "units": "K s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Mole Fraction of O3", 
-            "comment": "Mole fraction of ozone (O3)", 
-            "dimensions": "longitude latitude plev19 time", 
-            "out_name": "tro3", 
+            "long_name": "Tendency of Air Temperature due to Convection", 
+            "comment": "Tendencies from cumulus convection scheme.", 
+            "dimensions": "alevel site time1", 
+            "out_name": "tntc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1153,16 +1187,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tro3Clim": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_ozone_in_air", 
-            "units": "1e-09", 
-            "cell_methods": "time: mean within years time: mean over years", 
+        "tntmp": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_air_temperature_due_to_model_physics", 
+            "units": "K s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Mole Fraction of O3", 
-            "comment": "Mole fraction of ozone (O3)", 
-            "dimensions": "longitude latitude plev19 time2", 
-            "out_name": "tro3Clim", 
+            "long_name": "Tendency of Air Temperature due to Model Physics", 
+            "comment": "Tendency of air temperature due to model physics. This includes sources and sinks from parametrized physics (e.g. radiation, convection, boundary layer, stratiform condensation/evaporation, etc.). It excludes sources and sinks from resolved dynamics and numerical diffusion not associated with parametrized physics.  For example, any vertical diffusion which is part of the boundary layer mixing scheme should be included, while numerical diffusion applied in addition [...]
+            "dimensions": "alevel site time1", 
+            "out_name": "tntmp", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tntr": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_air_temperature_due_to_radiative_heating", 
+            "units": "K s-1", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Tendency of Air Temperature due to Radiative Heating", 
+            "comment": "Tendency of Air Temperature due to Radiative Heating", 
+            "dimensions": "alevel site time1", 
+            "out_name": "tntr", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tntscpbl": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", 
+            "units": "K s-1", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Tendency of Air Temperature Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", 
+            "comment": "Tendency of Air Temperature Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing (to be specified only in  models which do not separate cloud, precipitation and boundary layer terms.  Includes all boundary layer terms including diffusive ones.)", 
+            "dimensions": "alevel site time1", 
+            "out_name": "tntscpbl", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1174,11 +1242,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_methods": "area: point time: point", 
+            "cell_measures": "", 
             "long_name": "Surface Temperature", 
             "comment": "Temperature of the lower boundary of the atmosphere", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "site time1", 
             "out_name": "ts", 
             "type": "real", 
             "positive": "", 
@@ -1191,11 +1259,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "eastward_wind", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Eastward Wind", 
             "comment": "", 
-            "dimensions": "longitude latitude plev19 time", 
+            "dimensions": "alevel site time1", 
             "out_name": "ua", 
             "type": "real", 
             "positive": "", 
@@ -1208,11 +1276,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "eastward_wind", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: point time: point", 
             "cell_measures": "", 
             "long_name": "Eastward Near-Surface Wind", 
             "comment": "Eastward component of the near-surface (usually, 10 meters)  wind", 
-            "dimensions": "longitude latitude time height10m", 
+            "dimensions": "site time1 height10m", 
             "out_name": "uas", 
             "type": "real", 
             "positive": "", 
@@ -1225,11 +1293,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "northward_wind", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Northward Wind", 
             "comment": "", 
-            "dimensions": "longitude latitude plev19 time", 
+            "dimensions": "alevel site time1", 
             "out_name": "va", 
             "type": "real", 
             "positive": "", 
@@ -1242,11 +1310,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "northward_wind", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: point time: point", 
             "cell_measures": "", 
             "long_name": "Northward Near-Surface Wind", 
             "comment": "Northward component of the near surface wind", 
-            "dimensions": "longitude latitude time height10m", 
+            "dimensions": "site time1 height10m", 
             "out_name": "vas", 
             "type": "real", 
             "positive": "", 
@@ -1259,11 +1327,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "lagrangian_tendency_of_air_pressure", 
             "units": "Pa s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "omega (=dp/dt)", 
             "comment": "Omega (vertical velocity in pressure coordinates, positive downwards)", 
-            "dimensions": "longitude latitude plev19 time", 
+            "dimensions": "alevel site time1", 
             "out_name": "wap", 
             "type": "real", 
             "positive": "", 
@@ -1276,11 +1344,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "geopotential_height", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Geopotential Height", 
             "comment": "", 
-            "dimensions": "longitude latitude plev19 time", 
+            "dimensions": "alevel site time1", 
             "out_name": "zg", 
             "type": "real", 
             "positive": "", 
diff --git a/TestTables/CMIP6_cfOff.json b/TestTables/CMIP6_CFsubhrOff.json
similarity index 96%
rename from TestTables/CMIP6_cfOff.json
rename to TestTables/CMIP6_CFsubhrOff.json
index 9814a65..39df1b4 100644
--- a/TestTables/CMIP6_cfOff.json
+++ b/TestTables/CMIP6_CFsubhrOff.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table cfOff", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table CFsubhrOff", 
         "realm": "atmos", 
         "frequency": "subhr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "cfadDbze94": {
@@ -137,7 +137,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "CALIPSO Total Cloud Fraction", 
             "comment": "", 
diff --git a/TestTables/CMIP6_CORDEX_day.json b/TestTables/CMIP6_CORDEX_day.json
deleted file mode 100644
index 7105860..0000000
--- a/TestTables/CMIP6_CORDEX_day.json
+++ /dev/null
@@ -1 +0,0 @@
-no Variable found for CORDEX_day
diff --git a/TestTables/CMIP6_CV.json b/TestTables/CMIP6_CV.json
index 8f5357f..0b0950f 100644
--- a/TestTables/CMIP6_CV.json
+++ b/TestTables/CMIP6_CV.json
@@ -3,7 +3,6 @@
         "required_global_attributes":[
             "Conventions",
             "activity_id",
-            "branch_method",
             "creation_date",
             "data_specs_version",
             "experiment",
@@ -31,24 +30,25 @@
             "table_id",
             "tracking_id",
             "variable_id",
-            "variant_label",
             "variant_label"
         ],
         "version_metadata":{
-            "note":"Add GISS-E2-1 variants",
-            "previous_commit":"c401abb0f2616dec58a20d62a5b781d05595b4cf",
             "author":"Paul J. Durack <durack1 at llnl.gov>",
-            "creation_date":"Wed Dec 14 15:49:55 2016 -0800",
+            "creation_date":"Tue Apr 18 13:42:27 2017 -0700",
             "institution_id":"PCMDI",
-            "latest_tag_point":"3.2.0 (44; gb2f427b)"
+            "latest_tag_point":"3.2.2 (228; g6c2998d)",
+            "note":"Reconfigure source_id format to reflect all model components",
+            "previous_commit":"800edcbe09f0a9bb907a7c3d63248ca5b2928608"
         },
         "activity_id":[
             "AerChemMIP",
             "C4MIP",
             "CFMIP",
             "CMIP",
+            "CORDEX",
             "DAMIP",
             "DCPP",
+            "DynVarMIP",
             "FAFMIP",
             "GMMIP",
             "GeoMIP",
@@ -59,383 +59,759 @@
             "OMIP",
             "PMIP",
             "RFMIP",
+            "SIMIP",
             "ScenarioMIP",
+            "VIACSAB",
             "VolMIP"
         ],
         "institution_id":{
-            "CSIR-CSIRO":"CSIR (Council for Scientific and Industrial Research - Natural Resources and the Environment, Pretoria, 0001, South Africa), CSIRO (Commonwealth Scientific and Industrial Research Organisation and Bureau of Meteorology, Melbourne, Victoria 3208, Australia)",
+            "AWI":"Alfred Wegener Institute, Helmholtz Centre for Polar and Marine Research, Am Handelshafen 12, 27570 Bremerhaven, Germany",
+            "BNU":"Beijing Normal University, Beijing 100875, China",
+            "CAMS":"Chinese Academy of Meteorological Sciences, Beijing 100081, China",
+            "CCCR-IITM":"Centre for Climate Change Research, Indian Institute of Tropical Meteorology Pune, Maharashtra 411 008, India",
             "CCCma":"Canadian Centre for Climate Modelling and Analysis, Victoria, BC V8P 5C2, Canada",
+            "CMCC":"Fondazione Centro Euro-Mediterraneo sui Cambiamenti Climatici, Lecce 73100, Italy",
+            "CNRM-CERFACS":"CNRM (Centre National de Recherches Meteorologiques, Toulouse 31057, France), CERFACS (Centre Europeen de Recherche et de Formation Avancee en Calcul Scientifique, Toulouse 31100, France)",
+            "COLA-CFS":"Center for Ocean-Land-Atmosphere Studies, Fairfax, VA 22030, USA",
+            "CSIR-CSIRO":"CSIR (Council for Scientific and Industrial Research - Natural Resources and the Environment, Pretoria, 0001, South Africa), CSIRO (Commonwealth Scientific and Industrial Research Organisation and Bureau of Meteorology, Melbourne, Victoria 3208, Australia)",
+            "CSIRO-BOM":"Commonwealth Scientific and Industrial Research Organisation and Bureau of Meteorology, Melbourne, Victoria 3208, Australia",
+            "EC-Earth-Consortium":"KNMI, The Netherlands; SMHI, Sweden; DMI, Denmark; AEMET, Spain; Met Eireann, Ireland; CNR-ISAC, Italy; Instituto de Meteorologia, Portugal; FMI, Finland; BSC, Spain; Centro de Geofisica, University of Lisbon, Portugal; ENEA, Italy; Geomar, Germany; Geophysical Institute, University of Bergen, Norway; ICHEC, Ireland; ICTP, Italy; IMAU, The Netherlands; IRV, Sweden;  Lund University, Sweden; Meteorologiska Institutionen, Stockholms University, Sweden; Ni [...]
+            "FIO-RONM":"FIO (First Institute of Oceanography, State Oceanic Administration, Qingdao 266061, China), RONM (Laboratory for Regional Oceanography and Numerical Modeling, Qingdao National Laboratory for Marine Science and Technology, Qingdao 266237, China)",
+            "INM":"Institute for Numerical Mathematics, Moscow 119991, Russia",
+            "INPE":"National Institute for Space Research, Cachoeira Paulista, SP 12630-000, Brazil",
+            "IPSL":"Institut Pierre Simon Laplace, Paris 75252, France",
+            "LASG-IAP":"Institute of Atmospheric Physics, Chinese Academy of Sciences, Beijing 100029, China",
             "MESSy-Consortium":"The Modular Earth Submodel System (MESSy) Consortium, represented by the Institute for Physics of the Atmosphere, Deutsches Zentrum fur Luft- und Raumfahrt (DLR), Wessling, Bavaria 82234, Germany",
             "MIROC":"JAMSTEC (Japan Agency for Marine-Earth Science and Technology, Kanagawa 236-0001, Japan), AORI (Atmosphere and Ocean Research Institute, The University of Tokyo, Chiba 277-8564, Japan), NIES (National Institute for Environmental Studies, Ibaraki 305-8506, Japan), and AICS (RIKEN Advanced Institute for Computational Science, Hyogo 650-0047, Japan)",
             "MOHC":"Met Office Hadley Centre, Fitzroy Road, Exeter, Devon, EX1 3PB, UK",
-            "IPSL":"Institut Pierre Simon Laplace, Paris 75252, France",
-            "EC-Earth-Consortium":"KNMI, The Netherlands; SMHI, Sweden; DMI, Denmark; AEMET, Spain; Met Eireann, Ireland; CNR-ISAC, Italy; Instituto de Meteorologia, Portugal; FMI, Finland; BSC, Spain; Centro de Geofisica, University of Lisbon, Portugal; ENEA, Italy; Geomar, Germany; Geophysical Institute, University of Bergen, Norway; ICHEC, Ireland; ICTP, Italy; IMAU, The Netherlands; IRV, Sweden;  Lund University, Sweden; Meteorologiska Institutionen, Stockholms University, Sweden; Ni [...]
-            "CMCC":"Centro Euro-Mediterraneo per i Cambiamenti Climatici, Bologna 40127, Italy",
-            "CSIRO-BOM":"Commonwealth Scientific and Industrial Research Organisation and Bureau of Meteorology, Melbourne, Victoria 3208, Australia",
-            "COLA-CFS":"Center for Ocean-Land-Atmosphere Studies, Fairfax, VA 22030, USA",
             "MPI-M":"Max Planck Institute for Meteorology, Hamburg 20146, Germany",
+            "MRI":"Meteorological Research Institute, Tsukuba, Ibaraki 305-0052, Japan",
+            "NASA-GISS":"Goddard Institute for Space Studies, New York, NY 10025, USA",
             "NCAR":"National Center for Atmospheric Research, Boulder, CO 80307, USA",
+            "NCC":"NorESM Climate modeling Consortium consisting of CICERO (Center for International Climate and Environmental Research, Oslo 0349), MET-Norway (Norwegian Meteorological Institute, Oslo 0313), NERSC (Nansen Environmental and Remote Sensing Center, Bergen 5006), NILU (Norwegian Institute for Air Research, Kjeller 2027), UiB (University of Bergen, Bergen 5007), UiO (University of Oslo, Oslo 0313) and UNI (Uni Research, Bergen 5008), Norway",
+            "NERC":"Natural Environment Research Council, STFC-RAL, Harwell, Oxford, OX11 0QX, UK",
             "NIMS-KMA":"National Institute of Meteorological Sciences/Korea Meteorological Administration, Climate Research Division, Seoho-bukro 33, Seogwipo-si, Jejudo 63568, Republic of Korea",
-            "CCCR-IITM":"Centre for Climate Change Research, Indian Institute of Tropical Meteorology Pune, Maharashtra 411 008, India",
-            "BNU":"Beijing Normal University, Beijing 100875, China",
+            "NOAA-GFDL":"National Oceanic and Atmospheric Administration, Geophysical Fluid Dynamics Laboratory, Princeton, NJ 08540, USA",
             "NOAA-NCEP":"National Oceanic and Atmospheric Administration, National Centers for Environmental Prediction, Camp Springs, MD 20746, USA",
-            "CNRM-CERFACS":"CNRM (Centre National de Recherches Meteorologiques, Toulouse 31057, France), CERFACS (Centre Europeen de Recherche et de Formation Avancee en Calcul Scientifique, Toulouse 31100, France)",
-            "MRI":"Meteorological Research Institute, Tsukuba, Ibaraki 305-0052, Japan",
-            "NASA-GISS":"Goddard Institute for Space Studies, New York, NY 10025, USA",
+            "NUIST":"Nanjing University of Information Science and Technology, Nanjing, 210044, China",
             "PCMDI":"Program for Climate Model Diagnosis and Intercomparison, Lawrence Livermore National Laboratory, Livermore, CA 94550, USA",
-            "FIO":"The First Institution of Oceanography (SOA), Qingdao, China",
-            "NOAA-GFDL":"National Oceanic and Atmospheric Administration, Geophysical Fluid Dynamics Laboratory, Princeton, NJ 08540, USA",
-            "LASG-IAP":"Institute of Atmospheric Physics, Chinese Academy of Sciences, Beijing 100029, China",
-            "INM":"Institute for Numerical Mathematics, Moscow 119991, Russia",
-            "NCC":"NorESM Climate modeling Consortium consisting of CICERO (Center for International Climate and Environmental Research, Oslo 0349),MET-Norway (Norwegian Meteorological Institute, Oslo 0313),NERSC (Nansen Environmental and Remote Sensing Center, Bergen 5006),NILU (Norwegian Institute for Air Research, Kjeller 2027),UiB (University of Bergen, Bergen 5007),UiO (University of Oslo, Oslo 0313) and UNI (Uni Research, Bergen 5008), Norway",
-            "NUIST":"Nanjing University of Information Science & Technology, Nanjing, 210044, China"
+            "THU":"Department of Earth System Science, Tsinghua University, Beijing 100084, China"
         },
         "source_id":{
-            "GISS-E2-1G":{
-                "label_extended":"GISS-E2.1G",
-                "atmospheric_chemistry":"varies with physics-version (p==1 Non-interactive, p>1 GPUCCINI)",
-                "atmosphere":"GISS-E2.1 (90 x 144 2x2.5; 40 levels; top level 0.1hPa)",
-                "ocean_biogeochemistry":"None",
-                "release_year":"2016",
+            "ACCESS-1-0":{
+                "activity_participation":[
+                    "CMIP"
+                ],
+                "cohort":[
+                    "CMIP5"
+                ],
+                "institution_id":[
+                    "CSIRO-BOM"
+                ],
+                "source_id":"ACCESS-1-0",
+                "source":"ACCESS 1.0 (2011): \naerosol: CLASSIC (v1.0)\natmos: HadGAM2 (r1.1; N96, 192 x 145 longitude/latitude; 38 levels; top level 39255 m)\nland: MOSES2.2\nocean: ACCESS-OM (MOM4p1; tripolar primarily 1deg, 360 x 300 longitude/latitude; 50 levels; top grid cell 0-10 m)\nseaIce: CICE4.1"
+            },
+            "AWI-CM-1-0":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "AWI"
+                ],
+                "source_id":"AWI-CM-1-0",
+                "source":"AWI-CM 1.0 (2017): \natmos: ECHAM6.3.02p4 (384 x 192 T127L95; 95 levels; top level 80000 m)\nland: JSBACH 3.10\nocean: FESOM 1.4 (unstructured grid in the horizontal with 830305 wet nodes; 46 levels; top grid cell 0-5 m)\nseaIce: FESOM 1.4"
+            },
+            "BNU-ESM-1-1":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"GISS SI",
-                "label":"GISS-E2.1G",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "NASA-GISS"
+                    "BNU"
+                ],
+                "source_id":"BNU-ESM-1-1",
+                "source":"BNU-ESM 1.1 (2016): \naerosol: CAM-chem; semi-interactive\natmos: CAM4 (FV, 144 x 96; 26 levels; top level 2.194 mb)\nland: CoLM version 2014 with carbon-nitrogen interactions\nocean: MOM4p1 (tripolar, 360x200, primarily 1deg latitude/longitude, down to 1/3deg within 30deg of the equatorial tropics; 50 levels; top grid cell 0-10m)\nocnBgchem: Dynamic ecosystem-carbon model version 1\nseaIce: CICE4.1"
+            },
+            "CAMS_CSM1-0":{
+                "activity_participation":[
+                    "CMIP"
                 ],
-                "land_surface":"GISS LSM",
-                "aerosol":"varies with physics-version (p==1 None, p==3 OMA, p==4 TOMAS, p==5 MATRIX) ",
-                "source_id":"GISS-E2-1G",
-                "ocean":"GISS Ocean (1 deg latitude/longitude; 32 levels; top grid cell 0-10m)",
-                "land_ice":"Fixed"
-            },
-            "EC-Earth-3":{
-                "label_extended":"EC-Earth v3.2.x",
-                "atmospheric_chemistry":"None",
-                "atmosphere":"IFS cy36r4 (TL255, linearly reduced Gaussian grid equivalent to 512 x 256; 91 levels; top level 1 Pa)",
-                "ocean_biogeochemistry":"None",
-                "release_year":"2017",
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "CAMS"
+                ],
+                "source_id":"CAMS_CSM1-0",
+                "source":"CAMS_CSM 1.0 (2016): \naerosol: none\natmos: ECHAM5_CAMS (T106; 320 x 160 longitude/latitude; 31 levels; top level 10 mb)\natmosChem: none\nland: CoLM 1.0\nlandIce: none\nocean: MOM4 (tripolar; 360 x 200 longitude/latitude, primarily 1deg latitude/longitude, down to 1/3deg within 30deg of the equatorial tropics; 50 levels; top grid cell 0-10 m)\nocnBgchem: none\nseaIce: SIS 1.0"
+            },
+            "CIESM":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"LIM3 (same version as ocean)",
-                "label":"EC-Earth 3",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "EC-Earth-Consortium"
+                    "THU"
                 ],
-                "land_surface":"H-TESSEL (same version as atmosphere)",
-                "aerosol":"None",
-                "source_id":"EC-Earth-3",
-                "ocean":"NEMO3.6 (ORCA1: tripolar, 360x200; 75 levels; top grid cell 5m)",
-                "land_ice":"None"
+                "source_id":"CIESM",
+                "source":"CIESM (2017): \naerosol: MAM4\natmos: CIESM-AM (FV/FD, 288 x 192; 30 levels; top level 2.255 hPa)\natmosChem: trop_mam4\nland: CIESM-LM (modified CLM4.5)\nocean: CIESM-OM (FD, SCCGrid Displaced Pole, 720x560; 46 levels; top grid cell 0-6 m)\nseaIce: CICE4"
             },
-            "GISS-E2-1H":{
-                "label_extended":"GISS-E2.1H",
-                "atmospheric_chemistry":"varies with physics-version (p==1 Non-interactive, p>1 GPUCCINI)",
-                "atmosphere":"GISS-E2.1 (90 x 144 2x2.5; 40 levels; top level 0.1hPa)",
-                "ocean_biogeochemistry":"None",
-                "release_year":"2016",
+            "CNRM-CM6-1":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "CNRM-CERFACS"
+                ],
+                "source_id":"CNRM-CM6-1",
+                "source":"CNRM-CM6-1 (2016): \naerosol: climatological fields computed by TACTIC (v2.0)\natmos: Arpege 6.2 (Tl127; 91 levels; top level 78.4 km)\natmosChem: OZL_v2\nland: Surfex 8.0c\nocean: Nemo 3.6 (eORCA1; tripolar primarily 1deg latitude/longitude; 75 levels; top grid cell 0-1 m)\nseaIce: Gelato 6.1"
+            },
+            "CNRM-CM6-1-HR":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"GISS SI",
-                "label":"GISS-E2.1H",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "NASA-GISS"
+                    "CNRM-CERFACS"
                 ],
-                "land_surface":"GISS LSM",
-                "aerosol":"varies with physics-version (p==1 None, p==3 OMA, p==4 TOMAS, p==5 MATRIX) ",
-                "source_id":"GISS-E2-1H",
-                "ocean":"HYCOM Ocean (tripolar grid; ~1 deg latitude/longitude; 26 levels; top grid cell 0-10m)",
-                "land_ice":"Fixed"
+                "source_id":"CNRM-CM6-1-HR",
+                "source":"CNRM-CM6-1-HR (2016): \naerosol: climatological fields computed by TACTIC (v2.0)\natmos: Arpege 6.2 (Tl359; 91 levels; top level 78.4 km)\natmosChem: OZL_v2\nland: Surfex 8.0c\nocean: Nemo 3.6 (eORCA025; tripolar primarily 1/4deg latitude/longitude; 75 levels; top grid cell 0-1 m)\nseaIce: Gelato 6.1"
             },
-            "BNU-ESM-1-1":{
-                "label_extended":"BNU-ESM 1.1",
-                "atmospheric_chemistry":"None",
-                "atmosphere":"CAM4 (FV, 144 x 96; 26 levels; top level 2.194 mb)",
-                "ocean_biogeochemistry":"Dynamic ecosystem-carbon model version 1",
-                "release_year":"2016",
+            "CNRM-ESM2-1":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "CNRM-CERFACS"
+                ],
+                "source_id":"CNRM-ESM2-1",
+                "source":"CNRM-ESM2-1 (2016): \naerosol: TACTIC (v2.0)\natmos: Arpege 6.2 (Tl127; 91 levels; top level 78.4 km)\natmosChem: REPROBUS-C (v2.0)\nland: Surfex 8.0c\nocean: Nemo 3.6 (eORCA1; tripolar primarily 1deg latitude/longitude; 75 levels; top grid cell 0-1 m)\nocnBgchem: Pisces 2.s\nseaIce: Gelato 6.1"
+            },
+            "CNRM-ESM2-1-HR":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"CICE4.1",
-                "label":"BNU-ESM 1.1",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "BNU"
+                    "CNRM-CERFACS"
                 ],
-                "land_surface":"CoLM version 2014 with carbon-nitrogen interactions",
-                "aerosol":"CAM-chem; semi-interactive",
-                "source_id":"BNU-ESM-1-1",
-                "ocean":"MOM4p1 (tripolar, 360x200, primarily 1deg latitude/longitude, down to 1/3deg within 30deg of the equatorial tropics; 50 levels; top grid cell 0-10m)",
-                "land_ice":"None"
+                "source_id":"CNRM-ESM2-1-HR",
+                "source":"CNRM-ESM2-1-HR (2016): \naerosol: TACTIC (v2.0)\natmos: Arpege 6.2 (Tl359; 91 levels; top level 78.4 km)\natmosChem: OZL_v2\nland: Surfex 8.0c\nocean: Nemo 3.6 (eORCA025; tripolar primarily 1/4deg latitude/longitude; 75 levels; top grid cell 0-1 m)\nocnBgchem: Pisces 2.s\nseaIce: Gelato 6.1"
             },
-            "PCMDI-test-1-0":{
-                "label_extended":"PCMDI-test 1.0 (This entry is free text for users to contribute verbose information)",
-                "atmospheric_chemistry":"None",
-                "atmosphere":"Earth1.0-gettingHotter (360x180; 50 levels; top level 0.1 mb)",
-                "ocean_biogeochemistry":"None",
-                "release_year":"1989",
+            "EC-Earth3":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
-                    "CMIP6"
+                    "Registered"
                 ],
-                "sea_ice":"Declining1.0-warming",
-                "label":"PCMDI-test 1.0",
                 "institution_id":[
-                    "PCMDI"
+                    "EC-Earth-Consortium"
                 ],
-                "land_surface":"Earth1.0",
-                "aerosol":"None",
-                "source_id":"PCMDI-test-1-0",
-                "ocean":"BlueMarble1.0-warming (360x180; 50 levels; top grid cell 0-10m)",
-                "land_ice":"None"
+                "source_id":"EC-Earth3",
+                "source":"EC-Earth3 (2017): \natmos: IFS cy36r4 (TL255, linearly reduced Gaussian grid equivalent to 512 x 256, 91 levels, top level: 0,01 hPa)\nland: HTESSEL (land surface scheme built in IFS)\nocean: NEMO3.6 (ORCA1 tripolar primarily 1 deg latitude/longitude with meridional refinement down to 1/3 degree in the tropics; 75 levels; top grid cell 5 m)\nseaIce: LIM3"
             },
-            "NorESM2-LMEC":{
-                "label_extended":"NorESM2-LMEC (low atmosphere-medium ocean resolution, GHG emission driven, complex atmospheric chemistry)",
-                "atmospheric_chemistry":"OsloChemComp",
-                "atmosphere":"CAM-OSLO (2 degree resolution; 144 x 96; 32 levels; top level 3 mb)",
-                "ocean_biogeochemistry":"HAMOCC",
-                "release_year":"2017",
+            "EC-Earth3-AerChem":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "EC-Earth-Consortium"
+                ],
+                "source_id":"EC-Earth3-AerChem",
+                "source":"EC-Earth3-AerChem (2017): \naerosol: TM5\natmos: IFS cy36r4 (TL255, linearly reduced Gaussian grid equivalent to 512 x 256, 91 levels, top level: 0.01 hPa)\natmosChem: TM5 (3 deg. (long.) x 2 deg. (lat.), 34 levels, top level: 0.1 hPa\nland: HTESSEL (land surface scheme built in IFS)\nocean: NEMO3.6 (ORCA1 tripolar primarily 1 deg latitude/longitude with meridional refinement down to 1/3 degree in the tropics; 75 levels; top grid cell 5 m)\nseaIce: LIM3"
+            },
+            "EC-Earth3-CC":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"CICE",
-                "label":"NorESM2-LMEC",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "NCC"
+                    "EC-Earth-Consortium"
                 ],
-                "land_surface":"CLM",
-                "aerosol":"OsloAero",
-                "source_id":"NorESM2-LMEC",
-                "ocean":"MICOM (1 degree resolution; 360 x 384; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])",
-                "land_ice":"CISM"
+                "source_id":"EC-Earth3-CC",
+                "source":"EC-Earth3-CC (2017): \natmos: IFS cy36r4 (TL255, linearly reduced Gaussian grid equivalent to 512 x 256, 91 levels, top level: 0.01 hPa)\natmosChem: TM5 (3 deg. (long.) x 2 deg. (lat.), 34 levels, top level: 0.1 hPa\nland: LPJ-GUESS v4\nocean: NEMO3.6 (ORCA1 tripolar primarily 1 deg latitude/longitude with meridional refinement down to 1/3 degree in the tropics; 75 levels; top grid cell 5 m)\nocnBgchem: PISCES v2\nseaIce: LIM3"
             },
-            "ACCESS-1-0":{
-                "label_extended":"ACCESS 1.0 (This entry is free text for users to contribute verbose information)",
-                "atmospheric_chemistry":"None",
-                "atmosphere":"HadGAM2 (r1.1; 192 x 145 N96; 38 levels; top level 39255m)",
-                "ocean_biogeochemistry":"None",
-                "release_year":"2011",
+            "EC-Earth3-GrIS":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
-                    "CMIP5"
+                    "Registered"
                 ],
-                "sea_ice":"CICE4.1",
-                "label":"ACCESS 1.0",
                 "institution_id":[
-                    "CSIRO-BOM"
+                    "EC-Earth-Consortium"
+                ],
+                "source_id":"EC-Earth3-GrIS",
+                "source":"EC-Earth3-GrIS (2017): \natmos: IFS cy36r4 (TL255, linearly reduced Gaussian grid equivalent to 512 x 256, 91 levels, top level: 0.01 hPa)\nland: HTESSEL (land surface scheme built in IFS)\nlandIce: PISM 0.7 (5 km x 5 km, L442)\nocean: NEMO3.6 (ORCA1 tripolar primarily 1 deg latitude/longitude with meridional refinement down to 1/3 degree in the tropics; 75 levels; top grid cell 5 m)\nseaIce: LIM3"
+            },
+            "EC-Earth3-HR":{
+                "activity_participation":[
+                    ""
                 ],
-                "land_surface":"MOSES2.2",
-                "aerosol":"CLASSIC (v1.0)",
-                "source_id":"ACCESS-1-0",
-                "ocean":"ACCESS-OM (MOM4p1; tripolar primarily 1deg latitude/longitude; 50 levels; top grid cell 0-10m)",
-                "land_ice":"None"
-            },
-            "EC-Earth-3-HR":{
-                "label_extended":"EC-Earth v3.2.x at high resolution",
-                "atmospheric_chemistry":"None",
-                "atmosphere":"IFS cy36r4 (TL511, linearly reduced Gaussian grid equivalent to 1024 x 512; 91 levels; top level 1 Pa)",
-                "ocean_biogeochemistry":"None",
-                "release_year":"2017",
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "EC-Earth-Consortium"
+                ],
+                "source_id":"EC-Earth3-HR",
+                "source":"EC-Earth3-HR (2017): \natmos: IFS cy36r4 (TL511, linearly reduced Gaussian grid equivalent to 1024 x 512; 91 levels; top level 0.01 hPa)\nland: HTESSEL (land surface scheme built in IFS)\nocean: NEMO3.6 (tripolar, 1442x1921; 75 levels; top grid cell 5m)\nseaIce: LIM3"
+            },
+            "EC-Earth3-LR":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"LIM3 (same version as ocean)",
-                "label":"EC-Earth 3-HR",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
                     "EC-Earth-Consortium"
                 ],
-                "land_surface":"H-TESSEL (same version as atmosphere)",
-                "aerosol":"None",
-                "source_id":"EC-Earth-3-HR",
-                "ocean":"NEMO3.6 (tripolar, 1442x1921; 75 levels; top grid cell 5m)",
-                "land_ice":"None"
+                "source_id":"EC-Earth3-LR",
+                "source":"EC-Earth3-LR (2017): \natmos: IFS cy36r4 (TL159, linearly reduced Gaussian grid equivalent to 320 x 160; 62 levels; top level 5 hPa)\nland: HTESSEL (land surface scheme built in IFS)\nocean: NEMO3.6 (ORCA1 tripolar primarily 1 deg latitude/longitude with meridional refinement down to 1/3 degree in the tropics; 75 levels; top grid cell 5 m)\nseaIce: LIM3"
             },
-            "IITM-ESM":{
-                "label_extended":"IITM-ESM",
-                "atmospheric_chemistry":"None",
-                "atmosphere":"GFS (192 x 94 T62; 64 levels; top level 0.2 mb)",
-                "ocean_biogeochemistry":"TOPAZ",
-                "release_year":"2015",
+            "EC-Earth3-Veg":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "EC-Earth-Consortium"
+                ],
+                "source_id":"EC-Earth3-Veg",
+                "source":"EC-Earth3-Veg (2017): \natmos: IFS cy36r4 (TL255, linearly reduced Gaussian grid equivalent to 512 x 256, 91 levels, top level: 0.01 hPa)\nland: LPJ-GUESS v4\nocean: NEMO3.6 (ORCA1 tripolar primarily 1 deg latitude/longitude with meridional refinement down to 1/3 degree in the tropics; 75 levels; top grid cell 5 m)\nseaIce: LIM3"
+            },
+            "EC-Earth3-Veg-LR":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"SIS",
-                "label":"IITM-ESM",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "CCCR-IITM"
+                    "EC-Earth-Consortium"
                 ],
-                "land_surface":"NOAH LSM",
-                "aerosol":"unnamed (prescribed MAC-v2)",
-                "source_id":"IITM-ESM",
-                "ocean":"MOM4p1 (tripolar, 360x200; 50 levels; top grid cell 5m)",
-                "land_ice":"None"
+                "source_id":"EC-Earth3-Veg-LR",
+                "source":"EC-Earth3-Veg-LR (2017): \natmos: IFS cy36r4 (TL159, linearly reduced Gaussian grid equivalent to 320 x 160; 62 levels; top level 5 hPa)\nland: LPJ-GUESS v4\nocean: NEMO3.6 (ORCA1 tripolar primarily 1 deg latitude/longitude with meridional refinement down to 1/3 degree in the tropics; 75 levels; top grid cell 5 m)\nseaIce: LIM3"
             },
-            "VRESM-1-0":{
-                "label_extended":"VRESM 1.0 (Variable-resolution Earth System Model 1.0)",
-                "atmospheric_chemistry":"None",
-                "atmosphere":"VCAM-1.0 (192 x 192 x 6 C192; 35 levels; top level 35km)",
-                "ocean_biogeochemistry":"PISCES v3.4socco",
-                "release_year":"2016",
+            "EMAC-2-53-AerChem":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MESSy-Consortium"
+                ],
+                "source_id":"EMAC-2-53-AerChem",
+                "source":"EMAC-2-53-AerChem (2017): \naerosol: gmxe 2.2.x\natmos: ECHAM5.3.02 (modified; spectral T42; 128 x 64 longitude/latitude; 90 levels; top level 0.001 hPa)\natmosChem: MECCA 3.8.x\nland: same as Atmosphere\nocean: MPIOM 1.3.0-beta (bipolar GR1.5; approximately 1.5deg latitude/longitude; 40 levels; top grid cell 0-12 m)\nseaIce: thermodynamic (Semtner zero-layer) dynamic (Hibler 79) sea ice model"
+            },
+            "EMAC-2-53-Vol":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"CSIR-ICE (visco-plastic)",
-                "label":"VRESM 1.0",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "CSIR-CSIRO"
+                    "MESSy-Consortium"
                 ],
-                "land_surface":"CABLE v2.2.3",
-                "aerosol":"Rotstayn-1.0",
-                "source_id":"VRESM-1-0",
-                "ocean":"VCOM-1.0 (192 x 192 x 6 C192; 35 levels; top grid cell 0-10m)",
-                "land_ice":"None"
+                "source_id":"EMAC-2-53-Vol",
+                "source":"EMAC-2-53-Vol (2017): \naerosol: gmxe 2.2.x\natmos: ECHAM5.3.2 (modified; spectral T42; 128 x 64 longitude/latitude; 90 levels; top level 0.001 hPa)\natmosChem: MECCA 3.8.x\nland: same as Atmosphere\nocean: MPIOM 1.3.0-beta (bipolar GR1.5; approximately 1.5deg reducing toward the poles, 256 x 220 longitude/latitude; 40 levels; top grid cell 0-12 m)\nseaIce: thermodynamic (Semtner zero-layer) dynamic (Hibler 79) sea ice model"
             },
-            "NorESM2-HH":{
-                "label_extended":"NorESM2-HH (high atmosphere-high ocean resolution, GHG concentration driven)",
-                "atmospheric_chemistry":"OsloChemSimp",
-                "atmosphere":"CAM-OSLO (0.25 degree resolution; 1152 x 768; 32 levels; top level 3 mb)",
-                "ocean_biogeochemistry":"HAMOCC",
-                "release_year":"2018",
+            "GFDL-AM4":{
+                "activity_participation":[
+                    "CMIP"
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "NOAA-GFDL"
+                ],
+                "source_id":"GFDL-AM4",
+                "source":"GFDL-AM4 (2017): \naerosol: interactive\natmos: GFDL-AM4.0 (Cubed-sphere (c96) - 1 degree nominal horizontal resolution; 360x180 longitude/latitude; 32 levels; model top: 1 hPa)\natmosChem: fast chemistry, aerosol only\nland: GFDL-LM4.0\nlandIce: GFDL-LM4.0\nocean: none\nocnBgchem: none\nseaIce: none"
+            },
+            "GFDL-CM4":{
+                "activity_participation":[
+                    "CMIP",
+                    "OMIP"
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "NOAA-GFDL"
+                ],
+                "source_id":"GFDL-CM4",
+                "source":"GFDL-CM4 (2017): \naerosol: interactive\natmos: GFDL-AM4.1 (Cubed-sphere (c96) - 1 degree nominal horizontal resolution; 360x180 longitude/latitude; 32 levels; model top: 1 hPa)\natmosChem: unnamed (fast chemistry, aerosol only)\nland: GFDL-LM4.0\nlandIce: GFDL-LM4.0\nocean: GFDL-MOM6 (tripolar - nominal 0.25 deg latitude/longitude; 1440x720 longitude/latitude; 75 levels; top grid cell 0-2 m)\nocnBgchem: none\nseaIce: SIS2"
+            },
+            "GFDL-ESM4":{
+                "activity_participation":[
+                    "AerChemMIP",
+                    "C4MIP",
+                    "CFMIP",
+                    "CMIP",
+                    "DAMIP",
+                    "DynVarMIP",
+                    "GMMIP",
+                    "LUMIP",
+                    "OMIP",
+                    "RFMIP",
+                    "ScenarioMIP"
+                ],
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "NOAA-GFDL"
+                ],
+                "source_id":"GFDL-ESM4",
+                "source":"GFDL-ESM4 (2017): \naerosol: interactive\natmos: GFDL-AM4.1 (Cubed-sphere (c96) - 1 degree nominal horizontal resolution; 360x180 longitude/latitude; 48 levels, model top: 1 Pa)\natmosChem: GFDL-ATMCHEM4.1 (full atmospheric chemistry)\nland: GFDL-LM4.1\nlandIce: GFDL-LM4.1\nocean: GFDL-MOM6 (tripolar - nominal 0.5 deg; 720x360 longitude/latitude; 75 levels; top grid cell 0-2 m)\nocnBgchem: COBALT 2.0\nseaIce: SIS2"
+            },
+            "GISS-E2-1G":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"CICE",
-                "label":"NorESM2-HH",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "NCC"
+                    "NASA-GISS"
                 ],
-                "land_surface":"CLM",
-                "aerosol":"OsloAero",
-                "source_id":"NorESM2-HH",
-                "ocean":"MICOM (0.25 degree resolution; 1440 x 1152; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])",
-                "land_ice":"CISM"
+                "source_id":"GISS-E2-1G",
+                "source":"GISS-E2.1G (2016): \natmos: GISS-E2.1 (90 x 144 2x2.5; 40 levels; top level 0.1hPa)\natmosChem: varies with physics-version (p==1 Non-interactive, p>1 GPUCCINI)\nland: GISS LSM\nlandIce: Fixed\nocean: GISS Ocean (1 deg latitude/longitude; 32 levels; top grid cell 0-10m)\nseaIce: GISS SI"
             },
-            "NorESM2-LM":{
-                "label_extended":"NorESM2-LM (low atmosphere-medium ocean resolution, GHG concentration driven)",
-                "atmospheric_chemistry":"OsloChemSimp",
-                "atmosphere":"CAM-OSLO (2 degree resolution; 144 x 96; 32 levels; top level 3 mb)",
-                "ocean_biogeochemistry":"HAMOCC",
-                "release_year":"2017",
+            "GISS-E2-1H":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "NASA-GISS"
+                ],
+                "source_id":"GISS-E2-1H",
+                "source":"GISS-E2.1H (2016): \natmos: GISS-E2.1 (90 x 144 2x2.5; 40 levels; top level 0.1hPa)\natmosChem: varies with physics-version (p==1 Non-interactive, p>1 GPUCCINI)\nland: GISS LSM\nlandIce: Fixed\nocean: HYCOM Ocean (tripolar grid; ~1 deg latitude/longitude; 26 levels; top grid cell 0-10m)\nseaIce: GISS SI"
+            },
+            "HadGEM3-GC31-HH":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"CICE",
-                "label":"NorESM2-LM",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "NCC"
+                    "MOHC"
                 ],
-                "land_surface":"CLM",
-                "aerosol":"OsloAero",
-                "source_id":"NorESM2-LM",
-                "ocean":"MICOM (1 degree resolution; 360 x 384; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])",
-                "land_ice":"CISM"
+                "source_id":"HadGEM3-GC31-HH",
+                "source":"HadGEM3-GC31-HH (2016): \naerosol: UKCA-GLOMAP-mode\natmos: MetUM-HadGEM3-GA7.1 (1024 x 768 N512; 85 levels; top level 85km)\nland: JULES-HadGEM3-GL7.1\nocean: NEMO-HadGEM3-GO6.0 (ORCA12 tripolar primarily 1/12 deg latitude/longitude; 75 levels; top grid cell 0-1m)\nseaIce: CICE-HadGEM3-GSI8 (ORCA12 tripolar primarily 1/12 deg latitude/longitude)"
             },
-            "NorESM2-MH":{
-                "label_extended":"NorESM2-MH",
-                "atmospheric_chemistry":"OsloChemSimp",
-                "atmosphere":"CAM-OSLO (1 degree resolution; 288 x 192; 32 levels; top level 3 mb)",
-                "ocean_biogeochemistry":"HAMOCC",
-                "release_year":"2017",
+            "HadGEM3-GC31-HM":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MOHC"
+                ],
+                "source_id":"HadGEM3-GC31-HM",
+                "source":"HadGEM3-GC31-HM (2016): \naerosol: UKCA-GLOMAP-mode\natmos: MetUM-HadGEM3-GA7.1 (1024 x 768 N512; 85 levels; top level 85km)\nland: JULES-HadGEM3-GL7.1\nocean: NEMO-HadGEM3-GO6.0 (ORCA025 tripolar primarily 0.25 deg latitude/longitude; 75 levels; top grid cell 0-1m)\nseaIce: CICE-HadGEM3-GSI8 (ORCA025 tripolar primarily 0.25 deg latitude/longitude)"
+            },
+            "HadGEM3-GC31-LL":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"CICE",
-                "label":"NorESM2-MH",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "NCC"
+                    "MOHC"
                 ],
-                "land_surface":"CLM",
-                "aerosol":"OsloAero",
-                "source_id":"NorESM2-MH",
-                "ocean":"MICOM (0.25 degree resolution; 1440 x 1152; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])",
-                "land_ice":"CISM"
+                "source_id":"HadGEM3-GC31-LL",
+                "source":"HadGEM3-GC31-LL (2016): \naerosol: UKCA-GLOMAP-mode\natmos: MetUM-HadGEM3-GA7.1 (192 x 144 N96; 85 levels; top level 85km)\nland: JULES-HadGEM3-GL7.1\nocean: NEMO-HadGEM3-GO6.0 (ORCA1 tripolar primarily 1 deg latitude/longitude with meridional refinement down to 1/3 degree in the tropics; 75 levels; top grid cell 0-1m)\nseaIce: CICE-HadGEM3-GSI8 (ORCA1 tripolar primarily 1 deg latitude/longitude)"
             },
-            "NorESM2-MM":{
-                "label_extended":"NorESM2-MM (medium atmosphere-medium ocean resolution, GHG concentration driven)",
-                "atmospheric_chemistry":"OsloChemSimp",
-                "atmosphere":"CAM-OSLO (1 degree resolution; 288 x 192; 32 levels; top level 3 mb)",
-                "ocean_biogeochemistry":"HAMOCC",
-                "release_year":"2017",
+            "HadGEM3-GC31-MM":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MOHC"
+                ],
+                "source_id":"HadGEM3-GC31-MM",
+                "source":"HadGEM3-GC31-MM (2016): \naerosol: UKCA-GLOMAP-mode\natmos: MetUM-HadGEM3-GA7.1 (432 x 324 N216; 85 levels; top level 85km)\nland: JULES-HadGEM3-GL7.1\nocean: NEMO-HadGEM3-GO6.0 (ORCA025 tripolar primarily 0.25 deg latitude/longitude; 75 levels; top grid cell 0-1m)\nseaIce: CICE-HadGEM3-GSI8 (ORCA025 tripolar primarily 0.25 deg latitude/longitude)"
+            },
+            "IITM-ESM":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"CICE",
-                "label":"NorESM2-MM",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "NCC"
+                    "CCCR-IITM"
                 ],
-                "land_surface":"CLM",
-                "aerosol":"OsloAero",
-                "source_id":"NorESM2-MM",
-                "ocean":"MICOM (1 degree resolution; 360 x 384; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])",
-                "land_ice":"CISM"
+                "source_id":"IITM-ESM",
+                "source":"IITM-ESM (2015): \naerosol: unnamed (prescribed MAC-v2)\natmos: GFS (192 x 94 T62; 64 levels; top level 0.2 mb)\nland: NOAH LSM\nocean: MOM4p1 (tripolar, 360x200; 50 levels; top grid cell 5m)\nocnBgchem: TOPAZ\nseaIce: SIS"
             },
-            "NorESM2-LME":{
-                "label_extended":"NorESM2-LME (low atmosphere-medium ocean resolution, GHG emission driven)",
-                "atmospheric_chemistry":"OsloChemSimp",
-                "atmosphere":"CAM-OSLO (2 degree resolution; 144 x 96; 32 levels; top level 3 mb)",
-                "ocean_biogeochemistry":"HAMOCC",
-                "release_year":"2017",
+            "MIROC-ES2H":{
+                "activity_participation":[
+                    ""
+                ],
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MIROC"
+                ],
+                "source_id":"MIROC-ES2H",
+                "source":"MIROC-ES2H (2017): \naerosol: SPRINTARS6.0\natmos: CCSR AGCM (T85; 256 x 128 longitude/latitude; 81 levels; top level 0.004 hPa)\natmosChem: CHASER4.0\nland: MATSIRO6.0+VISIT-e ver.1.0\nocean: COCO4.9 (tripolar primarily 1deg; 360 x 256 longitude/latitude; 63 levels; top grid cell 0-2 m)\nocnBgchem: OECO ver.2.0; NPZD-type with C/N/P/Fe/O cycles\nseaIce: COCO4.9"
+            },
+            "MIROC-ES2L":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"CICE",
-                "label":"NorESM2-LME",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "NCC"
+                    "MIROC"
+                ],
+                "source_id":"MIROC-ES2L",
+                "source":"MIROC-ES2L (2017): \naerosol: SPRINTARS6.0\natmos: CCSR AGCM (T42; 128 x 64 longitude/latitude; 40 levels; top level 3 hPa)\nland: MATSIRO6.0+VISIT-e ver.1.0\nocean: COCO4.9 (tripolar primarily 1deg; 360 x 256 longitude/latitude; 63 levels; top grid cell 0-2 m)\nocnBgchem: OECO ver.2.0; NPZD-type with C/N/P/Fe/O cycles\nseaIce: COCO4.9"
+            },
+            "MIROC6":{
+                "activity_participation":[
+                    ""
                 ],
-                "land_surface":"CLM",
-                "aerosol":"OsloAero",
-                "source_id":"NorESM2-LME",
-                "ocean":"MICOM (1 degree resolution; 360 x 384; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])",
-                "land_ice":"CISM"
-            },
-            "EC-Earth-3-LR":{
-                "label_extended":"EC-Earth v3.2.x at low resolution",
-                "atmospheric_chemistry":"None",
-                "atmosphere":"IFS cy36r4 (TL159, linearly reduced Gaussian grid equivalent to 320 x 160; 62 levels; top level 5 Pa)",
-                "ocean_biogeochemistry":"None",
-                "release_year":"2017",
                 "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MIROC"
+                ],
+                "source_id":"MIROC6",
+                "source":"MIROC6 (2017): \naerosol: SPRINTARS6.0\natmos: CCSR AGCM (T85; 256x128; 81 levels; top level 0.004 hPa)\nland: MATSIRO6.0\nocean: COCO4.9 (360x256x63; tripolar primarily 1deg; 63 levels; top grid cell 0-2 m)\nseaIce: COCO4.9"
+            },
+            "MPIESM-1-2-HR":{
+                "activity_participation":[
                     ""
                 ],
-                "sea_ice":"LIM3 (same version as ocean)",
-                "label":"EC-Earth 3-LR",
+                "cohort":[
+                    "Registered"
+                ],
                 "institution_id":[
-                    "EC-Earth-Consortium"
+                    "MPI-M"
                 ],
-                "land_surface":"H-TESSEL (same version as atmosphere)",
-                "aerosol":"None",
-                "source_id":"EC-Earth-3-LR",
-                "ocean":"NEMO3.6 (ORCA1: tripolar, 360x200; 75 levels; top grid cell 5m)",
-                "land_ice":"None"
-            }
-        },
-        "source_type":[
-            "AER",
-            "AGCM",
-            "AOGCM",
-            "BGCM",
-            "CHEM",
-            "ESM",
-            "ISM",
-            "LAND",
-            "OGCM",
-            "RAD",
-            "SLAB"
-        ],
-        "frequency":[
-            "3hr",
-            "6hr",
-            "day",
-            "fx",
-            "mon",
-            "monClim",
-            "subhr",
-            "yr"
-        ],
-        "grid_label":[
+                "source_id":"MPIESM-1-2-HR",
+                "source":"MPIESM1.2-HR (2017): \natmos: ECHAM6.3 (spectral T127; 384 x 192 longitude/latitude; 95 levels; top level 0.01 hPa)\nland: JSBACH3.2\nocean: MPIOM1.63 (tripolar TP04; approximately 0.4deg latitude/longitude; 40 levels; top grid cell 0-12 m)\nocnBgchem: HAMOCC\nseaIce: thermodynamic (Semtner zero-layer) dynamic (Hibler 79) sea ice model"
+            },
+            "MPIESM-1-2-LR":{
+                "activity_participation":[
+                    ""
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MPI-M"
+                ],
+                "source_id":"MPIESM-1-2-LR",
+                "source":"MPIESM1.2-LR (2017): \natmos: ECHAM6.3 (spectral T63; 192 x 96 longitude/latitude; 47 levels; top level 0.01 hPa)\nland: JSBACH3.2\nocean: MPIOM1.63 (bipolar GR1.5; approximately 1.5deg latitude/longitude; 40 levels; top grid cell 0-12 m)\nocnBgchem: HAMOCC\nseaIce: thermodynamic (Semtner zero-layer) dynamic (Hibler 79) sea ice model"
+            },
+            "MPIESM-2-LR":{
+                "activity_participation":[
+                    ""
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MPI-M"
+                ],
+                "source_id":"MPIESM-2-LR",
+                "source":"MPIESM2 (2017): \natmos: ICON-AES (icosahedral/triangles; 160 km; 47 levels; top level 80 km)\nland: JSBACH4.2\nocean: ICON-OES (icosahedral/triangles; 40 km; 40 levels; top grid cell 0-12 m)\nocnBgchem: HAMOCC\nseaIce: thermodynamic (Semtner zero-layer) dynamic (Hibler 79) sea ice model"
+            },
+            "MRI-ESM2-0":{
+                "activity_participation":[
+                    ""
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MRI"
+                ],
+                "source_id":"MRI-ESM2-0",
+                "source":"MRI-ESM2.0 (2017): \naerosol: MASINGAR mk2r4\natmos: MRI-AGCM3.5 (320 x 160 TL159; 80 levels; top level 0.01 hPa)\natmosChem: MRI-CCM2.1\nland: HAL 1.0\nocean: MRI.COM4.4 (tripolar primarily 0.5 deg latitude/1 deg longitude with meridional refinement down to 0.3 deg within 10 degrees north and south of the equator; 360 x 364 longitude/latitude; 61 levels; top grid cell 0-2 m)\nocnBgchem: MRI.COM4.4\nseaIce: MRI.COM4.4"
+            },
+            "NICAM16-7S":{
+                "activity_participation":[
+                    ""
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MIROC"
+                ],
+                "source_id":"NICAM16-7S",
+                "source":"NICAM16-7S (2017): \naerosol: Prescribed MACv2-SP\natmos: NICAM.16 (56km icosahedral grid; 163,842 grid cells (=10*4^7+2); 38 levels; top level 40 km)\nland: MATSIRO6 (w/o MOSAIC)\nseaIce: Fixed"
+            },
+            "NICAM16-8S":{
+                "activity_participation":[
+                    ""
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MIROC"
+                ],
+                "source_id":"NICAM16-8S",
+                "source":"NICAM16-8S (2017): \naerosol: Prescribed MACv2-SP\natmos: NICAM.16 (28km icosahedral grid; 655,362 grid cells (=10*4^8+2); 38 levels; top level 40 km)\nland: MATSIRO6 (w/o MOSAIC)\nseaIce: Fixed"
+            },
+            "NICAM16-9D-L78":{
+                "activity_participation":[
+                    ""
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MIROC"
+                ],
+                "source_id":"NICAM16-9D-L78",
+                "source":"NICAM16-9D-L78 (2017): \naerosol: Prescribed MACv2-SP\natmos: NICAM.16 (14km icosahedral grid; 2,621,442 grid cells (=10*4^9+2); 78 levels; top level 40 km)\nland: MATSIRO6 (w/o MOSAIC)\nseaIce: Fixed"
+            },
+            "NICAM16-9S":{
+                "activity_participation":[
+                    ""
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MIROC"
+                ],
+                "source_id":"NICAM16-9S",
+                "source":"NICAM16-9S (2017): \naerosol: Prescribed MACv2-SP\natmos: NICAM.16 (14km icosahedral grid; 2,621,442 grid cells (=10*4^9+2); 38 levels; top level 40 km)\nland: MATSIRO6 (w/o MOSAIC)\nseaIce: Fixed"
+            },
+            "NorESM2-HH":{
+                "activity_participation":[
+                    "HighResMIP"
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "NCC"
+                ],
+                "source_id":"NorESM2-HH",
+                "source":"NorESM2-HH (2018): \naerosol: OsloAero\natmos: CAM-OSLO (0.25 degree resolution; 1152 x 768; 32 levels; top level 3 mb)\natmosChem: OsloChemSimp\nland: CLM\nlandIce: CISM\nocean: MICOM (0.25 degree resolution; 1440 x 1152; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])\nocnBgchem: HAMOCC\nseaIce: CICE"
+            },
+            "NorESM2-LM":{
+                "activity_participation":[
+                    "AerChemMIP",
+                    "CFMIP",
+                    "CMIP",
+                    "DAMIP",
+                    "DCPP",
+                    "LUMIP",
+                    "OMIP",
+                    "PMIP",
+                    "RFMIP",
+                    "ScenarioMIP",
+                    "VolMIP"
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "NCC"
+                ],
+                "source_id":"NorESM2-LM",
+                "source":"NorESM2-LM (2017): \naerosol: OsloAero\natmos: CAM-OSLO (2 degree resolution; 144 x 96; 32 levels; top level 3 mb)\natmosChem: OsloChemSimp\nland: CLM\nlandIce: CISM\nocean: MICOM (1 degree resolution; 360 x 384; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])\nocnBgchem: HAMOCC\nseaIce: CICE"
+            },
+            "NorESM2-LME":{
+                "activity_participation":[
+                    "C4MIP",
+                    "CMIP",
+                    "GeoMIP",
+                    "LUMIP",
+                    "OMIP"
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "NCC"
+                ],
+                "source_id":"NorESM2-LME",
+                "source":"NorESM2-LME (2017): \naerosol: OsloAero\natmos: CAM-OSLO (2 degree resolution; 144 x 96; 32 levels; top level 3 mb)\natmosChem: OsloChemSimp\nland: CLM\nlandIce: CISM\nocean: MICOM (1 degree resolution; 360 x 384; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])\nocnBgchem: HAMOCC\nseaIce: CICE"
+            },
+            "NorESM2-LMEC":{
+                "activity_participation":[
+                    "AerChemMIP"
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "NCC"
+                ],
+                "source_id":"NorESM2-LMEC",
+                "source":"NorESM2-LMEC (2017): \naerosol: OsloAero\natmos: CAM-OSLO (2 degree resolution; 144 x 96; 32 levels; top level 3 mb)\natmosChem: OsloChemComp\nland: CLM\nlandIce: CISM\nocean: MICOM (1 degree resolution; 360 x 384; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])\nocnBgchem: HAMOCC\nseaIce: CICE"
+            },
+            "NorESM2-MH":{
+                "activity_participation":[
+                    "AerChemMIP",
+                    "CFMIP",
+                    "CMIP",
+                    "DAMIP",
+                    "OMIP",
+                    "RFMIP",
+                    "ScenarioMIP"
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "NCC"
+                ],
+                "source_id":"NorESM2-MH",
+                "source":"NorESM2-MH (2017): \naerosol: OsloAero\natmos: CAM-OSLO (1 degree resolution; 288 x 192; 32 levels; top level 3 mb)\natmosChem: OsloChemSimp\nland: CLM\nlandIce: CISM\nocean: MICOM (0.25 degree resolution; 1440 x 1152; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])\nocnBgchem: HAMOCC\nseaIce: CICE"
+            },
+            "NorESM2-MM":{
+                "activity_participation":[
+                    "AerChemMIP",
+                    "CFMIP",
+                    "CMIP",
+                    "DAMIP",
+                    "OMIP",
+                    "RFMIP",
+                    "ScenarioMIP"
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "NCC"
+                ],
+                "source_id":"NorESM2-MM",
+                "source":"NorESM2-MM (2017): \naerosol: OsloAero\natmos: CAM-OSLO (1 degree resolution; 288 x 192; 32 levels; top level 3 mb)\natmosChem: OsloChemSimp\nland: CLM\nlandIce: CISM\nocean: MICOM (1 degree resolution; 360 x 384; 70 levels; top grid cell minimum 0-2.5 m [native model uses hybrid density and generic upper-layer coordinate interpolated to z-level for contributed data])\nocnBgchem: HAMOCC\nseaIce: CICE"
+            },
+            "PCMDI-test-1-0":{
+                "activity_participation":[
+                    "CMIP"
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "PCMDI"
+                ],
+                "source_id":"PCMDI-test-1-0",
+                "source":"PCMDI-test 1.0 (1989): \natmos: Earth1.0-gettingHotter (360x180; 50 levels; top level 0.1 mb)\nland: Earth1.0\nocean: BlueMarble1.0-warming (360x180; 50 levels; top grid cell 0-10m)\nseaIce: Declining1.0-warming"
+            },
+            "UKESM1-0-LL":{
+                "activity_participation":[
+                    ""
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MOHC",
+                    "NERC"
+                ],
+                "source_id":"UKESM1-0-LL",
+                "source":"UKESM1.0-LL (2017): \naerosol: UKCA-GLOMAP-mode\natmos: MetUM-HadGEM3-GA7.1 (192 x 144 N96; 85 levels; top level 85km)\natmosChem: UKCA-StratTrop\nland: JULES-HadGEM3-GL7.1\nlandIce: BISICLES (only active in ISMIP experiments)\nocean: NEMO-HadGEM3-GO6.0 (ORCA1 tripolar primarily 1 deg latitude/longitude with meridional refinement down to 1/3 degree in the tropics; 75 levels; top grid cell 0-1m)\nocnBgchem: MEDUSA2\nseaIce: CICE-HadGEM3-GSI8 (ORCA1 tripolar prima [...]
+            },
+            "UKESM1-0-MMh":{
+                "activity_participation":[
+                    ""
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "MOHC",
+                    "NERC"
+                ],
+                "source_id":"UKESM1-0-MMh",
+                "source":"UKESM1.0-MMh (2018): \naerosol: UKCA-GLOMAP-mode (horizontal resolution degraded relative to that used for atmosphere physics)\natmos: MetUM-HadGEM3-GA7.1 (432 x 324 N216; 85 levels; top level 85km)\natmosChem: UKCA-StratTrop (horizontal resolution degraded relative to that used for atmosphere physics)\nland: JULES-HadGEM3-GL7.1\nlandIce: BISICLES (only active in ISMIP experiments)\nocean: NEMO-HadGEM3-GO6.0 (ORCA025 tripolar primarily 0.25 deg latitude/longitud [...]
+            },
+            "VRESM-1-0":{
+                "activity_participation":[
+                    ""
+                ],
+                "cohort":[
+                    "Registered"
+                ],
+                "institution_id":[
+                    "CSIR-CSIRO"
+                ],
+                "source_id":"VRESM-1-0",
+                "source":"VRESM 1.0 (2016): \naerosol: Rotstayn-1.0\natmos: VCAM-1.0 (192 x 192 x 6 C192; 35 levels; top level 35km)\nland: CABLE v2.2.3\nocean: VCOM-1.0 (192 x 192 x 6 C192; 35 levels; top grid cell 0-10m)\nocnBgchem: PISCES v3.4socco\nseaIce: CSIR-ICE (visco-plastic)"
+            }
+        },
+        "source_type":[
+            "AER",
+            "AGCM",
+            "AOGCM",
+            "BGCM",
+            "CHEM",
+            "ESM",
+            "ISM",
+            "LAND",
+            "OGCM",
+            "RAD",
+            "SLAB"
+        ],
+        "frequency":[
+            "3hr",
+            "6hr",
+            "day",
+            "fx",
+            "mon",
+            "monClim",
+            "subhr",
+            "yr"
+        ],
+        "grid_label":[
             "gm",
             "gn",
             "gna",
@@ -499,5840 +875,7280 @@
             "500 km",
             "5000 km"
         ],
-        "realm":[
-            "aerosol",
-            "atmos",
-            "atmosChem",
-            "land",
-            "landIce",
-            "ocean",
-            "ocnBgchem",
-            "seaIce"
-        ],
+        "realm":{
+            "aerosol":"Aerosol",
+            "atmos":"Atmosphere",
+            "atmosChem":"Atmospheric Chemistry",
+            "land":"Land Surface",
+            "landIce":"Land Ice",
+            "ocean":"Ocean",
+            "ocnBgchem":"Ocean Biogeochemistry",
+            "seaIce":"Sea Ice"
+        },
         "table_id":[
             "3hr",
-            "3hrpt",
-            "6hr",
-            "6hrpt",
-            "Aday",
+            "6hrLev",
+            "6hrPlev",
+            "6hrPlevPt",
+            "AERday",
+            "AERhr",
+            "AERmon",
+            "AERmonZ",
             "Amon",
+            "CF3hr",
+            "CFday",
+            "CFmon",
+            "CFsubhr",
+            "E1hr",
+            "E1hrClimMon",
+            "E3hr",
+            "E3hrPt",
+            "E6hrZ",
+            "Eday",
+            "EdayZ",
+            "Efx",
+            "Emon",
+            "EmonZ",
+            "Esubhr",
+            "Eyr",
+            "IfxAnt",
+            "IfxGre",
+            "ImonAnt",
+            "ImonGre",
+            "IyrAnt",
+            "IyrGre",
             "LImon",
             "Lmon",
-            "OImon",
             "Oclim",
             "Oday",
             "Odec",
+            "Ofx",
             "Omon",
             "Oyr",
-            "aero",
-            "cfOff",
-            "cfSites",
+            "SIday",
+            "SImon",
+            "day",
             "fx"
         ],
         "license":[
-            [
-                "CMIP6 model data produced by .* is licensed under a Creative Commons Attribution \"Share Alike\" 4.0 International License (http://creativecommons.org/licenses/by/4.0/). Use of the data should be acknowledged following guidelines found at.*Permissions beyond the scope of this license may be available at.* Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute in data files). The data producer [...]
-            ]
+            "^CMIP6 model data produced by .* is licensed under a Creative Commons Attribution.*ShareAlike 4.0 International License (https://creativecommons.org/licenses)\\. Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 output, including citation requirements and proper acknowledgment\\. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute in this file) .*\\. The data pro [...]
         ],
         "mip_era":[
             "CMIP6"
         ],
+        "sub_experiment_id":{
+            "none":"none",
+            "s1910":"initialized near end of year 1910",
+            "s1950":"initialized near end of year 1950",
+            "s1960":"initialized near end of year 1960",
+            "s1961":"initialized near end of year 1961",
+            "s1962":"initialized near end of year 1962",
+            "s1963":"initialized near end of year 1963",
+            "s1964":"initialized near end of year 1964",
+            "s1965":"initialized near end of year 1965",
+            "s1966":"initialized near end of year 1966",
+            "s1967":"initialized near end of year 1967",
+            "s1968":"initialized near end of year 1968",
+            "s1969":"initialized near end of year 1969",
+            "s1970":"initialized near end of year 1970",
+            "s1971":"initialized near end of year 1971",
+            "s1972":"initialized near end of year 1972",
+            "s1973":"initialized near end of year 1973",
+            "s1974":"initialized near end of year 1974",
+            "s1975":"initialized near end of year 1975",
+            "s1976":"initialized near end of year 1976",
+            "s1977":"initialized near end of year 1977",
+            "s1978":"initialized near end of year 1978",
+            "s1979":"initialized near end of year 1979",
+            "s1980":"initialized near end of year 1980",
+            "s1981":"initialized near end of year 1981",
+            "s1982":"initialized near end of year 1982",
+            "s1983":"initialized near end of year 1983",
+            "s1984":"initialized near end of year 1984",
+            "s1985":"initialized near end of year 1985",
+            "s1986":"initialized near end of year 1986",
+            "s1987":"initialized near end of year 1987",
+            "s1988":"initialized near end of year 1988",
+            "s1989":"initialized near end of year 1989",
+            "s1990":"initialized near end of year 1990",
+            "s1991":"initialized near end of year 1991",
+            "s1992":"initialized near end of year 1992",
+            "s1993":"initialized near end of year 1993",
+            "s1994":"initialized near end of year 1994",
+            "s1995":"initialized near end of year 1995",
+            "s1996":"initialized near end of year 1996",
+            "s1997":"initialized near end of year 1997",
+            "s1998":"initialized near end of year 1998",
+            "s1999":"initialized near end of year 1999",
+            "s2000":"initialized near end of year 2000",
+            "s2001":"initialized near end of year 2001",
+            "s2002":"initialized near end of year 2002",
+            "s2003":"initialized near end of year 2003",
+            "s2004":"initialized near end of year 2004",
+            "s2005":"initialized near end of year 2005",
+            "s2006":"initialized near end of year 2006",
+            "s2007":"initialized near end of year 2007",
+            "s2008":"initialized near end of year 2008",
+            "s2009":"initialized near end of year 2009",
+            "s2010":"initialized near end of year 2010",
+            "s2011":"initialized near end of year 2011",
+            "s2012":"initialized near end of year 2012",
+            "s2013":"initialized near end of year 2013",
+            "s2014":"initialized near end of year 2014",
+            "s2015":"initialized near end of year 2015",
+            "s2016":"initialized near end of year 2016",
+            "s2017":"initialized near end of year 2017",
+            "s2018":"initialized near end of year 2018",
+            "s2019":"initialized near end of year 2019",
+            "s2020":"initialized near end of year 2020",
+            "s2021":"initialized near end of year 2021",
+            "s2022":"initialized near end of year 2022",
+            "s2023":"initialized near end of year 2023",
+            "s2024":"initialized near end of year 2024",
+            "s2025":"initialized near end of year 2025",
+            "s2026":"initialized near end of year 2026",
+            "s2027":"initialized near end of year 2027",
+            "s2028":"initialized near end of year 2028",
+            "s2029":"initialized near end of year 2029"
+        },
         "experiment_id":{
-            "ssp245-GHG":{
+            "1pctCO2":{
                 "activity_id":[
-                    "DAMIP"
-                ],
-                "description":"Extension of well-mixed GHG-only run under SSP2-4.5. Models with interactive chemistry schemes should either turn off the chemistry or use a preindustrial climatology of stratospheric and tropospheric ozone in their radiation schemes",
-                "start_year":"2021",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "hist-GHG"
-                ],
-                "parent_activity_id":[
-                    "DAMIP"
+                    "CMIP"
                 ],
-                "experiment":"well-mixed GHG-only SSP2-4.5 run",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"DECK: 1pctCO2",
+                "end_year":"",
+                "experiment":"1 percent per year increase in CO2",
+                "experiment_id":"1pctCO2",
+                "min_number_yrs_per_sim":"150",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"80",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "dcppA-historical-niff":{
+            "1pctCO2-4xext":{
                 "activity_id":[
-                    "DCPP"
-                ],
-                "description":"Uninitialized climate simulations as in DCPP-A2.2, but with no information from the future",
-                "start_year":"1960",
-                "end_year":"present (to 2019)",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":[
-                    "dcppA-assim",
-                    ""
-                ],
-                "parent_activity_id":[
-                    "DCPP"
+                    "ISMIP6"
                 ],
-                "experiment":"hindcast initialized from historical climate simulation without observed forcing after initialization",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"branched from 1pctCO2 run at year 140 and run with CO2 fixed at 4x pre-industrial concentration",
+                "end_year":"",
+                "experiment":"extension from year 140 of 1pctCO2 with 4xCO2",
+                "experiment_id":"1pctCO2-4xext",
+                "min_number_yrs_per_sim":"210",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "1pctCO2"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"4",
-                "min_number_yrs_per_sim":"300",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "ssp370-lowNTCF":{
+            "1pctCO2-bgc":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "C4MIP"
                 ],
-                "description":"Future SSP3-7.0 with reduced NTCF emissions",
-                "start_year":"2015",
-                "end_year":"2055",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"Biogeochemically-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling",
+                "end_year":"",
+                "experiment":"biogeochemically-coupled version of 1 percent per year increasing CO2 experiment",
+                "experiment_id":"1pctCO2-bgc",
+                "min_number_yrs_per_sim":"150",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"SSP3-7.0, with low NTCF emissions",
-                "additional_allowed_model_components":[
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
                     "AOGCM",
-                    "AER"
+                    "BGC"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"41",
-                "sub_experiment_id":"none"
-            },
-            "piClim-NH3":{
-                "activity_id":"AerChemMIP",
-                "description":"Perturbation from 1850 control using 2014 NH3 emissions",
                 "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 ammonia emissions",
-                "additional_allowed_model_components":[
-                    "AGCM",
-                    "CHEM"
-                ],
-                "required_model_components":[
-                    "AGCM",
-                    "AER"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "tier":"1"
             },
-            "piClim-OC":{
-                "activity_id":"AerChemMIP",
-                "description":"Perturbation from 1850 control using 2014 OC emissions",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 organic carbon emissions",
+            "1pctCO2-rad":{
+                "activity_id":[
+                    "C4MIP"
+                ],
                 "additional_allowed_model_components":[
-                    "AGCM",
+                    "AER",
                     "CHEM"
                 ],
+                "description":"Radiatively-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling",
+                "end_year":"",
+                "experiment":"radiatively-coupled version of 1 percent per year increasing CO2 experiment",
+                "experiment_id":"1pctCO2-rad",
+                "min_number_yrs_per_sim":"150",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "AOGCM",
+                    "BGC"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "aqua-p4K":{
+            "1pctCO2Ndep":{
                 "activity_id":[
-                    "CFMIP"
+                    "C4MIP"
                 ],
-                "description":"Extended version of CMIP5/CFMIP-2 aqua4K experiment. Aquaplanet experiment where SSTs are subject to a uniform warming of 4K",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"aquaplanet with uniform 4K SST increase",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"Fully-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling, plus an additional scenario of anthropogenic nitrogen deposition",
+                "end_year":"",
+                "experiment":"1 percent per year increasing CO2 experiment with increasing N-deposition",
+                "experiment_id":"1pctCO2Ndep",
+                "min_number_yrs_per_sim":"150",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM",
+                    "BGC"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp434":{
+            "1pctCO2Ndep-bgc":{
                 "activity_id":[
-                    "ScenarioMIP"
+                    "C4MIP"
                 ],
-                "description":"Future scenario with low radiative forcing by the end of century. Reaches about 3.4 W/m2 by 2100; fills gap in RCP forcing pathways between 4.5 and 2.6 W/m2. Concentration-driven",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"Biogeochemically-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling, plus an additional scenario of anthropogenic nitrogen deposition",
+                "end_year":"",
+                "experiment":"biogeochemically-coupled version of 1 percent per year increasing CO2 experiment with increasing N-deposition",
+                "experiment_id":"1pctCO2Ndep-bgc",
+                "min_number_yrs_per_sim":"150",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"gap-filling scenario reaching 3.4 based on SSP4",
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AOGCM",
+                    "BGC"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "1pctCO2to4x-withism":{
+                "activity_id":[
+                    "ISMIP6"
+                ],
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
-                "required_model_components":[
-                    "AOGCM"
+                "description":"Idealized 1%/yr CO2 increase to 4xC02 over 140yrs and kept constant at 4xCO2 for an additional 200 to 400 yrs simulation that includes interactive ice sheets",
+                "end_year":"",
+                "experiment":"simulation with interactive ice sheet forced by 1 percent per year increase in CO2 to 4xCO2 (subsequently held fixed)",
+                "experiment_id":"1pctCO2to4x-withism",
+                "min_number_yrs_per_sim":"350",
+                "parent_activity_id":[
+                    "ISMIP6"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
-            },
-            "land-cCO2":{
-                "activity_id":[
-                    "LUMIP"
+                "parent_experiment_id":[
+                    "piControl-withism"
                 ],
-                "description":"Same as land-hist except with CO2 held constant",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only constant CO2",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "LAND"
+                    "AOGCM",
+                    "ISM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "piClim-2xDMS":{
+            "G1":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "GeoMIP"
                 ],
-                "description":"1850 control with doubled emissions of DMS",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled emissions of DMS",
                 "additional_allowed_model_components":[
-                    "CHEM"
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Beginning from a preindustrial control run, simultaneously quadruple the CO2 concentration and reduce the solar constant such that the TOA radiative flux remains within +/m0.1 W/m2",
+                "end_year":"",
+                "experiment":"abrupt quadrupling of CO2 plus reduction in total solar irradiance",
+                "experiment_id":"G1",
+                "min_number_yrs_per_sim":"100",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "amip-hist":{
+            "G6SST1":{
                 "activity_id":[
-                    "GMMIP"
+                    "GeoMIP"
                 ],
-                "description":"Extended AMIP run that covers 1870-2014. All natural and anthropogenic historical forcings as used in CMIP6 Historical Simulation will be included. AGCM resolution as CMIP6 Historical Simulation. The HadISST data will be used",
-                "start_year":"1870",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"AMIP-style simulation covering the period 1870-2014",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"Time slice at 2020 (ScenarioMIP Tier 1 high forcing scenario)",
+                "end_year":"",
+                "experiment":"SSTs, forcings, and other prescribed conditions from year 2020 of SSP5-8.5",
+                "experiment_id":"G6SST1",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp585"
+                ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"144",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piSST-4xCO2-solar":{
+            "G6SST2-solar":{
                 "activity_id":[
                     "GeoMIP"
                 ],
-                "description":"Time slice at 1850 (picontrol) for G1ext to examine radiative forcing of abrupt4xCO2",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"preindustrial control SSTs with quadrupled CO2 and solar reduction",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"Time slice at 2100 (G6solar)",
+                "end_year":"",
+                "experiment":"SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G6solar",
+                "experiment_id":"G6SST2-solar",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp585"
+                ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piSST-4xCO2":{
+            "G6SST2-sulfur":{
                 "activity_id":[
-                    "CFMIP"
+                    "GeoMIP"
                 ],
-                "description":"Same as piSST but CO2 is quadrupled. The increase in CO2 is seen by both the radiation scheme and vegetation",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"as piSST with radiation and vegetation seeing 4xCO2",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"Time slice at 2100 (G6sulfur)",
+                "end_year":"",
+                "experiment":"SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G6sulfur",
+                "experiment_id":"G6SST2-sulfur",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp585"
+                ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
-            },
-            "faf-all":{
-                "activity_id":[
-                    "FAFMIP"
-                ],
-                "description":"1xCO2 experiment, parallel to piControl, forced over the ocean simultaneously by surface windstress (as in the wind experiment), net heat flux (as in the heat experiment) and net freshwater flux (as in the water experiment) anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2, using a passive tracer to prevent negative climate feedback on the heat flux applied",
                 "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "parent_activity_id":[
-                    "CMIP"
+                "tier":"2"
+            },
+            "G6solar":{
+                "activity_id":[
+                    "GeoMIP"
                 ],
-                "experiment":"control plus perturbative surface fluxes of momentum, heat and water into ocean",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
-                "required_model_components":[
-                    "AOGCM"
-                ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"70",
-                "sub_experiment_id":"none"
-            },
-            "ism-1pctCO2to4x-self":{
-                "activity_id":[
-                    "ISMIP6"
+                "description":"Using solar irradiance reduction, return the radiative forcing from a background of the ScenarioMIP high forcing to the ScenarioMIP middle forcing",
+                "end_year":"2100",
+                "experiment":"total solar irradiance reduction to reduce net forcing from SSP585 to SSP245",
+                "experiment_id":"G6solar",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
                 ],
-                "description":"Idealized 1%/yr CO2 increase to 4xC02 over 140yrs and kept constant at 4xCO2 for an additional 200 to 400 yrs simulation with ice sheets forced \"offline\" with DECK 1pctCO2 using forcing from its own AOGCM",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
                 "parent_experiment_id":[
-                    "ism-piControl-self"
-                ],
-                "parent_activity_id":[
-                    "ISMIP6"
+                    "historical"
                 ],
-                "experiment":"offline ice sheet model forced by ISM's own AOGCM 1pctCO2to4x output",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "ISM"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"350",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "G6SST1":{
+            "G6sulfur":{
                 "activity_id":[
                     "GeoMIP"
                 ],
-                "description":"Time slice at 2020 (ScenarioMIP Tier 1 high forcing scenario)",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSTs, forcings, and other prescribed conditions from year 2020 of SSP5-8.5",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
                 ],
-                "required_model_components":[
-                    "AGCM"
+                "description":"Using equatorial SO2 injection, return the radiative forcing from a background of the ScenarioMIP high forcing to the ScenarioMIP middle forcing",
+                "end_year":"2100",
+                "experiment":"stratospheric sulfate aerosol injection to reduce net forcing from SSP585 to SSP245",
+                "experiment_id":"G6sulfur",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
-            },
-            "ism-piControl-self":{
-                "activity_id":[
-                    "ISMIP6"
+                "parent_experiment_id":[
+                    "historical"
                 ],
-                "description":"Pre-industrial control simulation for \"offline\" ice sheets",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"offline ice sheet forced by ISM's own AOGCM piControl output",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "ISM"
-                ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"451",
-                "sub_experiment_id":"none"
-            },
-            "rad-irf":{
-                "activity_id":[
-                    "RFMIP"
+                    "AOGCM"
                 ],
-                "description":"Offline radiation calculations",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"offline assessment of radiative transfer parmeterizations in clear skies",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "RAD"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"",
-                "sub_experiment_id":"none"
+                "tier":"1"
             },
-            "volc-pinatubo-surf":{
+            "G7SST1-cirrus":{
                 "activity_id":[
-                    "VolMIP"
+                    "GeoMIP"
                 ],
-                "description":"As volc-pinatubo-full, but with prescribed perturbation to the shortwave flux to mimic the attenuation of solar radiation by volcanic aerosols",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"Time slice at 2020 (ScenarioMIP Tier 1 high forcing scenario and cirrus thinning according to G7cirrus)",
+                "end_year":"",
+                "experiment":"SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2020 of SSP5-8.5 and cirrus thinning",
+                "experiment_id":"G7SST1-cirrus",
+                "min_number_yrs_per_sim":"10",
                 "parent_activity_id":[
-                    "CMIP"
+                    "ScenarioMIP"
                 ],
-                "experiment":"Pinatubo experiment with partial radiative forcing, solar radiation scattering only",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "ssp585"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"3",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piClim-histall":{
+            "G7SST2-cirrus":{
                 "activity_id":[
-                    "RFMIP"
+                    "GeoMIP"
                 ],
-                "description":"Time-varying forcing. SST and sea ice fixed at preindustrial control. Interactive vegetation",
-                "start_year":"1850",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"transient effective radiative forcing",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"Time slice at 2100 (ScenarioMIP Tier 1 high forcing scenario and cirrus thinning according to G7cirrus)",
+                "end_year":"",
+                "experiment":"SSTs from year 2100 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G7cirrus",
+                "experiment_id":"G7SST2-cirrus",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp585"
+                ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"251",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "G1":{
+            "G7cirrus":{
                 "activity_id":[
                     "GeoMIP"
                 ],
-                "description":"Beginning from a preindustrial control run, simultaneously quadruple the CO2 concentration and reduce the solar constant such that the TOA radiative flux remains within +/m0.1 W/m2",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
-                ],
-                "experiment":"abrupt quadrupling of CO2 plus reduction in total solar irradiance",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Against a background of the ScenarioMIP high forcing, reduce cirrus cloud optical depth by a constant amount",
+                "end_year":"2100",
+                "experiment":"increase cirrus ice crystal fall speed to reduce net forcing in SSP585 by 1 W m-2",
+                "experiment_id":"G7cirrus",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"100",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "volc-long-hlN":{
+            "a4SST":{
                 "activity_id":[
-                    "VolMIP"
+                    "CFMIP"
                 ],
-                "description":"Idealized Northern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2. Experiment initialized from PiControl",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"As piSST, but with monthly-varying SSTs taken from years 111-140 of each model's own abrupt4xCO2 experiment instead of from piControl. Sea-ice is unchanged from piSST",
+                "end_year":"",
+                "experiment":"as piSST but with SSTs from abrupt4xCO2",
+                "experiment_id":"a4SST",
+                "min_number_yrs_per_sim":"30",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"idealized Northern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "abrupt4xCO2"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"20",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "esm-hist-ext":{
+            "a4SSTice":{
                 "activity_id":[
-                    "CMIP"
+                    "CFMIP"
                 ],
-                "description":"Extension beyond 2014 of the CMIP6 historical (CO2 emission-driven)",
-                "start_year":"2015",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "esm-hist"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"As piSST, but with monthly-varying SSTs and sea-ice taken from years 111-140 of each model's own abrupt4xCO2 experiment instead of from piControl",
+                "end_year":"",
+                "experiment":"as piSST but with SSTs and sea ice from abrupt4xCO2",
+                "experiment_id":"a4SSTice",
+                "min_number_yrs_per_sim":"30",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"post-2014 all-forcing simulation with atmospheric CO2 concentration calculated",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "abrupt4xCO2"
                 ],
                 "required_model_components":[
-                    "AOGCM",
-                    "BGC"
+                    "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"1",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piClim-VOC":{
+            "a4SSTice-4xCO2":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "CFMIP"
                 ],
-                "description":"Perturbation from 1850 control using 2014 CO/VOC emissions",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 VOC emissions",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "AGCM",
+                "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
-            },
-            "faf-heat":{
-                "activity_id":[
-                    "FAFMIP"
-                ],
-                "description":"1xCO2 experiment, parallel to piControl, forced over the ocean by surface net heat flux anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2, using a passive tracer to prevent negative climate feedback on the heat flux applied",
-                "start_year":"",
+                "description":"As a4SSTice, but CO2 is quadrupled, and the increase in CO2 is seen by both the radiation scheme and vegetation",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
+                "experiment":"as piSST but with SSTs and sea ice from abrupt4xCO2, and 4xCO2 seen by radiation and vegetation",
+                "experiment_id":"a4SSTice-4xCO2",
+                "min_number_yrs_per_sim":"30",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"control plus perturbative surface flux of heat into ocean",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "abrupt4xCO2"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"70",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "dcppC-amv-plus":{
+            "abrupt-0p5xCO2":{
                 "activity_id":[
-                    "DCPP"
+                    "CFMIP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"1950 (from 1920 if possible)",
-                "end_year":"2015",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized positive AMV anomaly pattern",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Identical to the DECK abrupt-4xCO2, but at 0.5xCO2",
+                "end_year":"",
+                "experiment":"abrupt halving of CO2",
+                "experiment_id":"abrupt-0p5xCO2",
+                "min_number_yrs_per_sim":"150",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"66",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "amip-lfmip-pdLC":{
+            "abrupt-2xCO2":{
                 "activity_id":[
-                    "LS3MIP"
+                    "CFMIP"
                 ],
-                "description":"Prescribed land conditions 1980-2014 climate; AMIP SSTs",
-                "start_year":"1980",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"prescribed land (from current climatology) and AMIP SSTs",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Identical to the DECK abrupt-4xCO2, but at 2xCO2",
+                "end_year":"",
+                "experiment":"abrupt doubling of CO2",
+                "experiment_id":"abrupt-2xCO2",
+                "min_number_yrs_per_sim":"150",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"121",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "dcppC-amv-extrop-plus":{
+            "abrupt-4xCO2":{
                 "activity_id":[
-                    "DCPP"
+                    "CMIP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"control",
-                "end_year":"",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized positive extratropical AMV anomaly pattern",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
-                "required_model_components":[
-                    "AOGCM"
-                ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"25",
-                "sub_experiment_id":"of form: \"sYYYY\""
-            },
-            "land-crop-grass":{
-                "activity_id":[
-                    "LUMIP"
+                "description":"DECK: abrupt4xCO2",
+                "end_year":"",
+                "experiment":"abrupt quadrupling of CO2",
+                "experiment_id":"abrupt-4xCO2",
+                "min_number_yrs_per_sim":"150",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
-                "description":"Same as land-hist but with all new crop and pastureland treated as unmanaged grassland",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only with cropland as natural grassland",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "LAND"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "piClim-anthro":{
+            "abrupt-solm4p":{
                 "activity_id":[
-                    "RFMIP"
+                    "CFMIP"
                 ],
-                "description":"As in RFMIP-ERF-PI-Cntrl but with present-day anthropogenic forcing (greenhouse gases, aerosols and land-use)",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"effective radiative forcing by present day anthropogenic agents",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
-                ],
-                "required_model_components":[
-                    "AGCM"
-                ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
-            },
-            "faf-passiveheat":{
-                "activity_id":[
-                    "FAFMIP"
+                    "CHEM",
+                    "BGC"
                 ],
-                "description":"1xCO2 experiment, parallel to piControl, with a flux of passive tracer added at the ocean surface at the same rate as the surface net heat flux anomaly applied in the FAFMIP heat experiment",
-                "start_year":"",
+                "description":"Conceptually similar to abrupt 4xCO2 DECK experiment, except that the solar constant rather than CO2 is abruptly reduced by 4%",
                 "end_year":"",
-                "sub_experiment":"none",
+                "experiment":"abrupt 4% decrease in solar constant",
+                "experiment_id":"abrupt-solm4p",
+                "min_number_yrs_per_sim":"150",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
                 "parent_experiment_id":[
                     "piControl"
                 ],
-                "parent_activity_id":[
-                    "CMIP"
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "abrupt-solp4p":{
+                "activity_id":[
+                    "CFMIP"
                 ],
-                "experiment":"control plus surface flux of passive heat tracer into ocean",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Conceptually similar to abrupt 4xCO2 DECK experiment, except that the solar constant rather than CO2 is abruptly increased by 4%",
+                "end_year":"",
+                "experiment":"abrupt 4% increase in solar constant",
+                "experiment_id":"abrupt-solp4p",
+                "min_number_yrs_per_sim":"150",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"70",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piClim-histghg":{
+            "amip":{
                 "activity_id":[
-                    "RFMIP"
+                    "CMIP"
                 ],
-                "description":"Time-varying forcing by GHGs. SST and sea ice fixed at preindustrial control. Interactive vegetation",
-                "start_year":"1850",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"transient effective radiative forcing by greenhouse gases",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"DECK: AMIP",
+                "end_year":"2014",
+                "experiment":"AMIP",
+                "experiment_id":"amip",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"251",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "hist-1950":{
+            "amip-4xCO2":{
                 "activity_id":[
-                    "HighResMIP"
+                    "CFMIP"
                 ],
-                "description":"Coupled integrations, at least one with constant 1950\"s forcing (CTL) and one or more with historic and then RCP4.5 (as in Forced_Atmos_Land, EXP)",
-                "start_year":"1951",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "control-1950"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"As CMIP5/CFMIP-2 amip4xCO2 experiment. AMIP experiment where SSTs are held at control values and the CO2 seen by the radiation scheme is quadrupled",
+                "end_year":"2014",
+                "experiment":"AMIP SSTs with 4xCO2",
+                "experiment_id":"amip-4xCO2",
+                "min_number_yrs_per_sim":"36",
                 "parent_activity_id":[
-                    "HighResMIP"
+                    "no parent"
                 ],
-                "experiment":"coupled historical 1950-2014",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
+                ],
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"64",
-                "sub_experiment_id":"none"
+                "tier":"1"
             },
-            "dcppC-atl-spg":{
+            "amip-TIP":{
                 "activity_id":[
-                    "DCPP"
+                    "GMMIP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"predictability of 1990s warming of Atlantic sub-polar gyre",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM",
-                    "BGC"
+                    "CHEM"
                 ],
-                "required_model_components":[
-                    "AOGCM"
+                "description":"The topography of the TIP is modified by setting surface elevations to 500m; to understand the combined thermal and mechanical forcing of the TIP. Same model as DECK",
+                "end_year":"2014",
+                "experiment":"same as \"amip\" run, but surface elevations of the Tibetan-Iranian Plateau and Himalayas reduced to 500m",
+                "experiment_id":"amip-TIP",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "no parent"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"",
-                "sub_experiment_id":"of form: \"sYYYY\""
-            },
-            "piClim-CH4":{
-                "activity_id":[
-                    "AerChemMIP"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
-                "description":"Perturbation from 1850 control using 2014 CH4 concentrations",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 methane concentrations (including chemistry)",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "AGCM",
-                    "AER",
-                    "CHEM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "hist-resAMO":{
+            "amip-TIP-nosh":{
                 "activity_id":[
                     "GMMIP"
                 ],
-                "description":"Pacemaker 20th century historical run that includes all forcing as used in CMIP6 Historical Simulation, and the observational historical SST is restored in the AMO domain (0deg-70degN, 70degW-0deg)",
-                "start_year":"1870",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"Surface sensible heat released at the elevation above 500m over the TIP is not allowed to heat the atmosphere. Same model as DECK",
+                "end_year":"2014",
+                "experiment":"same as \"amip\" run, but sensible heat not allowed for elevations of the Tibetan-Iranian Plateau and Himalayas above 500m",
+                "experiment_id":"amip-TIP-nosh",
+                "min_number_yrs_per_sim":"36",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"initialized from \"historical\" run year 1870 and SSTs in the AMO domain (0deg-70degN, 70degW-0deg) restored to AMIP SSTs with historical forcings",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"144",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "dcppC-amv-trop-minus":{
+            "amip-a4SST-4xCO2":{
                 "activity_id":[
-                    "DCPP"
+                    "CFMIP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"1992",
-                "end_year":"1999",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized negative tropical AMV anomaly pattern",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM",
-                    "BGC"
+                    "CHEM"
+                ],
+                "description":"Same as amip, but a patterned SST anomaly is applied on top of the monthly-varying amip SSTs. This anomaly is a monthly climatology, taken from each model's own abrupt4xCO2 run minus piControl (using the mean of years 111-140 of abrupt4xCO2, and the parallel 30-year section of piControl). CO2 is quadrupled, and the increase in CO2 is seen by both the radiation scheme and vegetation",
+                "end_year":"2014",
+                "experiment":"as AMIP but with warming pattern from abrupt4xCO2 added to SSTs and 4xCO2 seen by radiation and vegetation",
+                "experiment_id":"amip-a4SST-4xCO2",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"5",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "hist-all-aer2":{
+            "amip-future4K":{
                 "activity_id":[
-                    "DAMIP"
+                    "CFMIP"
                 ],
-                "description":"Historical ALL forcing run with alternate estimates of aerosol concentrations/emissions",
-                "start_year":"1850",
-                "end_year":"2020",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"As CMIP5/CFMIP-2 amipFuture experiment. AMIP experiment where SSTs are subject to a composite SST warming pattern derived from coupled models, scaled to an ice-free ocean mean of 4K",
+                "end_year":"2014",
+                "experiment":"AMIP with patterned 4K SST increase",
+                "experiment_id":"amip-future4K",
+                "min_number_yrs_per_sim":"36",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"historical ALL-forcing run with alternate estimates of aerosol forcing",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"171",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "dcppC-amv-extrop-minus":{
+            "amip-hist":{
                 "activity_id":[
-                    "DCPP"
+                    "GMMIP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"1993",
-                "end_year":"1996",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized negative extratropical AMV anomaly pattern",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM",
-                    "BGC"
+                    "CHEM"
+                ],
+                "description":"Extended AMIP run that covers 1870-2014. All natural and anthropogenic historical forcings as used in CMIP6 Historical Simulation will be included. AGCM resolution as CMIP6 Historical Simulation. The HadISST data will be used",
+                "end_year":"2014",
+                "experiment":"AMIP-style simulation covering the period 1870-2014",
+                "experiment_id":"amip-hist",
+                "min_number_yrs_per_sim":"144",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"5",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"1870",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "lfmip-pdLC":{
+            "amip-hld":{
                 "activity_id":[
-                    "LS3MIP"
+                    "GMMIP"
                 ],
-                "description":"Prescribed land conditions 1980-2014 climate",
-                "start_year":"1980",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"The topography of the highlands in Africa, N. America and S. America TP is modified by setting surface elevations to a certain height (500m). Same model as DECK",
+                "end_year":"2014",
+                "experiment":"same as \"amip\" run, but surface elevations of the East African Highlands in Africa, Sierra Madre in N. America and Andes in S. America reduced to 500m",
+                "experiment_id":"amip-hld",
+                "min_number_yrs_per_sim":"36",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"prescribed land conditions (from current climate climatology) and initialized from \"historical\" run year 1980",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"121",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "ism-bsmb-std":{
+            "amip-lfmip-pObs":{
                 "activity_id":[
-                    "ISMIP6"
+                    "LS3MIP"
                 ],
-                "description":"Offline ice sheet simulation with synthetic oceanic dataset to explore the uncertainty in sea level due to ice sheet initialization",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    ""
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
                 ],
+                "description":"Land-hist land conditions; AMIP SSTs",
+                "end_year":"2014",
+                "experiment":"prescribed land (from pseudo-observations) and AMIP SSTs",
+                "experiment_id":"amip-lfmip-pObs",
+                "min_number_yrs_per_sim":"36",
                 "parent_activity_id":[
-                    "ISMIP"
+                    "no parent"
                 ],
-                "experiment":"offline ice sheet forced by initMIP synthetic oceanic experiment",
-                "additional_allowed_model_components":[
-                    ""
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "ISM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"100",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "G6solar":{
+            "amip-lfmip-pdLC":{
                 "activity_id":[
-                    "GeoMIP"
-                ],
-                "description":"Using solar irradiance reduction, return the radiative forcing from a background of the ScenarioMIP high forcing to the ScenarioMIP middle forcing",
-                "start_year":"2020",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "LS3MIP"
                 ],
-                "experiment":"total solar irradiance reduction to reduce net forcing from SSP585 to SSP245",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Prescribed land conditions 1980-2014 climate; AMIP SSTs",
+                "end_year":"2014",
+                "experiment":"prescribed land (from current climatology) and AMIP SSTs",
+                "experiment_id":"amip-lfmip-pdLC",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"81",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "highresSST-4co2":{
+            "amip-lfmip-rmLC":{
                 "activity_id":[
-                    "HighResMIP"
+                    "LS3MIP"
                 ],
-                "description":"Similar to CFMIP amip-4xCO2, SSTs are held at highresSST-present values and the CO2 seen by the radiation scheme is quadrupled. Run over years 2005-2014 of highresSST-present",
-                "start_year":"1951",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "highresSST-present"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
                 ],
+                "description":"Prescribed land conditions 30yr running mean; AMIP SSTs",
+                "end_year":"2014",
+                "experiment":"prescribed land conditions (from running mean climatology) and AMIP SSTs",
+                "experiment_id":"amip-lfmip-rmLC",
+                "min_number_yrs_per_sim":"36",
                 "parent_activity_id":[
-                    "HighResMIP"
+                    "no parent"
                 ],
-                "experiment":"highresSST-present SST with 4xCO2 concentrations",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"64",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "1pctCO2Ndep-bgc":{
+            "amip-lwoff":{
                 "activity_id":[
-                    "C4MIP"
-                ],
-                "description":"Biogeochemically-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling, plus an additional scenario of anthropogenic nitrogen deposition",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "CFMIP"
                 ],
-                "experiment":"biogeochemically-coupled version of 1 percent per year increasing CO2 experiment with increasing N-deposition",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"As amip experiment, but with cloud-radiative effects switched off in the LW radiation code",
+                "end_year":"2014",
+                "experiment":"AMIP experiment with longwave cloud-radiative effects off",
+                "experiment_id":"amip-lwoff",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
-                    "AOGCM",
-                    "BGC"
+                    "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"150",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "control-1950":{
+            "amip-m4K":{
                 "activity_id":[
-                    "HighResMIP"
+                    "CFMIP"
                 ],
-                "description":"Coupled integrations, at least one with constant 1950\"s forcing (CTL) and one or more with historic and then RCP4.5 (as in Forced_Atmos_Land, EXP)",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"coupled control with fixed 1950's forcing (HighResMIP equivalent of pre-industrial control)",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM",
-                    "BGC"
+                    "CHEM"
+                ],
+                "description":"As amip experiment but SSTs are subject to a uniform cooling of 4K",
+                "end_year":"2014",
+                "experiment":"AMIP with uniform 4K SST decrease",
+                "experiment_id":"amip-m4K",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"100",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "dcppC-ipv-nextrop-plus":{
+            "amip-p4K":{
                 "activity_id":[
-                    "DCPP"
+                    "CFMIP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized positive northern extratropical IPV anomaly pattern",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM",
-                    "BGC"
+                    "CHEM"
+                ],
+                "description":"As CMIP5/CFMIP-2 amip4K experiment. AMIP experiment where SSTs are subject to a uniform warming of 4K",
+                "end_year":"2014",
+                "experiment":"AMIP with uniform 4K SST increase",
+                "experiment_id":"amip-p4K",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "piSST-4xCO2-rad":{
+            "amip-p4K-lwoff":{
                 "activity_id":[
                     "CFMIP"
                 ],
-                "description":"Same as piSST but CO2 as seen by the radiation scheme is quadrupled",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"as piSST with radiation-only seeing 4xCO2",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"As amip-p4K experiment, but with cloud-radiative effects switched off in the LW radiation code",
+                "end_year":"2014",
+                "experiment":"AMIP experiment with uniform 4K SST increase and with longwave cloud radiative effects off",
+                "experiment_id":"amip-p4K-lwoff",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "amip-lfmip-rmLC":{
+            "amip-piForcing":{
                 "activity_id":[
-                    "LS3MIP"
+                    "CFMIP"
                 ],
-                "description":"Prescribed land conditions 30yr running mean; AMIP SSTs",
-                "start_year":"1980",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"prescribed land conditions (from running mean climatology) and AMIP SSTs",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"Identical to standard AMIP experiment but from 1870-present with constant pre-industrial forcing levels (anthropogenic and natural)",
+                "end_year":"2014",
+                "experiment":"AMIP SSTs with pre-industrial anthropogenic and natural forcing",
+                "experiment_id":"amip-piForcing",
+                "min_number_yrs_per_sim":"145",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"121",
-                "sub_experiment_id":"none"
+                "start_year":"1870",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp126":{
+            "aqua-4xCO2":{
                 "activity_id":[
-                    "ScenarioMIP"
+                    "CFMIP"
                 ],
-                "description":"Future scenario with low radiative forcing by the end of century. Following approximately RCP2.6 global forcing pathway but with new forcing based on SSP1. Concentration-driven",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"Extended version of CMIP5/CFMIP-2 aqua4xCO2 experiment. Aquaplanet experiment where SSTs are held at control values and the CO2 seen by the radiation scheme is quadrupled",
+                "end_year":"",
+                "experiment":"aquaplanet with control SST and 4xCO2",
+                "experiment_id":"aqua-4xCO2",
+                "min_number_yrs_per_sim":"10",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"update of RCP2.6 based on SSP1",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "volc-cluster-21C":{
+            "aqua-control":{
                 "activity_id":[
-                    "VolMIP"
+                    "CFMIP"
                 ],
-                "description":"Parallel experiment to volc-cluster-ctrl, using restart files from the end of the historical simulation instead of from piControl, and boundary conditions from the 21st century SSP2-4.5 scenario experiment of ScenarioMIP",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"Extended version of CMIP5/CFMIP-2 aquaControl experiment. Aquaplanet (no land) experiment with no seasonal cycle forced with specified zonally symmetric SSTs",
+                "end_year":"",
+                "experiment":"aquaplanet control",
+                "experiment_id":"aqua-control",
+                "min_number_yrs_per_sim":"10",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"volcanic cluster experiment under 21st century SSP2-4.5 scenario",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"85",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "ism-asmb-std":{
+            "aqua-control-lwoff":{
                 "activity_id":[
-                    "ISMIP6"
+                    "CFMIP"
                 ],
-                "description":"Offline ice sheet simulation with synthetic atmospheric dataset to explore the uncertainty in sea level due to ice sheet initialization",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    ""
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"As aqua-control experiment, but with cloud-radiative effects switched off in the LW radiation code",
+                "end_year":"",
+                "experiment":"aquaplanet control with longwave cloud radiative effects off",
+                "experiment_id":"aqua-control-lwoff",
+                "min_number_yrs_per_sim":"10",
                 "parent_activity_id":[
-                    "ISMIP"
+                    "no parent"
                 ],
-                "experiment":"offline ice sheet forced by initMIP synthetic atmospheric experiment",
-                "additional_allowed_model_components":[
-                    ""
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "ISM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"100",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "highresSST-future":{
+            "aqua-p4K":{
                 "activity_id":[
-                    "HighResMIP"
+                    "CFMIP"
                 ],
-                "description":"Extend Forced_Atmos_land to 2050 with agreed forcings (with option to extend further to 2100)",
-                "start_year":"2015",
-                "end_year":"2050",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "highresSST-present"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"Extended version of CMIP5/CFMIP-2 aqua4K experiment. Aquaplanet experiment where SSTs are subject to a uniform warming of 4K",
+                "end_year":"",
+                "experiment":"aquaplanet with uniform 4K SST increase",
+                "experiment_id":"aqua-p4K",
+                "min_number_yrs_per_sim":"10",
                 "parent_activity_id":[
-                    "HighResMIP"
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "aqua-p4K-lwoff":{
+                "activity_id":[
+                    "CFMIP"
                 ],
-                "experiment":"forced atmosphere experiment for 2015-2050 using SST/sea-ice derived from CMIP5 RCP8.5 simulations and a scenario as close to RCP8.5 as possible within CMIP6",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"As aqua-p4K experiment, but with cloud-radiative effects switched off in the LW radiation code",
+                "end_year":"",
+                "experiment":"aquaplanet with uniform 4K SST increase and with longwave cloud radiative effects off",
+                "experiment_id":"aqua-p4K-lwoff",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"36",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "esm-ssp585-ssp126Lu":{
+            "control-1950":{
                 "activity_id":[
-                    "LUMIP"
+                    "HighResMIP"
                 ],
-                "description":"Additional land use policy sensitivity simulation for high radiative forcing scenario, keep all forcings the same as in C4MIP esmssp5-8.5 scenario except use SSP1-2.6 land use; emission driven",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "esm-hist"
+                "additional_allowed_model_components":[
+                    "AER"
                 ],
+                "description":"Coupled integrations with constant 1950\"s forcing",
+                "end_year":"",
+                "experiment":"coupled control with fixed 1950's forcing (HighResMIP equivalent of pre-industrial control)",
+                "experiment_id":"control-1950",
+                "min_number_yrs_per_sim":"100",
                 "parent_activity_id":[
-                    "CMIP"
+                    "HighResMIP"
                 ],
-                "experiment":"emissions-driven SSP5-8.5 with SSP1-2.6 land use",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "spinup-1950"
                 ],
                 "required_model_components":[
-                    "AOGCM",
-                    "BGC"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "dcppA-hindcast":{
+            "control-slab":{
                 "activity_id":[
-                    "DCPP"
+                    "VolMIP"
                 ],
-                "description":"Decadal hindcasts begun each year from 1960 to present, or every other year at minimum",
-                "start_year":"1960",
-                "end_year":"present (to 2019)",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":[
-                    "dcppA-assim",
-                    ""
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
                 ],
+                "description":"slab control run for volc-pinatubo-slab",
+                "end_year":"",
+                "experiment":"control with slab ocean",
+                "experiment_id":"control-slab",
+                "min_number_yrs_per_sim":"30",
                 "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
+                "required_model_components":[
+                    "AGCM",
+                    "SLAB"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
+            },
+            "dcppA-assim":{
+                "activity_id":[
                     "DCPP"
                 ],
-                "experiment":"year 1-5 hindcast initialized based on observations and using historical forcing",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"A2.3 Assimilation runs used to generate initial conditions for hindcasts",
+                "end_year":"2016",
+                "experiment":"Assimilation run paralleling the historical simulation, which may be used to generate hindcast initial conditions",
+                "experiment_id":"dcppA-assim",
+                "min_number_yrs_per_sim":"56",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"300",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"before 1961",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "G6SST2-sulfur":{
+            "dcppA-hindcast":{
                 "activity_id":[
-                    "GeoMIP"
+                    "DCPP"
                 ],
-                "description":"Time slice at 2100 (G6sulfur)",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G6sulfur",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"A1 (and A2.1, A3.1, and A3.2) Decadal hindcasts begun near the end of each year from 1960 to 2016, or every other year at minimum. First full hindcast year follows start year (e.g., for s1960, first full hindcast year is 1961)",
+                "end_year":"5 - 10 years after start year",
+                "experiment":"hindcast initialized based on observations and using historical forcing",
+                "experiment_id":"dcppA-hindcast",
+                "min_number_yrs_per_sim":"5",
+                "parent_activity_id":[
+                    "no parent",
+                    "DCPP"
+                ],
+                "parent_experiment_id":[
+                    "no parent",
+                    "dcppA-assim"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
+                "start_year":"a year in the range 1960-2016",
+                "sub_experiment_id":[
+                    "s1960",
+                    "s1961",
+                    "s1962",
+                    "s1963",
+                    "s1964",
+                    "s1965",
+                    "s1966",
+                    "s1967",
+                    "s1968",
+                    "s1969",
+                    "s1970",
+                    "s1971",
+                    "s1972",
+                    "s1973",
+                    "s1974",
+                    "s1975",
+                    "s1976",
+                    "s1977",
+                    "s1978",
+                    "s1979",
+                    "s1980",
+                    "s1981",
+                    "s1982",
+                    "s1983",
+                    "s1984",
+                    "s1985",
+                    "s1986",
+                    "s1987",
+                    "s1988",
+                    "s1989",
+                    "s1990",
+                    "s1991",
+                    "s1992",
+                    "s1993",
+                    "s1994",
+                    "s1995",
+                    "s1996",
+                    "s1997",
+                    "s1998",
+                    "s1999",
+                    "s2000",
+                    "s2001",
+                    "s2002",
+                    "s2003",
+                    "s2004",
+                    "s2005",
+                    "s2006",
+                    "s2007",
+                    "s2008",
+                    "s2009",
+                    "s2010",
+                    "s2011",
+                    "s2012",
+                    "s2013",
+                    "s2014",
+                    "s2015",
+                    "s2016"
+                ],
+                "tier":"1"
             },
-            "piClim-aer":{
+            "dcppA-hindcast-niff":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "DCPP"
                 ],
-                "description":"Perturbation from 1850 control using 2014 aerosol emissions",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but 2014 aerosol emissions",
                 "additional_allowed_model_components":[
-                    "CHEM"
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"A4.1 Decadal hindcasts begun near the end of each year from 1960 to 2016, or every other year at minimum, but with no information from the future. First full hindcast year follows start year (e.g., for s1960, first full hindcast year is 1961)",
+                "end_year":"5 - 10 years after start year",
+                "experiment":"hindcast initialized based on observations but without using knowledge of subsequent historical forcing",
+                "experiment_id":"dcppA-hindcast-niff",
+                "min_number_yrs_per_sim":"5",
+                "parent_activity_id":[
+                    "no parent",
+                    "DCPP"
+                ],
+                "parent_experiment_id":[
+                    "no parent",
+                    "dcppA-assim"
                 ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"a year in the range 1960-2016",
+                "sub_experiment_id":[
+                    "s1960",
+                    "s1961",
+                    "s1962",
+                    "s1963",
+                    "s1964",
+                    "s1965",
+                    "s1966",
+                    "s1967",
+                    "s1968",
+                    "s1969",
+                    "s1970",
+                    "s1971",
+                    "s1972",
+                    "s1973",
+                    "s1974",
+                    "s1975",
+                    "s1976",
+                    "s1977",
+                    "s1978",
+                    "s1979",
+                    "s1980",
+                    "s1981",
+                    "s1982",
+                    "s1983",
+                    "s1984",
+                    "s1985",
+                    "s1986",
+                    "s1987",
+                    "s1988",
+                    "s1989",
+                    "s1990",
+                    "s1991",
+                    "s1992",
+                    "s1993",
+                    "s1994",
+                    "s1995",
+                    "s1996",
+                    "s1997",
+                    "s1998",
+                    "s1999",
+                    "s2000",
+                    "s2001",
+                    "s2002",
+                    "s2003",
+                    "s2004",
+                    "s2005",
+                    "s2006",
+                    "s2007",
+                    "s2008",
+                    "s2009",
+                    "s2010",
+                    "s2011",
+                    "s2012",
+                    "s2013",
+                    "s2014",
+                    "s2015",
+                    "s2016"
+                ],
+                "tier":"4"
             },
-            "volc-pinatubo-ini":{
+            "dcppA-historical-niff":{
                 "activity_id":[
-                    "VolMIP"
+                    "DCPP"
                 ],
-                "description":"As volc-pinatubo-full, but as decadal prediction runs. Joint experiment with DCPP, forcing input and implementation of the forcing fully comply with the VolMIP protocol",
-                "start_year":"2015",
-                "end_year":"2019",
-                "sub_experiment":"initialized near end of year 2014",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"Pinatubo experiment for decadal climate prediction",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"A4.2 Hindcasts initialized from historical climate simulations as in DCPP-A2.2, but with no information from the future. First full hindcast year follows start year (e.g., for s1960, first full hindcast year is 1961)",
+                "end_year":"5 - 10 years after start year",
+                "experiment":"hindcast initialized from historical climate simulation but without using knowledge of subsequent historical forcing",
+                "experiment_id":"dcppA-historical-niff",
+                "min_number_yrs_per_sim":"5",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"5",
-                "sub_experiment_id":"s2014"
+                "start_year":"A year in the range 1960-2016",
+                "sub_experiment_id":[
+                    "s1960",
+                    "s1961",
+                    "s1962",
+                    "s1963",
+                    "s1964",
+                    "s1965",
+                    "s1966",
+                    "s1967",
+                    "s1968",
+                    "s1969",
+                    "s1970",
+                    "s1971",
+                    "s1972",
+                    "s1973",
+                    "s1974",
+                    "s1975",
+                    "s1976",
+                    "s1977",
+                    "s1978",
+                    "s1979",
+                    "s1980",
+                    "s1981",
+                    "s1982",
+                    "s1983",
+                    "s1984",
+                    "s1985",
+                    "s1986",
+                    "s1987",
+                    "s1988",
+                    "s1989",
+                    "s1990",
+                    "s1991",
+                    "s1992",
+                    "s1993",
+                    "s1994",
+                    "s1995",
+                    "s1996",
+                    "s1997",
+                    "s1998",
+                    "s1999",
+                    "s2000",
+                    "s2001",
+                    "s2002",
+                    "s2003",
+                    "s2004",
+                    "s2005",
+                    "s2006",
+                    "s2007",
+                    "s2008",
+                    "s2009",
+                    "s2010",
+                    "s2011",
+                    "s2012",
+                    "s2013",
+                    "s2014",
+                    "s2015",
+                    "s2016"
+                ],
+                "tier":"4"
             },
-            "piClim-ghg":{
+            "dcppB-forecast":{
                 "activity_id":[
-                    "RFMIP"
+                    "DCPP"
                 ],
-                "description":"As in RFMIP-ERF-PI-Cntrl but with present-day greenhouse gases",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"effective radiative forcing by present-day greenhouse gases",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
                 ],
-                "required_model_components":[
-                    "AGCM"
+                "description":"B1 (and B2.1, B2.2) Ongoing decadal forecasts. First full forecast year follows start year (e.g., for s2017, first full forecast year is 2018)",
+                "end_year":"5 years after start year",
+                "experiment":"forecast initialized from observations with forcing from ssp245",
+                "experiment_id":"dcppB-forecast",
+                "min_number_yrs_per_sim":"5",
+                "parent_activity_id":[
+                    "no parent",
+                    "DCPP"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
-            },
-            "omip1-spunup":{
-                "activity_id":[
-                    "OMIP"
+                "parent_experiment_id":[
+                    "no parent",
+                    "dcppA-assim"
                 ],
-                "description":"Same as the omipv1 experiment except that it is not initialized with observed climatologies; rather it is initialized with results from at least a 2000-year spin up of the coupled physical-biogeochemical models. Also it includes radiocarbon to evaluate deep-ocean circulation",
-                "start_year":"1",
-                "end_year":"310",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"OMIP experiment forced by Large and Yeager (CORE-2, NCEP) atmospheric data set and initialized from at least a 2000-year spin up of the coupled physical-biogeochemical model",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "OGCM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"310",
-                "sub_experiment_id":"none"
-            },
-            "histSST-1950HC":{
+                "start_year":"a year in the range 2017-2029",
+                "sub_experiment_id":[
+                    "s2017",
+                    "s2018",
+                    "s2019",
+                    "s2020",
+                    "s2021",
+                    "s2022",
+                    "s2023",
+                    "s2024",
+                    "s2025",
+                    "s2026",
+                    "s2027",
+                    "s2028",
+                    "s2029"
+                ],
+                "tier":"1"
+            },
+            "dcppC-amv-ExTrop-neg":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "DCPP"
                 ],
-                "description":"Historical WMGHG concentrations and NTCF emissions, 1950 halocarbon concentrations",
-                "start_year":"1950",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical SSTs and historical forcing, but with1950 halocarbon concentrations",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "AGCM",
+                "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"65",
-                "sub_experiment_id":"none"
+                "description":"C1.7 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
+                "end_year":"",
+                "experiment":"Idealized climate impact of negative extratropical AMV anomaly pattern",
+                "experiment_id":"dcppC-amv-ExTrop-neg",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "control-slab":{
+            "dcppC-amv-ExTrop-pos":{
                 "activity_id":[
-                    "VolMIP"
+                    "DCPP"
                 ],
-                "description":"slab control run for volc-pinatubo-slab",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"control with slab ocean",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"C1.7Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
+                "end_year":"",
+                "experiment":"Idealized climate impact of positive extratropical AMV anomaly pattern",
+                "experiment_id":"dcppC-amv-ExTrop-pos",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
-                    "AGCM",
-                    "SLAB"
+                    "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp370SST-lowAer":{
+            "dcppC-amv-Trop-neg":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "DCPP"
                 ],
-                "description":"Future SSP3-7.0 with reduced aerosol emissions (from ssp370-lowNTCF), prescribed SSTs",
-                "start_year":"2015",
-                "end_year":"2055",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSP3-7.0, prescribed SSTs, with low aerosol emissions",
                 "additional_allowed_model_components":[
-                    "CHEM"
-                ],
-                "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "AER",
+                    "CHEM",
+                    "BGC"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"41",
-                "sub_experiment_id":"none"
-            },
-            "ism-ssp585-std":{
-                "activity_id":[
-                    "ISMIP6"
+                "description":"C1.8 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
+                "end_year":"",
+                "experiment":"Idealized climate impact of negative tropical AMV anomaly pattern",
+                "experiment_id":"dcppC-amv-Trop-neg",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "CMIP"
                 ],
-                "description":"Future climate ScenarioMIP SSP5-8.5 simulation using \"offline\" ice sheet models. Forcing for ice sheet model is the standard dataset based on ScenarioMIP ssp585",
-                "start_year":"2015",
-                "end_year":"2300",
-                "sub_experiment":"none",
                 "parent_experiment_id":[
-                    "ism-historical-std"
-                ],
-                "parent_activity_id":[
-                    "ISMIP6"
+                    "piControl"
                 ],
-                "experiment":"offline ice sheet forced by ISMIP6-specified AOGCM ssp585 output",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "ISM"
-                ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"286",
-                "sub_experiment_id":"none"
-            },
-            "piClim-2xVOC":{
-                "activity_id":[
-                    "AerChemMIP"
+                    "AOGCM"
                 ],
-                "description":"1850 control with doubled emissions of biogenic VOCs",
                 "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled emissions of biogenic VOCs",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "AGCM",
-                    "AER",
-                    "CHEM"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "tier":"2"
             },
-            "ism-lig127k-std":{
+            "dcppC-amv-Trop-pos":{
                 "activity_id":[
-                    "ISMIP6"
+                    "DCPP"
                 ],
-                "description":"Last interglacial simulation of ice sheet evolution driven by PMIP lig127k",
-                "start_year":"",
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"C1.8 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"offline ice sheet forced by ISMIP6-specified AGCM last interglacial output",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "ISM"
+                "experiment":"idealized positive tropical AMV anomaly pattern",
+                "experiment_id":"dcppC-amv-Trop-pos",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "CMIP"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"",
-                "sub_experiment_id":"none"
-            },
-            "ism-amip-std":{
-                "activity_id":[
-                    "ISMIP6"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
-                "description":"Offline ice sheet evolution for the last few decades forced by amip",
-                "start_year":"1979",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"offline ice sheet forced by ISMIP6-specified AGCM AMIP output",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "ISM"
+                    "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"36",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piClim-histnat":{
+            "dcppC-amv-neg":{
                 "activity_id":[
-                    "RFMIP"
+                    "DCPP"
                 ],
-                "description":"Time-varying forcing from volcanos, solar variability, etc. SST and sea ice fixed at preindustrial control. Interactive vegetation",
-                "start_year":"1850",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"transient effective radiative forcing by natural perturbations",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
-                ],
-                "required_model_components":[
-                    "AGCM"
-                ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"251",
-                "sub_experiment_id":"none"
-            },
-            "volc-long-eq":{
-                "activity_id":[
-                    "VolMIP"
+                    "CHEM",
+                    "BGC"
                 ],
-                "description":"Idealized equatorial eruption corresponding to an initial emission of 56.2 Tg of SO2. The eruption magnitude corresponds to recent estimates for the 1815 Tambora eruption (Sigl et al., 2015), the largest historical tropical eruption, which was linked to the so-called \"year without a summer\" in 1816. Experiment initialized from PiControl",
-                "start_year":"",
+                "description":"C1.3 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
+                "experiment":"Idealized climate impact of negative AMV anomaly pattern",
+                "experiment_id":"dcppC-amv-neg",
+                "min_number_yrs_per_sim":"10",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"idealized equatorial volcanic eruption emitting 56.2 Tg SO2",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"20",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "lfmip-rmLC":{
+            "dcppC-amv-pos":{
                 "activity_id":[
-                    "LS3MIP"
-                ],
-                "description":"Prescribed land conditions 30yr running mean",
-                "start_year":"1980",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "DCPP"
                 ],
-                "experiment":"prescribed land conditions (from running mean climatology) and initialized from \"historical\" run year 1980",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
-                "required_model_components":[
-                    "AOGCM"
-                ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"121",
-                "sub_experiment_id":"none"
-            },
-            "abrupt-solp4p":{
-                "activity_id":[
-                    "CFMIP"
-                ],
-                "description":"Conceptually similar to abrupt 4xCO2 DECK experiment, except that the solar constant rather than CO2 is abruptly increased by 4%",
-                "start_year":"",
+                "description":"C1.2 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
+                "experiment":"Idealized climate impact of positive AMV anomaly pattern",
+                "experiment_id":"dcppC-amv-pos",
+                "min_number_yrs_per_sim":"10",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"abrupt 4% increase in solar constant",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"150",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "amip-p4K-lwoff":{
+            "dcppC-atl-control":{
                 "activity_id":[
-                    "CFMIP"
+                    "DCPP"
                 ],
-                "description":"As amip-p4K experiment, but with cloud-radiative effects switched off in the LW radiation code",
-                "start_year":"1979",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"AMIP experiment with uniform 4K SST increase and with longwave cloud radiative effects off",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
-                ],
-                "required_model_components":[
-                    "AGCM"
-                ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"36",
-                "sub_experiment_id":"none"
-            },
-            "abrupt-0p5xCO2":{
-                "activity_id":[
-                    "CFMIP"
+                    "CHEM",
+                    "BGC"
                 ],
-                "description":"Identical to the DECK abrupt-4xCO2, but at 0.5xCO2",
-                "start_year":"",
+                "description":"C1.1 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
+                "experiment":"Idealized Atlantic control",
+                "experiment_id":"dcppC-atl-control",
+                "min_number_yrs_per_sim":"10",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"abrupt halving of CO2",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"150",
-                "sub_experiment_id":"none"
-            },
-            "abrupt-2xCO2":{
-                "activity_id":[
-                    "CFMIP"
-                ],
-                "description":"Identical to the DECK abrupt-4xCO2, but at 2xCO2",
                 "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "parent_activity_id":[
-                    "CMIP"
+                "tier":"1"
+            },
+            "dcppC-atl-pacemaker":{
+                "activity_id":[
+                    "DCPP"
                 ],
-                "experiment":"abrupt doubling of CO2",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"C1.11 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
+                "end_year":"2014",
+                "experiment":"pacemaker Atlantic experiment",
+                "experiment_id":"dcppC-atl-pacemaker",
+                "min_number_yrs_per_sim":"65",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"150",
-                "sub_experiment_id":"none"
+                "start_year":"1910 or 1950",
+                "sub_experiment_id":[
+                    "s1910",
+                    "s1950"
+                ],
+                "tier":"3"
             },
-            "dcppC-hindcast-noElChichon":{
+            "dcppC-atl-spg":{
                 "activity_id":[
                     "DCPP"
                 ],
-                "description":"Effects of volcanoes on decadal prediction and predictability of forced and internal variability components",
-                "start_year":"1982",
-                "end_year":"1982",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":[
-                    "dcppA-assim",
-                    ""
-                ],
-                "parent_activity_id":[
-                    "DCPP"
-                ],
-                "experiment":"",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"C2.1 (and C2.2) Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs. First full hindcast year follows start year (e.g., for s1992, first full hindcast year is 1993)",
+                "end_year":"5 - 10 years after start year",
+                "experiment":"predictability of 1990s warming of Atlantic sub-polar gyre",
+                "experiment_id":"dcppC-atl-spg",
+                "min_number_yrs_per_sim":"5",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"5",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"A year in the range 1992-1999",
+                "sub_experiment_id":[
+                    "s1992",
+                    "s1993",
+                    "s1994",
+                    "s1995",
+                    "s1996",
+                    "s1997",
+                    "s1998",
+                    "s1999"
+                ],
+                "tier":"3"
             },
-            "hist-CO2":{
+            "dcppC-forecast-addAgung":{
                 "activity_id":[
-                    "DAMIP"
-                ],
-                "description":"Historical CO2-only run",
-                "start_year":"1850",
-                "end_year":"2020",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "DCPP"
                 ],
-                "experiment":"historical CO2-only run",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"C3.4 Effects of volcanoes on decadal prediction and predictability of forced and internal variability components. First full hindcast year is 2015",
+                "end_year":"5 - 10 years after start year",
+                "experiment":"2015 forecast with added Agung forcing",
+                "experiment_id":"dcppC-forecast-addAgung",
+                "min_number_yrs_per_sim":"5",
+                "parent_activity_id":[
+                    "no parent",
+                    "DCPP"
+                ],
+                "parent_experiment_id":[
+                    "no parent",
+                    "dcppA-assim"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"171",
-                "sub_experiment_id":"none"
+                "start_year":"2014",
+                "sub_experiment_id":[
+                    "s2014"
+                ],
+                "tier":"3"
             },
-            "dcppC-amv-trop-plus":{
+            "dcppC-forecast-addElChichon":{
                 "activity_id":[
                     "DCPP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"1992",
-                "end_year":"1999",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized positive tropical AMV anomaly pattern",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"C3.5 Effects of volcanoes on decadal prediction and predictability of forced and internal variability components. First full hindcast year is 2015",
+                "end_year":"5 - 10 years after start year",
+                "experiment":"2015 forecast with added El Chichon forcing",
+                "experiment_id":"dcppC-forecast-addElChichon",
+                "min_number_yrs_per_sim":"5",
+                "parent_activity_id":[
+                    "no parent",
+                    "DCPP"
+                ],
+                "parent_experiment_id":[
+                    "no parent",
+                    "dcppA-assim"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"5",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"2014",
+                "sub_experiment_id":[
+                    "s2014"
+                ],
+                "tier":"3"
             },
-            "hist-piAer":{
+            "dcppC-forecast-addPinatubo":{
                 "activity_id":[
-                    "AerChemMIP"
-                ],
-                "description":"Historical WMGHG, halocarbon concentrations and O3 precursor emissions, 1850 aerosol precursor emissions",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "DCPP",
+                    "VolMIP"
                 ],
-                "experiment":"historical forcing, but with pre-industrial aerosol emissions",
                 "additional_allowed_model_components":[
+                    "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"C3.6 Effects of volcanoes on decadal prediction and predictability of forced and internal variability components. First full hindcast year is 2015",
+                "end_year":"5 - 10 years after start year",
+                "experiment":"2015 forecast with added Pinatubo forcing",
+                "experiment_id":"dcppC-forecast-addPinatubo",
+                "min_number_yrs_per_sim":"5",
+                "parent_activity_id":[
+                    "no parent",
+                    "DCPP"
+                ],
+                "parent_experiment_id":[
+                    "no parent",
+                    "dcppA-assim"
+                ],
                 "required_model_components":[
-                    "AOGCM",
-                    "AER"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"2014",
+                "sub_experiment_id":[
+                    "s2014"
+                ],
+                "tier":"1"
             },
-            "amip-TIP-nosh":{
+            "dcppC-hindcast-noAgung":{
                 "activity_id":[
-                    "GMMIP"
+                    "DCPP"
                 ],
-                "description":"Surface sensible heat released at the elevation above 500m over the TIP is not allowed to heat the atmosphere. Same model as DECK",
-                "start_year":"1979",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"same as \"amip\" run, but sensible heat not allowed for elevations of the Tibetan-Iranian Plateau and Himalayas above 500m",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
                 ],
-                "required_model_components":[
-                    "AGCM"
+                "description":"C3.3 Effects of volcanoes on decadal prediction and predictability of forced and internal variability components. First full hindcast year is 1962",
+                "end_year":"5 - 10 years after start year",
+                "experiment":"hindcast but with only background volcanic forcing to be the same as that used in the 2015 forecast",
+                "experiment_id":"dcppC-hindcast-noAgung",
+                "min_number_yrs_per_sim":"5",
+                "parent_activity_id":[
+                    "no parent",
+                    "DCPP"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"35",
-                "sub_experiment_id":"none"
-            },
-            "piClim-N2O":{
-                "activity_id":[
-                    "AerChemMIP"
+                "parent_experiment_id":[
+                    "no parent",
+                    "dcppA-assim"
                 ],
-                "description":"Perturbation from 1850 control using 2014 N2O concentrations",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 N2O concentrations (including chemistry)",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "AGCM",
-                    "AER",
-                    "CHEM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"1962",
+                "sub_experiment_id":[
+                    "s1962"
+                ],
+                "tier":"2"
             },
-            "hist-resIPO":{
+            "dcppC-hindcast-noElChichon":{
                 "activity_id":[
-                    "GMMIP"
-                ],
-                "description":"Pacemaker 20th century historical run that includes all forcing as used in CMIP6 Historical Simulation, and the observational historical SST is restored in the tropical lobe of the IPO domain (20degS-20degN, 175degE-75degW). The HadISST data will be used",
-                "start_year":"1870",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "DCPP"
                 ],
-                "experiment":"initialized from \"historical\" run year 1870 and SSTs in tropical lobe of the IPO domain (20degS-20degN, 175degE-75degW) restored to AMIP SSTs with historical forcings",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
-                "required_model_components":[
-                    "AOGCM"
+                "description":"C3.2 Effects of volcanoes on decadal prediction and predictability of forced and internal variability components. First full hindcast year is 1982",
+                "end_year":"5 - 10 years after start year",
+                "experiment":"hindcast but with only background volcanic forcing to be the same as that used in the 2015 forecast",
+                "experiment_id":"dcppC-hindcast-noElChichon",
+                "min_number_yrs_per_sim":"5",
+                "parent_activity_id":[
+                    "no parent",
+                    "DCPP"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"144",
-                "sub_experiment_id":"none"
-            },
-            "land-hist-altStartYear":{
-                "activity_id":[
-                    "LUMIP"
+                "parent_experiment_id":[
+                    "no parent",
+                    "dcppA-assim"
                 ],
-                "description":"Same as land-hist except starting from either 1700 (for models that typically start in 1850) or 1850 (for models that typically start in 1700)",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only alternate start year",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "LAND"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1981",
+                "sub_experiment_id":[
+                    "s1981"
+                ],
+                "tier":"2"
             },
-            "hist-GHG":{
+            "dcppC-hindcast-noPinatubo":{
                 "activity_id":[
-                    "DAMIP"
-                ],
-                "description":"Historical well-mixed GHG-only run. Models with interactive chemistry schemes should either turn off the chemistry or use a preindustrial climatology of stratospheric and tropospheric ozone in their radiation schemes. This will ensure that ozone is fixed in all these simulations, and simulated responses in models with and without coupled chemistry are comparable",
-                "start_year":"1850",
-                "end_year":"2020",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "DCPP"
                 ],
-                "experiment":"historical well-mixed GHG-only run",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"C3.1 Effects of volcanoes on decadal prediction and predictability of forced and internal variability components. First full hindcast year is 1991",
+                "end_year":"5 - 10 years after start year",
+                "experiment":"hindcast but with only background volcanic forcing to be the same as that used in the 2015 forecast",
+                "experiment_id":"dcppC-hindcast-noPinatubo",
+                "min_number_yrs_per_sim":"5",
+                "parent_activity_id":[
+                    "no parent",
+                    "DCPP"
+                ],
+                "parent_experiment_id":[
+                    "no parent",
+                    "dcppA-assim"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"171",
-                "sub_experiment_id":"none"
+                "start_year":"1990",
+                "sub_experiment_id":[
+                    "s1990"
+                ],
+                "tier":"1"
             },
-            "volc-pinatubo-slab":{
+            "dcppC-ipv-NexTrop-neg":{
                 "activity_id":[
-                    "VolMIP"
-                ],
-                "description":"As volc-pinatubo-full, but with a slab ocean",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "control-slab"
-                ],
-                "parent_activity_id":[
-                    "VolMIP"
+                    "DCPP"
                 ],
-                "experiment":"Pinatubo experiment with slab ocean",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
-                "required_model_components":[
-                    "AGCM",
-                    "SLAB"
+                "description":"C1.9 and predictability of the hiatus and of similar long timescale variations of both signs",
+                "end_year":"",
+                "experiment":"idealized negative northern extratropical IPV anomaly pattern",
+                "experiment_id":"dcppC-ipv-NexTrop-neg",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "CMIP"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"3",
-                "sub_experiment_id":"none"
-            },
-            "ssp370SST-lowCH4":{
-                "activity_id":[
-                    "AerChemMIP"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
-                "description":"Future SSP3-7.0 with reduced CH4 concentrations, prescribed SSTs",
-                "start_year":"2015",
-                "end_year":"2055",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSP3-7.0, prescribed SSTs, with low methane concentrations",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "AGCM",
-                    "AER",
-                    "CHEM"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"41",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "dcppC-ipv-minus":{
+            "dcppC-ipv-NexTrop-pos":{
                 "activity_id":[
                     "DCPP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"control",
-                "end_year":"",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized negative IPV anomaly pattern",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"C1.9 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
+                "end_year":"",
+                "experiment":"idealized positive northern extratropical IPV anomaly pattern",
+                "experiment_id":"dcppC-ipv-NexTrop-pos",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"25",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp245-nat":{
+            "dcppC-ipv-neg":{
                 "activity_id":[
-                    "DAMIP"
-                ],
-                "description":"Extension of natural-only run under SSP2-4.5",
-                "start_year":"2021",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "hist-nat"
-                ],
-                "parent_activity_id":[
-                    "DAMIP"
+                    "DCPP"
                 ],
-                "experiment":"natural-only SSP2-4.5 run",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"C1.6 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
+                "end_year":"",
+                "experiment":"idealized negative IPV anomaly pattern",
+                "experiment_id":"dcppC-ipv-neg",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"80",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "amip-m4K":{
+            "dcppC-ipv-pos":{
                 "activity_id":[
-                    "CFMIP"
+                    "DCPP"
                 ],
-                "description":"As amip experiment but SSTs are subject to a uniform cooling of 4K",
-                "start_year":"1979",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"AMIP with uniform 4K SST decrease",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
-                ],
-                "required_model_components":[
-                    "AGCM"
+                    "CHEM",
+                    "BGC"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"36",
-                "sub_experiment_id":"none"
-            },
-            "1pctCO2":{
-                "activity_id":[
+                "description":"C1.5 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
+                "end_year":"",
+                "experiment":"idealized positive IPV anomaly pattern",
+                "experiment_id":"dcppC-ipv-pos",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
                     "CMIP"
                 ],
-                "description":"DECK: 1pctCO2",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
                 "parent_experiment_id":[
                     "piControl"
                 ],
-                "parent_activity_id":[
-                    "CMIP"
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "dcppC-pac-control":{
+                "activity_id":[
+                    "DCPP"
                 ],
-                "experiment":"1 percent per year increase in CO2",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"C1.4 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
+                "end_year":"",
+                "experiment":"idealized Pacific control",
+                "experiment_id":"dcppC-pac-control",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"150",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "piClim-spAer-aer":{
+            "dcppC-pac-pacemaker":{
                 "activity_id":[
-                    "RFMIP"
+                    "DCPP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"C1.10 Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs. First full hindcast year is 2015",
+                "end_year":"2014",
+                "experiment":"pacemaker Pacific experiment",
+                "experiment_id":"dcppC-pac-pacemaker",
+                "min_number_yrs_per_sim":"65",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
                 ],
-                "description":"Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"effective radiative forcing at present day with specified anthropogenic aerosol optical properties, all forcings",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"",
-                "sub_experiment_id":"none"
+                "start_year":"either 1910 or 1950",
+                "sub_experiment_id":[
+                    "s1910",
+                    "s1950"
+                ],
+                "tier":"3"
             },
-            "piClim-SO2":{
-                "activity_id":"AerChemMIP",
-                "description":"Perturbation from 1850 control using 2014 SO2 emissions",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 SO2 emissions",
+            "deforest-globe":{
+                "activity_id":[
+                    "LUMIP"
+                ],
                 "additional_allowed_model_components":[
-                    "AGCM",
-                    "CHEM"
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Idealized deforestation experiment, 20 million km2 forest removed linearly over a period of 50 years, with an additional 30 years with no specified change in forest cover; all other forcings held constant",
+                "end_year":"",
+                "experiment":"idealized transient global deforestation",
+                "experiment_id":"deforest-globe",
+                "min_number_yrs_per_sim":"81",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "ssp370SST-lowBC":{
+            "esm-hist":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "CMIP"
                 ],
-                "description":"Future SSP3-7.0 with reduced black carbon emissions, prescribed SSTs",
-                "start_year":"2015",
-                "end_year":"2055",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSP3-7.0, prescribed SSTs, with low black carbon emissions",
                 "additional_allowed_model_components":[
+                    "AER",
                     "CHEM"
                 ],
+                "description":"CMIP6 historical (CO2 emission-driven)",
+                "end_year":"2014",
+                "experiment":"all-forcing simulation of the recent past with atmospheric CO2 concentration calculated",
+                "experiment_id":"esm-hist",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "esm-piControl"
+                ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "AOGCM",
+                    "BGC"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"41",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "hist-piNTCF":{
+            "esm-hist-ext":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "CMIP"
                 ],
-                "description":"Historical WMGHG and halocarbons concentrations, 1850 NTCF emissions",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"Extension beyond 2014 of the CMIP6 historical (CO2 emission-driven)",
+                "end_year":"",
+                "experiment":"post-2014 all-forcing simulation with atmospheric CO2 concentration calculated",
+                "experiment_id":"esm-hist-ext",
+                "min_number_yrs_per_sim":"1",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"historical forcing, but with pre-industrial NTCF emissions",
-                "additional_allowed_model_components":[
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "esm-hist"
                 ],
                 "required_model_components":[
                     "AOGCM",
-                    "AER"
+                    "BGC"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "past1000":{
+            "esm-piControl":{
                 "activity_id":[
-                    "PMIP"
+                    "CMIP"
                 ],
-                "description":"main forcings : trace gases, volcanoes, solar variability, land use",
-                "start_year":"850",
-                "end_year":"1849",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"DECK: control (emission-driven)",
+                "end_year":"",
+                "experiment":"pre-industrial control simulation with CO2 concentration calculated",
+                "experiment_id":"esm-piControl",
+                "min_number_yrs_per_sim":"500",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"last millenium",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "esm-piControl-spinup"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AOGCM",
+                    "BGC"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"1000",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "land-crop-noIrrig":{
+            "esm-piControl-spinup":{
                 "activity_id":[
-                    "LUMIP"
+                    "CMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"DECK: spin-up portion of the control (emission-driven)",
+                "end_year":"",
+                "experiment":"pre-industrial control simulation with CO2 concentration calculated (spin-up)",
+                "experiment_id":"esm-piControl-spinup",
+                "min_number_yrs_per_sim":"100",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
-                "description":"Same as land-hist but with irrigated area held at 1850 levels",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only with no irrigation",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "LAND"
+                    "AOGCM",
+                    "BGC"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp585":{
+            "esm-ssp585":{
                 "activity_id":[
-                    "ScenarioMIP"
+                    "C4MIP"
                 ],
-                "description":"Future scenario with high radiative forcing by the end of century. Following approximately RCP8.5 global forcing pathway but with new forcing based on SSP5. Concentration-driven",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"Emissions-driven future scenario simulation",
+                "end_year":"2100",
+                "experiment":"emission-driven RCP8.5 based on SSP5",
+                "experiment_id":"esm-ssp585",
+                "min_number_yrs_per_sim":"85",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"update of RCP8.5 based on SSP5",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "esm-hist"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AOGCM",
+                    "BGC"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "hist-stratO3":{
+            "esm-ssp585-ssp126Lu":{
                 "activity_id":[
-                    "DAMIP"
+                    "LUMIP"
                 ],
-                "description":"Historical stratospheric-ozone-only. In models with coupled chemistry, the chemistry scheme should be turned off, and the simulated ensemble mean monthly mean 3D stratospheric ozone concentrations from the histALL simulations should be prescribed. Tropospheric ozone should be fixed at 3D long-term monthly mean piControl values, with a value of 100 ppbv ozone concentration in this piControl climatology used to separate the troposphere from the stratosphere.  [...]
-                "start_year":"1850",
-                "end_year":"2020",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"Additional land use policy sensitivity simulation for high radiative forcing scenario, keep all forcings the same as in C4MIP esmssp5-8.5 scenario except use SSP1-2.6 land use; emission driven",
+                "end_year":"2100",
+                "experiment":"emissions-driven SSP5-8.5 with SSP1-2.6 land use",
+                "experiment_id":"esm-ssp585-ssp126Lu",
+                "min_number_yrs_per_sim":"86",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"historical stratospheric-ozone-only run",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "esm-hist"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AOGCM",
+                    "BGC"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"171",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "lig127k":{
+            "faf-all":{
                 "activity_id":[
-                    "PMIP"
+                    "FAFMIP"
                 ],
-                "description":"main forcings : orbital parameters, ice-sheet, trace gases",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"last interglacial (127k)",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"1xCO2 experiment, parallel to piControl, forced over the ocean simultaneously by surface windstress (as in the wind experiment), net heat flux (as in the heat experiment) and net freshwater flux (as in the water experiment) anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2, using a passive tracer to prevent negative climate feedback on the heat flux applied",
+                "end_year":"",
+                "experiment":"control plus perturbative surface fluxes of momentum, heat and water into ocean",
+                "experiment_id":"faf-all",
+                "min_number_yrs_per_sim":"70",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"100",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "dcppC-amv-minus":{
+            "faf-heat":{
                 "activity_id":[
-                    "DCPP"
+                    "FAFMIP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"1950",
-                "end_year":"1949",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized negative AMV anomaly pattern",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"1xCO2 experiment, parallel to piControl, forced over the ocean by surface net heat flux anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2, using a passive tracer to prevent negative climate feedback on the heat flux applied",
+                "end_year":"",
+                "experiment":"control plus perturbative surface flux of heat into ocean",
+                "experiment_id":"faf-heat",
+                "min_number_yrs_per_sim":"70",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "land-noShiftCultivate":{
+            "faf-passiveheat":{
                 "activity_id":[
-                    "LUMIP"
+                    "FAFMIP"
                 ],
-                "description":"Same as land-hist except shifting cultivation turned off. An additional LUC transitions dataset will be provided as a data layer within LUMIP LUH2 dataset with shifting cultivation deactivated",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only with shifting cultivation turned off",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "LAND"
-                ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
-            },
-            "ism-pdControl-std":{
-                "activity_id":[
-                    "ISMIP6"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
                 ],
-                "description":"Present-day control simulation for \"offline\" ice sheets",
-                "start_year":"",
+                "description":"1xCO2 experiment, parallel to piControl, with a flux of passive tracer added at the ocean surface at the same rate as the surface net heat flux anomaly applied in the FAFMIP heat experiment",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"offline ice sheet forced by ISMIP6-specified AOGCM pdControl output",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "ISM"
-                ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"451",
-                "sub_experiment_id":"none"
-            },
-            "abrupt-4xCO2":{
-                "activity_id":[
+                "experiment":"control plus surface flux of passive heat tracer into ocean",
+                "experiment_id":"faf-passiveheat",
+                "min_number_yrs_per_sim":"70",
+                "parent_activity_id":[
                     "CMIP"
                 ],
-                "description":"DECK: abrupt4xCO2",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
                 "parent_experiment_id":[
                     "piControl"
                 ],
-                "parent_activity_id":[
-                    "CMIP"
-                ],
-                "experiment":"abrupt quadrupling of CO2",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
-                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"150",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp585-over-bgc":{
+            "faf-stress":{
                 "activity_id":[
-                    "C4MIP"
-                ],
-                "description":"",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "hist-bgc"
-                ],
-                "parent_activity_id":[
-                    "C4MIP"
+                    "FAFMIP"
                 ],
-                "experiment":"biogeochemically-coupled version of the RCP3.4-overshoot based on SSP5",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
-                ],
-                "required_model_components":[
-                    "AOGCM",
+                    "CHEM",
                     "BGC"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"85",
-                "sub_experiment_id":"none"
-            },
-            "faf-stress":{
-                "activity_id":[
-                    "FAFMIP"
-                ],
                 "description":"1xCO2 experiment, parallel to piControl, forced over the ocean by surface windstress anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2",
-                "start_year":"",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
+                "experiment":"control plus perturbative surface flux of momentum into ocean",
+                "experiment_id":"faf-stress",
+                "min_number_yrs_per_sim":"70",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"control plus perturbative surface flux of momentum into ocean",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"70",
-                "sub_experiment_id":"none"
-            },
-            "1pctCO2to4x-withism":{
-                "activity_id":[
-                    "ISMIP6"
-                ],
-                "description":"Idealized 1%/yr CO2 increase to 4xC02 over 140yrs and kept constant at 4xCO2 for an additional 200 to 400 yrs simulation that includes interactive ice sheets",
                 "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl-withism"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "parent_activity_id":[
-                    "ISMIP6"
+                "tier":"1"
+            },
+            "faf-water":{
+                "activity_id":[
+                    "FAFMIP"
                 ],
-                "experiment":"simulation with interactive ice sheet forced by 1 percent per year increase in CO2 to 4xCO2 (subsequently held fixed)",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
-                "required_model_components":[
-                    "AOGCM",
-                    "ISM"
-                ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"350",
-                "sub_experiment_id":"none"
-            },
-            "piClim-HC":{
-                "activity_id":[
-                    "AerChemMIP"
-                ],
-                "description":"Perturbation from 1850 control using 2014 halocarbon concentrations",
-                "start_year":"",
+                "description":"1xCO2 experiment, parallel to piControl, forced over the ocean by surface net freshwater flux anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 halocarbon concentrations (including chemistry)",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "AGCM",
-                    "AER",
-                    "CHEM"
-                ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
-            },
-            "ssp370SST-ssp126Lu":{
-                "activity_id":[
-                    "AerChemMIP"
+                "experiment":"control plus perturbative surface flux of water into ocean",
+                "experiment_id":"faf-water",
+                "min_number_yrs_per_sim":"70",
+                "parent_activity_id":[
+                    "CMIP"
                 ],
-                "description":"Future SSP3-7.0 with low land use change (from ssp126), prescribed SSTs",
-                "start_year":"2015",
-                "end_year":"2055",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSP3-7.0, prescribed SSTs, with SSP1-2.6 land use",
-                "additional_allowed_model_components":[
-                    "CHEM"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"41",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "piClim-control":{
+            "futureSST-4xCO2-solar":{
                 "activity_id":[
-                    "RFMIP",
-                    "AerChemMIP"
+                    "GeoMIP"
                 ],
-                "description":"30-year atmosphere only integration using preindustrial sea-surface temperature and sea-ice climatology. Interactive vegetation",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"effective radiative forcing in present-day",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"Time slice at year 100 of G1ext to examine radiative forcing of abrupt4xCO2 and G1",
+                "end_year":"",
+                "experiment":"year 100 SSTs from abrupt4xCO2 with quadrupled CO2 and solar reduction",
+                "experiment_id":"futureSST-4xCO2-solar",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "GeoMIP"
+                ],
+                "parent_experiment_id":[
+                    "G1"
+                ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "historical":{
+            "highres-future":{
                 "activity_id":[
-                    "CMIP"
+                    "HighResMIP"
                 ],
-                "description":"CMIP6 historical",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "AER"
                 ],
+                "description":"Coupled integrations with SSP5 forcing (nearest to CMIP5 RCP8.5 (as in highresSST-future)",
+                "end_year":"2050",
+                "experiment":"coupled future 2015-2050 using a scenario as close to CMIP5 RCP8.5 as possible within CMIP6",
+                "experiment_id":"highres-future",
+                "min_number_yrs_per_sim":"36",
                 "parent_activity_id":[
-                    "CMIP"
+                    "HighResMIP"
                 ],
-                "experiment":"all-forcing simulation of the recent past",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "hist-1950"
                 ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "midHolocene":{
+            "highresSST-4co2":{
                 "activity_id":[
-                    "PMIP"
+                    "HighResMIP"
                 ],
-                "description":"main forcings : trace gases, orbital parameters, dust",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"mid-Holocene",
                 "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                    "AER"
+                ],
+                "description":"Similar to CFMIP amip-4xCO2, SSTs are held at highresSST-present values and the CO2 seen by the radiation scheme is quadrupled",
+                "end_year":"2014",
+                "experiment":"highresSST-present SST with 4xCO2 concentrations",
+                "experiment_id":"highresSST-4co2",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "HighResMIP"
+                ],
+                "parent_experiment_id":[
+                    "highresSST-present"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"200",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "dcppC-pac":{
+            "highresSST-LAI":{
                 "activity_id":[
-                    "DCPP"
+                    "HighResMIP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"1950",
-                "end_year":"1949",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized Pacific control",
                 "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                    "AER"
+                ],
+                "description":"Forced global atmosphere-land simulations as highresSST-present, but using an common LAI dataset across models",
+                "end_year":"2014",
+                "experiment":"common LAI dataset within the highresSST-present experiment",
+                "experiment_id":"highresSST-LAI",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "HighResMIP"
+                ],
+                "parent_experiment_id":[
+                    "highresSST-present"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "amip-TIP":{
+            "highresSST-future":{
                 "activity_id":[
-                    "GMMIP"
+                    "HighResMIP"
                 ],
-                "description":"The topography of the TIP is modified by setting surface elevations to 500m; to understand the combined thermal and mechanical forcing of the TIP. Same model as DECK",
-                "start_year":"1979",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"same as \"amip\" run, but surface elevations of the Tibetan-Iranian Plateau and Himalayas reduced to 500m",
                 "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                    "AER"
+                ],
+                "description":"Extend highresSST-present to 2050 with agreed SSP5/RCP8.5 forcings (with option to extend further to 2100)",
+                "end_year":"2050",
+                "experiment":"forced atmosphere experiment for 2015-2050 using SST/sea-ice derived from CMIP5 RCP8.5 simulations and a scenario as close to RCP8.5 as possible within CMIP6",
+                "experiment_id":"highresSST-future",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "HighResMIP"
+                ],
+                "parent_experiment_id":[
+                    "highresSST-present"
                 ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"35",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "sspxy":{
+            "highresSST-p4K":{
                 "activity_id":[
-                    "ScenarioMIP"
+                    "HighResMIP"
                 ],
-                "description":"Future scenario with low radiative forcing by the end of century. Following a forcing pathway below RCP2.6. Specific SSP and 2100 forcing level to be finalized with IAM groups within next few months. Concentration-driven",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                "additional_allowed_model_components":[
+                    "AER"
                 ],
+                "description":"Similar to CFMIP amip-p4K, add a uniform warming of 4K to highresSST-present SSTs and run the experiment parallel to highresSST-present",
+                "end_year":"2014",
+                "experiment":"uniform 4K warming of highresSST-present SST",
+                "experiment_id":"highresSST-p4K",
+                "min_number_yrs_per_sim":"36",
                 "parent_activity_id":[
-                    "CMIP"
+                    "HighResMIP"
                 ],
-                "experiment":"low-end scenario informing 1.5C goal",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "highresSST-present"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "highresSST-LAI":{
+            "highresSST-present":{
                 "activity_id":[
                     "HighResMIP"
                 ],
-                "description":"Forced global atmosphere-land simulations as highresSST-present, but using an common LAI dataset across models",
-                "start_year":"1951",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "highresSST-present"
+                "additional_allowed_model_components":[
+                    "AER"
                 ],
+                "description":"Forced global atmosphere-land simulations using daily 1/4 degree SST and sea-ice forcings, and aerosol optical properties (not emissions) to constrain model spread",
+                "end_year":"2014",
+                "experiment":"forced atmosphere experiment for 1950-2014",
+                "experiment_id":"highresSST-present",
+                "min_number_yrs_per_sim":"65",
                 "parent_activity_id":[
-                    "HighResMIP"
+                    "no parent"
                 ],
-                "experiment":"common LAI dataset within the highresSST-present experiment",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"64",
-                "sub_experiment_id":"none"
+                "start_year":"1950",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "faf-water":{
+            "highresSST-smoothed":{
                 "activity_id":[
-                    "FAFMIP"
+                    "HighResMIP"
                 ],
-                "description":"1xCO2 experiment, parallel to piControl, forced over the ocean by surface net freshwater flux anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "AER"
                 ],
+                "description":"Forced global atmosphere-land simulations as highresSST-present, but using smoothed SST to investigate impact of SST variability",
+                "end_year":"2014",
+                "experiment":"smoothed SST version of highresSST-present",
+                "experiment_id":"highresSST-smoothed",
+                "min_number_yrs_per_sim":"36",
                 "parent_activity_id":[
-                    "CMIP"
+                    "HighResMIP"
                 ],
-                "experiment":"control plus perturbative surface flux of water into ocean",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "highresSST-present"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"70",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "ism-historical-self":{
+            "hist-1950":{
                 "activity_id":[
-                    "ISMIP6"
+                    "HighResMIP"
                 ],
-                "description":"Historical simulation using \"offline\" ice sheet models. Forcing for ice sheet model is from its own AOGCM",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "ism-piControl-self"
+                "additional_allowed_model_components":[
+                    "AER"
                 ],
+                "description":"Coupled integrationswith historic external forcings (as in highresSST-present)",
+                "end_year":"2014",
+                "experiment":"coupled historical 1950-2014",
+                "experiment_id":"hist-1950",
+                "min_number_yrs_per_sim":"65",
                 "parent_activity_id":[
-                    "ISMIP6"
+                    "HighResMIP"
+                ],
+                "parent_experiment_id":[
+                    "spinup-1950"
                 ],
-                "experiment":"offline ice sheet forced by ISM's own AOGCM historical output",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "ISM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1950",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "volc-pinatubo-full":{
+            "hist-1950HC":{
                 "activity_id":[
-                    "VolMIP"
+                    "AerChemMIP"
                 ],
-                "description":"1991 Pinatubo forcing as used in the CMIP6 historical simulations. Requires special diagnostics of radiative and latent heating rates. A large number of ensemble members is required to address internal atmospheric variability",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "BGC"
                 ],
+                "description":"Historical WMGHG concentrations and NTCF emissions, 1950 halocarbon concentrations, start 1950",
+                "end_year":"2014",
+                "experiment":"historical forcing, but with1950s halocarbon concentrations; initialized in 1950",
+                "experiment_id":"hist-1950HC",
+                "min_number_yrs_per_sim":"65",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"Pinatubo experiment",
+                "parent_experiment_id":[
+                    "historical"
+                ],
+                "required_model_components":[
+                    "AOGCM",
+                    "AER",
+                    "CHEM"
+                ],
+                "start_year":"1950",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "hist-CO2":{
+                "activity_id":[
+                    "DAMIP"
+                ],
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Historical CO2-only run",
+                "end_year":"2020",
+                "experiment":"historical CO2-only run",
+                "experiment_id":"hist-CO2",
+                "min_number_yrs_per_sim":"171",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"3",
-                "sub_experiment_id":"none"
-            },
-            "land-hist-altLu1":{
-                "activity_id":"LUMIP",
-                "description":"Land only simulations",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only alternate land-use history",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "LAND"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "tier":"3"
             },
-            "dcppA-assim":{
+            "hist-GHG":{
                 "activity_id":[
-                    "DCPP"
+                    "DAMIP"
                 ],
-                "description":"Assimilation runs used to generate initial conditions for hindcasts if used",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"assimilation run (if available) that is used to generate initial conditions for hindcasts and which parallels the historical simulation and uses the same forcing",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Historical well-mixed GHG-only run. Models with interactive chemistry schemes should either turn off the chemistry or use a preindustrial climatology of stratospheric and tropospheric ozone in their radiation schemes. This will ensure that ozone is fixed in all these simulations, and simulated responses in models with and without coupled chemistry are comparable",
+                "end_year":"2020",
+                "experiment":"historical well-mixed GHG-only run",
+                "experiment_id":"hist-GHG",
+                "min_number_yrs_per_sim":"171",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "G7cirrus":{
+            "hist-aer":{
                 "activity_id":[
-                    "GeoMIP"
-                ],
-                "description":"Against a background of the ScenarioMIP high forcing, reduce cirrus cloud optical depth by a constant amount",
-                "start_year":"2020",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "DAMIP"
                 ],
-                "experiment":"increase cirrus ice crystal fall speed to reduce net forcing in SSP585 by 1 W m-2",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Historical anthropogenic-Aerosols-only run",
+                "end_year":"2020",
+                "experiment":"historical anthropogenic aerosols-only run",
+                "experiment_id":"hist-aer",
+                "min_number_yrs_per_sim":"171",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"81",
-                "sub_experiment_id":"none"
-            },
-            "land-hist-altLu2":{
-                "activity_id":"LUMIP",
-                "description":"Land only simulations",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only alternate land use history",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "LAND"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "tier":"1"
             },
-            "dcppA-hindcast-niff":{
+            "hist-all-aer2":{
                 "activity_id":[
-                    "DCPP"
-                ],
-                "description":"Decadal hindcasts begun each year from 1960 to present, or every other year at minimum, but with no information from the future",
-                "start_year":"1960",
-                "end_year":"present (to 2019)",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":[
-                    "dcppA-assim",
-                    ""
-                ],
-                "parent_activity_id":[
-                    "DCPP"
+                    "DAMIP"
                 ],
-                "experiment":"hindcast initialized from observations without future observed forcing after initialization",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Historical ALL forcing run with alternate estimates of aerosol concentrations/emissions",
+                "end_year":"2020",
+                "experiment":"historical ALL-forcing run with alternate estimates of aerosol forcing",
+                "experiment_id":"hist-all-aer2",
+                "min_number_yrs_per_sim":"171",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"4",
-                "min_number_yrs_per_sim":"300",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "piControl":{
+            "hist-all-nat2":{
                 "activity_id":[
-                    "CMIP"
-                ],
-                "description":"DECK: control",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl-spinup"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "DAMIP"
                 ],
-                "experiment":"pre-industrial control",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Historical ALL forcing run with alternates estimate of solar and volcanic forcing",
+                "end_year":"2020",
+                "experiment":"historical ALL-forcing run with alternate estimates of natural forcing",
+                "experiment_id":"hist-all-nat2",
+                "min_number_yrs_per_sim":"171",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"500",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "esm-piControl":{
+            "hist-bgc":{
                 "activity_id":[
-                    "CMIP"
+                    "C4MIP"
                 ],
-                "description":"DECK: control (emission-driven)",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "esm-piControl-spinup"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
                 ],
+                "description":"Concentration-driven historical simulation, biogeochemically-coupled",
+                "end_year":"2014",
+                "experiment":"biogeochemically-coupled version of the simulation of the recent past with CO2 concentration prescribed",
+                "experiment_id":"hist-bgc",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"pre-industrial control simulation with CO2 concentration calculated",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
                     "AOGCM",
                     "BGC"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"500",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piClim-NTCF":{
+            "hist-nat":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "DAMIP"
                 ],
-                "description":"Perturbation from 1850 control using 2014 aerosol and ozone precursor emissions",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 NTCF emissions",
                 "additional_allowed_model_components":[
+                    "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Historical natural-only run",
+                "end_year":"2020",
+                "experiment":"historical natural-only run",
+                "experiment_id":"hist-nat",
+                "min_number_yrs_per_sim":"171",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "land-cClim":{
+            "hist-noLu":{
                 "activity_id":[
                     "LUMIP"
                 ],
-                "description":"Same as land-hist except with climate held constant",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only constant climate",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "LAND"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
                 ],
-                "tier":"2",
+                "description":"Same as CMIP6 historical but with land cover held at 1850, no human activity; concentration driven",
+                "end_year":"2014",
+                "experiment":"historical with no land-use change",
+                "experiment_id":"hist-noLu",
                 "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
-            },
-            "hist-aer":{
-                "activity_id":[
-                    "DAMIP"
+                "parent_activity_id":[
+                    "CMIP"
                 ],
-                "description":"Historical anthropogenic-Aerosols-only run",
-                "start_year":"1850",
-                "end_year":"2020",
-                "sub_experiment":"none",
                 "parent_experiment_id":[
                     "piControl"
                 ],
-                "parent_activity_id":[
-                    "CMIP"
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "hist-piAer":{
+                "activity_id":[
+                    "AerChemMIP"
                 ],
-                "experiment":"historical anthropogenic aerosols-only run",
                 "additional_allowed_model_components":[
-                    "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Historical WMGHG, halocarbon concentrations and O3 precursor emissions, 1850 aerosol precursor emissions",
+                "end_year":"2014",
+                "experiment":"historical forcing, but with pre-industrial aerosol emissions",
+                "experiment_id":"hist-piAer",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AOGCM",
+                    "AER"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"171",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp370-ssp126Lu":{
+            "hist-piNTCF":{
                 "activity_id":[
-                    "LUMIP"
+                    "AerChemMIP"
                 ],
-                "description":"Additional land use policy sensitivity simulation for high radiative forcing scenario, keep all forcings the same as ScenarioMIP SSP3-7 (deforestation scenario), but replace land use from SSP1-2.6 (afforestation) scenario; concentration-driven",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                "additional_allowed_model_components":[
+                    "CHEM",
+                    "BGC"
                 ],
+                "description":"Historical WMGHG and halocarbons concentrations, 1850 NTCF emissions",
+                "end_year":"2014",
+                "experiment":"historical forcing, but with pre-industrial NTCF emissions",
+                "experiment_id":"hist-piNTCF",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"SSP3-7.0 with SSP1-2.6 land use",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AOGCM",
+                    "AER"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "dcppC-hindcast-noAgung":{
+            "hist-resAMO":{
                 "activity_id":[
-                    "DCPP"
-                ],
-                "description":"Effects of volcanoes on decadal prediction and predictability of forced and internal variability components",
-                "start_year":"1963",
-                "end_year":"1963",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":[
-                    "dcppA-assim",
-                    ""
-                ],
-                "parent_activity_id":[
-                    "DCPP"
+                    "GMMIP"
                 ],
-                "experiment":"",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Pacemaker 20th century historical run that includes all forcing as used in CMIP6 Historical Simulation, and the observational historical SST is restored in the AMO domain (0deg-70degN, 70degW-0deg)",
+                "end_year":"2014",
+                "experiment":"initialized from \"historical\" run year 1870 and SSTs in the AMO domain (0deg-70degN, 70degW-0deg) restored to AMIP SSTs with historical forcings",
+                "experiment_id":"hist-resAMO",
+                "min_number_yrs_per_sim":"145",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"5",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"1870",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "amip-hld":{
+            "hist-resIPO":{
                 "activity_id":[
                     "GMMIP"
                 ],
-                "description":"The topography of the highlands in Africa, N. America and S. America TP is modified by setting surface elevations to a certain height (500m). Same model as DECK",
-                "start_year":"1979",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"same as \"amip\" run, but surface elevations of the East African Highlands in Africa, Sierra Madre in N. America and Andes in S. America reduced to 500m",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Pacemaker 20th century historical run that includes all forcing as used in CMIP6 Historical Simulation, and the observational historical SST is restored in the tropical lobe of the IPO domain (20degS-20degN, 175degE-75degW)",
+                "end_year":"2014",
+                "experiment":"initialized from \"historical\" run year 1870 and SSTs in tropical lobe of the IPO domain (20degS-20degN, 175degE-75degW) restored to AMIP SSTs with historical forcings",
+                "experiment_id":"hist-resIPO",
+                "min_number_yrs_per_sim":"145",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"35",
-                "sub_experiment_id":"none"
+                "start_year":"1870",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piSST-pxK":{
+            "hist-sol":{
                 "activity_id":[
-                    "CFMIP"
+                    "DAMIP"
                 ],
-                "description":"Same as piSST, but with a spatially and temporally uniform SST anomaly applied on top of the monthly-varying piSST SSTs. The magnitude of the uniform increase is taken from each model's global, climatological annual mean SST change between abrupt4xCO2 minus piControl (using the mean of years 111-140 of abrupt4xCO2, and the parallel 30-year section of piControl)",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"as piSST with uniform SST increase with magnitude based on abrupt4xCO2 response",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Historical solar-only transient simulation using settings from CMIP6 historical simulation but fixed GHG and ODS (1850 level)",
+                "end_year":"2020",
+                "experiment":"historical solar-only run",
+                "experiment_id":"hist-sol",
+                "min_number_yrs_per_sim":"171",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"20",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "amip-4xCO2":{
+            "hist-spAer-aer":{
                 "activity_id":[
-                    "CFMIP"
+                    "RFMIP"
                 ],
-                "description":"As CMIP5/CFMIP-2 amip4xCO2 experiment. AMIP experiment where SSTs are held at control values and the CO2 seen by the radiation scheme is quadrupled",
-                "start_year":"1979",
+                "additional_allowed_model_components":"",
+                "description":"Prescribed anthropogenic aerosol optical properties. Changes in aerosols only",
                 "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"AMIP SSTs with 4xCO2",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "experiment":"historical simulation with specified anthropogenic aerosols, no other forcings",
+                "experiment_id":"hist-spAer-aer",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"36",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "land-noPasture":{
+            "hist-spAer-all":{
                 "activity_id":[
-                    "LUMIP"
+                    "RFMIP"
                 ],
-                "description":"Same as land-hist but with grazing and other management on pastureland held at 1850 levels/distribution, i.e. all new pastureland is treated as unmanaged grassland (as in land-crop-grass)",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only with constant pastureland",
                 "additional_allowed_model_components":"",
+                "description":"Prescribed anthropogenic aerosol optical properties. All forcings",
+                "end_year":"2014",
+                "experiment":"historical simulation with specified anthropogenic aerosols",
+                "experiment_id":"hist-spAer-all",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
-                    "LAND"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "amip-p4K":{
+            "hist-stratO3":{
                 "activity_id":[
-                    "CFMIP"
+                    "DAMIP"
                 ],
-                "description":"As CMIP5/CFMIP-2 amip4K experiment. AMIP experiment where SSTs are subject to a uniform warming of 4K",
-                "start_year":"1979",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"AMIP with uniform 4K SST increase",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "BGC"
+                ],
+                "description":"Historical stratospheric-ozone-only. In models with coupled chemistry, the chemistry scheme should be turned off, and the simulated ensemble mean monthly mean 3D stratospheric ozone concentrations from the CMIP6 historical simulations should be prescribed. Tropospheric ozone should be fixed at 3D long-term monthly mean piControl values, with a value of 100 ppbv ozone concentration in this piControl climatology used to separate the troposphere from the strat [...]
+                "end_year":"2020",
+                "experiment":"historical stratospheric-ozone-only run",
+                "experiment_id":"hist-stratO3",
+                "min_number_yrs_per_sim":"171",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"36",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "hist-bgc":{
+            "hist-volc":{
                 "activity_id":[
-                    "C4MIP"
+                    "DAMIP"
                 ],
-                "description":"Concentration-driven historical simulation, biogeochemically-coupled",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
                 ],
+                "description":"Historical volcanic-only run",
+                "end_year":"2020",
+                "experiment":"historical volcanic-only run",
+                "experiment_id":"hist-volc",
+                "min_number_yrs_per_sim":"171",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"biogeochemically-coupled version of the simulation of the recent past with CO2 concentration prescribed",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AOGCM",
-                    "BGC"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "amip-future4K":{
+            "histSST":{
                 "activity_id":[
-                    "CFMIP"
+                    "AerChemMIP"
                 ],
-                "description":"As CMIP5/CFMIP-2 amipFuture experiment. AMIP experiment where SSTs are subject to a composite SST warming pattern derived from coupled models, scaled to an ice-free ocean mean of 4K",
-                "start_year":"1979",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"AMIP with patterned 4K SST increase",
                 "additional_allowed_model_components":[
-                    "AER",
                     "CHEM"
                 ],
+                "description":"Historical transient with SSTs prescribed from historical",
+                "end_year":"2014",
+                "experiment":"historical prescribed SSTs and historical forcing",
+                "experiment_id":"histSST",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
-                    "AGCM"
+                    "AGCM",
+                    "AER"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"36",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "1pctCO2-bgc":{
+            "histSST-1950HC":{
                 "activity_id":[
-                    "C4MIP"
-                ],
-                "description":"Biogeochemically-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                    "AerChemMIP"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Historical WMGHG concentrations and NTCF emissions, 1950 halocarbon concentrations",
+                "end_year":"2014",
+                "experiment":"historical SSTs and historical forcing, but with1950 halocarbon concentrations",
+                "experiment_id":"histSST-1950HC",
+                "min_number_yrs_per_sim":"65",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"biogeochemically-coupled version of 1 percent per year increasing CO2 experiment",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM",
-                    "BGC"
-                ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"150",
-                "sub_experiment_id":"none"
-            },
-            "futureSST-4xCO2-solar":{
-                "activity_id":[
-                    "GeoMIP"
-                ],
-                "description":"Time slice at 1949 (picontrol) for G1ext to examine radiative forcing of abrupt4xCO2 and G1",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"year 100 SSTs from abrupt4xCO2 with quadrupled CO2 and solar reduction",
-                "additional_allowed_model_components":[
+                    "AGCM",
                     "AER",
                     "CHEM"
                 ],
-                "required_model_components":[
-                    "AGCM"
+                "start_year":"1950",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
+                "tier":"1"
             },
-            "aqua-4xCO2":{
+            "histSST-piAer":{
                 "activity_id":[
-                    "CFMIP"
+                    "AerChemMIP"
                 ],
-                "description":"Extended version of CMIP5/CFMIP-2 aqua4xCO2 experiment. Aquaplanet experiment where SSTs are held at control values and the CO2 seen by the radiation scheme is quadrupled",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"aquaplanet with control SST and 4xCO2",
                 "additional_allowed_model_components":[
-                    "AER",
                     "CHEM"
                 ],
+                "description":"Historical WMGHG, halocarbon concentrations and tropospheric ozone precursors emissions, 1850 aerosol precursor emissions, prescribed SSTs",
+                "end_year":"2014",
+                "experiment":"historical SSTs and historical forcing, but with pre-industrial aerosol emissions",
+                "experiment_id":"histSST-piAer",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
-                    "AGCM"
+                    "AGCM",
+                    "AER"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "land-hist-princeton":{
+            "histSST-piCH4":{
                 "activity_id":[
-                    "LS3MIP"
+                    "AerChemMIP"
                 ],
-                "description":"Land only simulations",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"as land-hist with Princeton forcings",
                 "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "LAND"
-                ],
-                "tier":"2",
+                "description":"Historical (non-CH4) WMGHG concentrations and NTCF emissions, 1850 CH4 concentrations",
+                "end_year":"2014",
+                "experiment":"historical SSTs and historical forcing, but with pre-industrial methane concentrations",
+                "experiment_id":"histSST-piCH4",
                 "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
-            },
-            "volc-cluster-mill":{
-                "activity_id":[
-                    "VolMIP"
+                "parent_activity_id":[
+                    "no parent"
                 ],
-                "description":"Parallel experiment to volc-cluster-ctrl but with initial conditions taken from last millennium simulation to account for the effects of a more realistic history of past natural forcing. All forcings except volcanic kept constant from year AD 1790 on",
-                "start_year":"1790",
-                "end_year":"1858",
-                "sub_experiment":"none",
                 "parent_experiment_id":[
-                    "past1000"
-                ],
-                "parent_activity_id":[
-                    "PMIP"
+                    "no parent"
                 ],
-                "experiment":"19th century volcanic cluster initialized from past1000",
-                "additional_allowed_model_components":[
+                "required_model_components":[
+                    "AGCM",
                     "AER",
-                    "CHEM",
-                    "BGC"
+                    "CHEM"
                 ],
-                "required_model_components":[
-                    "AOGCM"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"69",
-                "sub_experiment_id":"none"
+                "tier":"1"
             },
-            "piClim-NOx":{
+            "histSST-piN2O":{
                 "activity_id":[
                     "AerChemMIP"
                 ],
-                "description":"Perturbation from 1850 control using 2014 NOx emissions",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 NOx emissions",
-                "additional_allowed_model_components":"",
+                "additional_allowed_model_components":[
+                    "BGC"
+                ],
+                "description":"Historical (non-N2O) WMGHG concentrations and NTCF emissions, 1850 N2O concentrations",
+                "end_year":"2014",
+                "experiment":"historical SSTs and historical forcings, but with pre-industrial N2O concentrations",
+                "experiment_id":"histSST-piN2O",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
                     "AGCM",
                     "AER",
                     "CHEM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piClim-2xss":{
+            "histSST-piNTCF":{
                 "activity_id":[
                     "AerChemMIP"
                 ],
-                "description":"1850 control with doubled sea salt emissions",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled emissions of sea salt",
                 "additional_allowed_model_components":[
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Historical WMGHG concentrations and halocarbons emissions, 1850 NTCF emissions, prescribed SSTs",
+                "end_year":"2014",
+                "experiment":"historical SSTs and historical forcing, but with pre-industrial NTCF emissions",
+                "experiment_id":"histSST-piNTCF",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
                     "AGCM",
                     "AER"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
             "histSST-piO3":{
                 "activity_id":[
                     "AerChemMIP"
                 ],
+                "additional_allowed_model_components":"",
                 "description":"Historical WMGHG, halocarbon concentrations and aerosol precursor emissions, 1850 tropospheric ozone precursors emissions, prescribed SSTs",
-                "start_year":"1850",
                 "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
                 "experiment":"historical SSTs and historical forcing, but with pre-industrial ozone precursor emissions",
-                "additional_allowed_model_components":"",
+                "experiment_id":"histSST-piO3",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
                     "AGCM",
                     "AER",
                     "CHEM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
-            },
-            "hist-sol":{
-                "activity_id":[
-                    "DAMIP"
-                ],
-                "description":"Historical solar-only transient simulation using settings from CMIP6 historical simulation but fixed GHG&ODS (1850 level)",
                 "start_year":"1850",
-                "end_year":"2020",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "parent_activity_id":[
+                "tier":"2"
+            },
+            "historical":{
+                "activity_id":[
                     "CMIP"
                 ],
-                "experiment":"historical solar-only run",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"CMIP6 historical",
+                "end_year":"2014",
+                "experiment":"all-forcing simulation of the recent past",
+                "experiment_id":"historical",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"171",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "ssp126-ssp370Lu":{
+            "historical-ext":{
                 "activity_id":[
-                    "LUMIP"
+                    "CMIP"
                 ],
-                "description":"Additional land use policy sensitivity simulation for low radiative forcing scenario, keep all forcings the same as ScenarioMIP SSP1-2.6 (afforestation scenario), but replace land use from SSP3-7 (afforestation) scenario; concentration-driven",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
-                ],
-                "experiment":"SSP1-2.6 with SSP3-7.0 land use",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Extension beyond 2014 of the CMIP6 historical",
+                "end_year":"present",
+                "experiment":"post-2014 all-forcing simulation",
+                "experiment_id":"historical-ext",
+                "min_number_yrs_per_sim":"1",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "amip-lfmip-pObs":{
+            "historical-withism":{
                 "activity_id":[
-                    "LS3MIP"
+                    "ISMIP6"
                 ],
-                "description":"Land-hist land conditions; AMIP SSTs",
-                "start_year":"1980",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"prescribed land (from pseudo-observations) and AMIP SSTs",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Historical simulation that includes interactive ice sheets. Set up follows the historical experiment",
+                "end_year":"2014",
+                "experiment":"historical with interactive ice sheet",
+                "experiment_id":"historical-withism",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "ISMIP6"
+                ],
+                "parent_experiment_id":[
+                    "piControl-withism"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM",
+                    "ISM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"121",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piControl-spinup":{
+            "ism-1pctCO2to4x-self":{
                 "activity_id":[
-                    "CMIP"
+                    "ISMIP6"
                 ],
-                "description":"DECK: spin-up portion of the control",
-                "start_year":"",
+                "additional_allowed_model_components":"",
+                "description":"Idealized 1%/yr CO2 increase to 4xC02 over 140yrs and kept constant at 4xCO2 for an additional 200 to 400 yrs simulation with ice sheets forced \"offline\" with DECK 1pctCO2 using forcing from its own AOGCM",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial control (spin-up)",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "experiment":"offline ice sheet model forced by ISM's own AOGCM 1pctCO2to4x output",
+                "experiment_id":"ism-1pctCO2to4x-self",
+                "min_number_yrs_per_sim":"350",
+                "parent_activity_id":[
+                    "ISMIP6"
+                ],
+                "parent_experiment_id":[
+                    "ism-piControl-self"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "ISM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"100",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "ssp245-aer":{
+            "ism-1pctCO2to4x-std":{
                 "activity_id":[
-                    "DAMIP"
-                ],
-                "description":"Extension of aerosol-only run under SSP2-4.5",
-                "start_year":"2021",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "hist-aer"
+                    "ISMIP6"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Idealized 1%/yr CO2 increase to 4xC02 over 140yrs and kept constant at 4xCO2 for an additional 200 to 400 yrs simulation with ice sheets forced \"offline\" with DECK 1pctCO2 using a standard forcing",
+                "end_year":"",
+                "experiment":"offline ice sheet model forced by ISMIP6-specified AOGCM 1pctCO2to4x output",
+                "experiment_id":"ism-1pctCO2to4x-std",
+                "min_number_yrs_per_sim":"350",
                 "parent_activity_id":[
-                    "DAMIP"
+                    "ISMIP6"
                 ],
-                "experiment":"aerosol-only SSP2-4.5 run",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "ism-pdControl-std"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "ISM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"80",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "piClim-spAer-histall":{
+            "ism-amip-std":{
                 "activity_id":[
-                    "RFMIP"
+                    "ISMIP6"
                 ],
-                "description":"Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"transient effective radiative forcing with specified anthropogenic aerosol optical properties, all forcings",
                 "additional_allowed_model_components":"",
+                "description":"Offline ice sheet evolution for the last few decades forced by amip",
+                "end_year":"2014",
+                "experiment":"offline ice sheet forced by ISMIP6-specified AGCM AMIP output",
+                "experiment_id":"ism-amip-std",
+                "min_number_yrs_per_sim":"36",
+                "parent_activity_id":[
+                    "ISMIP6"
+                ],
+                "parent_experiment_id":[
+                    "ism-ctrl-std"
+                ],
                 "required_model_components":[
-                    "AGCM"
+                    "ISM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1979",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "abrupt-solm4p":{
+            "ism-asmb-std":{
                 "activity_id":[
-                    "CFMIP"
+                    "ISMIP6"
                 ],
-                "description":"Conceptually similar to abrupt 4xCO2 DECK experiment, except that the solar constant rather than CO2 is abruptly reduced by 4%",
-                "start_year":"",
+                "additional_allowed_model_components":"",
+                "description":"Offline ice sheet simulation with synthetic atmospheric dataset to explore the uncertainty in sea level due to ice sheet initialization",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
+                "experiment":"offline ice sheet forced by initMIP synthetic atmospheric experiment",
+                "experiment_id":"ism-asmb-std",
+                "min_number_yrs_per_sim":"100",
                 "parent_activity_id":[
-                    "CMIP"
+                    "ISMIP6"
                 ],
-                "experiment":"abrupt 4% decrease in solar constant",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "ism-ctrl-std"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "ISM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"150",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "highresSST-smoothed":{
+            "ism-bsmb-std":{
                 "activity_id":[
-                    "HighResMIP"
-                ],
-                "description":"Forced global atmosphere-land simulations as highresSST-present, but using smoothed SST to investigate impact of SST variability",
-                "start_year":"1951",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "highresSST-present"
+                    "ISMIP6"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Offline ice sheet simulation with synthetic oceanic dataset to explore the uncertainty in sea level due to ice sheet initialization",
+                "end_year":"",
+                "experiment":"offline ice sheet forced by initMIP synthetic oceanic experiment",
+                "experiment_id":"ism-bsmb-std",
+                "min_number_yrs_per_sim":"100",
                 "parent_activity_id":[
-                    "HighResMIP"
+                    "ISMIP6"
                 ],
-                "experiment":"smoothed SST version of highresSST-present",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "ism-ctrl-std"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "ISM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"64",
-                "sub_experiment_id":"none"
+                "tier":"1"
             },
-            "dcppB-forecast":{
+            "ism-ctrl-std":{
                 "activity_id":[
-                    "DCPP"
-                ],
-                "description":"Ongoing decadal forecasts",
-                "start_year":"present",
-                "end_year":"ongoing each year",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":[
-                    "dcppA-assim",
-                    ""
+                    "ISMIP6"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Offline ice sheet control run for the initMIP experiment that explores the uncertainty in sea level due to ice sheet initialization",
+                "end_year":"",
+                "experiment":"offline ice sheet model initMIP control",
+                "experiment_id":"ism-ctrl-std",
+                "min_number_yrs_per_sim":"100",
                 "parent_activity_id":[
-                    "DCPP"
+                    "no parent"
                 ],
-                "experiment":"year 1-5 forecast initialized from observations",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "ISM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"5",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "hist-spAer-aer":{
+            "ism-historical-self":{
                 "activity_id":[
-                    "RFMIP"
+                    "ISMIP6"
                 ],
-                "description":"Prescribed anthropogenic aerosol optical properties. Changes in aerosols only",
-                "start_year":"1850",
+                "additional_allowed_model_components":"",
+                "description":"Historical simulation using \"offline\" ice sheet models. Forcing for ice sheet model is from its own AOGCM",
                 "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
+                "experiment":"offline ice sheet forced by ISM's own AOGCM historical output",
+                "experiment_id":"ism-historical-self",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "CMIP"
+                    "ISMIP6"
+                ],
+                "parent_experiment_id":[
+                    "ism-piControl-self"
                 ],
-                "experiment":"historical simulation with specified anthropogenic aerosols, no other forcings",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "AOGCM"
+                    "ISM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp245":{
+            "ism-historical-std":{
                 "activity_id":[
-                    "ScenarioMIP"
-                ],
-                "description":"Future scenario with medium radiative forcing by the end of century. Following approximately RCP4.5 global forcing pathway but with new forcing based on SSP2. Concentration-driven",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                    "ISMIP6"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Historical simulation using \"offline\" ice sheet models. Forcing for ice sheet model is the standard dataset based on CMIP6 AOGCM historical",
+                "end_year":"2014",
+                "experiment":"offline ice sheet forced by ISMIP6-specified AOGCM historical output",
+                "experiment_id":"ism-historical-std",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "CMIP"
+                    "ISMIP6"
                 ],
-                "experiment":"update of RCP4.5 based on SSP2",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "ism-pdControl-std"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "ISM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piClim-spAer-anthro":{
+            "ism-lig127k-std":{
                 "activity_id":[
-                    "RFMIP"
+                    "ISMIP6"
                 ],
-                "description":"Prescribed anthropogenic aerosol optical properties. Anthropogenic forcings",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"effective radiative forcing at present day with specified anthropogenic aerosol optical properties, anthropogenic forcings",
                 "additional_allowed_model_components":"",
+                "description":"Last interglacial simulation of ice sheet evolution driven by PMIP lig127k",
+                "end_year":"",
+                "experiment":"offline ice sheet forced by ISMIP6-specified AGCM last interglacial output",
+                "experiment_id":"ism-lig127k-std",
+                "min_number_yrs_per_sim":"20000",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
-                    "AGCM"
+                    "ISM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "dcppC-atl-pacemaker":{
+            "ism-pdControl-std":{
                 "activity_id":[
-                    "DCPP"
+                    "ISMIP6"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"",
+                "additional_allowed_model_components":"",
+                "description":"Present-day control simulation for \"offline\" ice sheets",
                 "end_year":"",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pacemaker atlantic experiment",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "experiment":"offline ice sheet forced by ISMIP6-specified AOGCM pdControl output",
+                "experiment_id":"ism-pdControl-std",
+                "min_number_yrs_per_sim":"100",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "ISM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "ssp370SST":{
+            "ism-piControl-self":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "ISMIP6"
                 ],
-                "description":"Future SSP3-7.0, with SSTs prescribed from ssp370",
-                "start_year":"2015",
-                "end_year":"2055",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSP3-7.0, with SSTs prescribed from ssp370",
-                "additional_allowed_model_components":[
-                    "CHEM"
+                "additional_allowed_model_components":"",
+                "description":"Pre-industrial control simulation for \"offline\" ice sheets",
+                "end_year":"",
+                "experiment":"offline ice sheet forced by ISM's own AOGCM piControl output",
+                "experiment_id":"ism-piControl-self",
+                "min_number_yrs_per_sim":"500",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "ISM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"41",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "a4SSTice-4xCO2":{
+            "ism-ssp585-self":{
                 "activity_id":[
-                    "CFMIP"
+                    "ISMIP6"
                 ],
-                "description":"As a4SSTice, but CO2 is quadrupled, and the increase in CO2 is seen by both the radiation scheme and vegetation",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"as piSST but with SSTs and sea ice from abrupt4xCO2, and 4xCO2 seen by radiation and vegetation",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "additional_allowed_model_components":"",
+                "description":"Future climate ScenarioMIP SSP5-8.5 simulation using \"offline\" ice sheet models. Forcing for ice sheet model is from its own AOGCM",
+                "end_year":"2300",
+                "experiment":"offline ice sheet forced by ISM's own AOGCM ssp585 output",
+                "experiment_id":"ism-ssp585-self",
+                "min_number_yrs_per_sim":"85",
+                "parent_activity_id":[
+                    "ISMIP6"
+                ],
+                "parent_experiment_id":[
+                    "ism-historical-self"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "ISM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp460":{
+            "ism-ssp585-std":{
                 "activity_id":[
-                    "ScenarioMIP"
-                ],
-                "description":"Future scenario with medium radiative forcing by the end of century. Following approximately RCP6.0 global forcing pathway but with new forcing based on SSP4. Concentration-driven",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                    "ISMIP6"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Future climate ScenarioMIP SSP5-8.5 simulation using \"offline\" ice sheet models. Forcing for ice sheet model is the standard dataset based on ScenarioMIP ssp585",
+                "end_year":"2300",
+                "experiment":"offline ice sheet forced by ISMIP6-specified AOGCM ssp585 output",
+                "experiment_id":"ism-ssp585-std",
+                "min_number_yrs_per_sim":"85",
                 "parent_activity_id":[
-                    "CMIP"
+                    "ISMIP6"
                 ],
-                "experiment":"update of RCP6.0 based on SSP4",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "ism-historical-std"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "ISM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "histSST":{
+            "land-cCO2":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "LUMIP"
                 ],
-                "description":"Historical transient with SSTs prescribed from historical",
-                "start_year":"1850",
+                "additional_allowed_model_components":"",
+                "description":"Same as land-hist except with CO2 held constant",
                 "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical prescribed SSTs and historical forcing",
-                "additional_allowed_model_components":[
-                    "CHEM"
+                "experiment":"historical land-only constant CO2",
+                "experiment_id":"land-cCO2",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "land-crop-noIrrigFert":{
+            "land-cClim":{
                 "activity_id":[
                     "LUMIP"
                 ],
-                "description":"Same as land-hist except with plants in cropland area utilizing at least some form of crop management (e.g., planting and harvesting) rather than simulating cropland vegetation as a natural grassland. Irrigated area and fertilizer area/use should be held constant",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only with managed crops but with irrigation and fertilization held constant",
                 "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "LAND"
-                ],
-                "tier":"2",
+                "description":"Same as land-hist except with climate held constant",
+                "end_year":"2014",
+                "experiment":"historical land-only constant climate",
+                "experiment_id":"land-cClim",
                 "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
-            },
-            "piClim-lu":{
-                "activity_id":[
-                    "RFMIP"
+                "parent_activity_id":[
+                    "no parent"
                 ],
-                "description":"As in RFMIP-ERF-PI-Cntrl but with present-day land use",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"effective radiative forcing by present-day land use",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "volc-long-hlS":{
+            "land-crop-grass":{
                 "activity_id":[
-                    "VolMIP"
-                ],
-                "description":"Idealized Southern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2. Experiment initialized from PiControl",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                    "LUMIP"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Same as land-hist but with all new crop and pastureland treated as unmanaged grassland",
+                "end_year":"2014",
+                "experiment":"historical land-only with cropland as natural grassland",
+                "experiment_id":"land-crop-grass",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"Idealized Southern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "LAND"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"20",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp245-stratO3":{
+            "land-crop-noFert":{
                 "activity_id":[
-                    "DAMIP"
-                ],
-                "description":"Extension of stratospheric-ozone-only run under SSP2-4.5. In models with coupled chemistry, the chemistry scheme should be turned off, and the simulated ensemble mean monthly mean 3D stratospheric ozone concentrations from the SSP2-4.5 simulations should be prescribed. Tropospheric ozone should be fixed at 3D long-term monthly mean piControl values, with a value of 100 ppbv ozone concentration in this piControl climatology used to separate the troposphere f [...]
-                "start_year":"2021",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "hist-stratO3"
+                    "LUMIP"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Same as land-hist but with fertilization rates and area held at 1850 levels/distribution",
+                "end_year":"2014",
+                "experiment":"historical land-only with no fertilizer",
+                "experiment_id":"land-crop-noFert",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "DAMIP"
+                    "no parent"
                 ],
-                "experiment":"stratospheric-ozone-only SSP2-4.5 run",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "LAND"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"80",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp370":{
+            "land-crop-noIrrig":{
                 "activity_id":[
-                    "ScenarioMIP",
-                    "AerChemMIP"
-                ],
-                "description":"Future scenario with high radiative forcing by the end of century. Reaches about 7.0 W/m2 by 2100; fills gap in RCP forcing pathways between 6.0 and 8.5 W/m2. Concentration-driven",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                    "LUMIP"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Same as land-hist but with irrigated area held at 1850 levels",
+                "end_year":"2014",
+                "experiment":"historical land-only with no irrigation",
+                "experiment_id":"land-crop-noIrrig",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"gap-filling scenario reaching 7.0 based on SSP3",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "histSST-piAer":{
+            "land-crop-noIrrigFert":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "LUMIP"
                 ],
-                "description":"Historical WMGHG, halocarbon concentrations and tropospheric ozone precursors emissions, 1850 aerosol precursor emissions, prescribed SSTs",
-                "start_year":"1850",
+                "additional_allowed_model_components":"",
+                "description":"Same as land-hist except with plants in cropland area utilizing at least some form of crop management (e.g., planting and harvesting) rather than simulating cropland vegetation as a natural grassland. Irrigated area and fertilizer area/use should be held constant",
                 "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical SSTs and historical forcing, but with pre-industrial aerosol emissions",
-                "additional_allowed_model_components":[
-                    "CHEM"
+                "experiment":"historical land-only with managed crops but with irrigation and fertilization held constant",
+                "experiment_id":"land-crop-noIrrigFert",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "LAND"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "land-future":{
+                "activity_id":[
+                    "LS3MIP"
+                ],
+                "additional_allowed_model_components":"",
+                "description":"Land only simulations",
+                "end_year":"2100",
+                "experiment":"future land-only",
+                "experiment_id":"land-future",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
+                "required_model_components":[
+                    "LAND"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
             "land-hist":{
                 "activity_id":[
                     "LS3MIP",
                     "LUMIP"
                 ],
+                "additional_allowed_model_components":"",
                 "description":"Land only simulations",
-                "start_year":"1850 or 1700",
                 "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
                 "experiment":"historical land-only",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "LAND"
-                ],
-                "tier":"1",
+                "experiment_id":"land-hist",
                 "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
-            },
-            "lgm":{
-                "activity_id":[
-                    "PMIP"
+                "parent_activity_id":[
+                    "no parent"
                 ],
-                "description":"main forcings : ice-sheet; trace gases, orbital parameters dust (forcing, or feedback if dust cycle represented in model)",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"last glacial maximum",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"100",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "hist-spAer-all":{
+            "land-hist-altLu1":{
                 "activity_id":[
-                    "RFMIP"
+                    "LUMIP"
                 ],
-                "description":"Prescribed anthropogenic aerosol optical properties. All forcings",
-                "start_year":"1850",
+                "additional_allowed_model_components":"",
+                "description":"Land only simulations",
                 "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
+                "experiment":"historical land-only alternate land-use history",
+                "experiment_id":"land-hist-altLu1",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
-                "experiment":"historical simulation with specified anthropogenic aerosols",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "AOGCM"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "esm-ssp585":{
+            "land-hist-altLu2":{
                 "activity_id":[
-                    "C4MIP"
-                ],
-                "description":"Emissions-driven future scenario simulation",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "esm-hist"
+                    "LUMIP"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Land only simulations",
+                "end_year":"2014",
+                "experiment":"historical land-only alternate land use history",
+                "experiment_id":"land-hist-altLu2",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"emission-driven RCP8.5 based on SSP5",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM",
-                    "BGC"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"85",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "esm-hist":{
+            "land-hist-altStartYear":{
                 "activity_id":[
-                    "CMIP"
+                    "LUMIP"
                 ],
-                "description":"CMIP6 historical (CO2 emission-driven)",
-                "start_year":"1850",
+                "additional_allowed_model_components":"",
+                "description":"Same as land-hist except starting from either 1700 (for models that typically start in 1850) or 1850 (for models that typically start in 1700)",
                 "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "esm-piControl"
-                ],
+                "experiment":"historical land-only alternate start year",
+                "experiment_id":"land-hist-altStartYear",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"all-forcing simulation of the recent past with atmospheric CO2 concentration calculated",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM",
-                    "BGC"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "midPliocene-eoi400":{
+            "land-hist-cruNcep":{
                 "activity_id":[
-                    "PMIP"
+                    "LS3MIP"
                 ],
-                "description":"main forcings : trace gases, orography, ice-sheet",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"mid-Pliocene warm period",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "additional_allowed_model_components":"",
+                "description":"Land only simulations",
+                "end_year":"2014",
+                "experiment":"as land-hist with CRU-NCEP forcings",
+                "experiment_id":"land-hist-cruNcep",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"100",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ism-1pctCO2to4x-std":{
+            "land-hist-princeton":{
                 "activity_id":[
-                    "ISMIP6"
-                ],
-                "description":"Idealized 1%/yr CO2 increase to 4xC02 over 140yrs and kept constant at 4xCO2 for an additional 200 to 400 yrs simulation with ice sheets forced \"offline\" with DECK 1pctCO2 using a standard forcing",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "ism-pdControl-std"
+                    "LS3MIP"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Land only simulations",
+                "end_year":"2014",
+                "experiment":"as land-hist with Princeton forcings",
+                "experiment_id":"land-hist-princeton",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "ISMIP6"
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
-                "experiment":"offline ice sheet model forced by ISMIP6-specified AOGCM 1pctCO2to4x output",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "ISM"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"350",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp370SST-lowNTCF":{
+            "land-hist-wfdei":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "LS3MIP"
                 ],
-                "description":"Future SSP3-7.0 with reduced NTCF emissions, prescribed SSTs",
-                "start_year":"2015",
-                "end_year":"2055",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSP3-7.0, prescribed SSTs, with low NTCF emissions",
-                "additional_allowed_model_components":[
-                    "CHEM",
-                    "BGC"
+                "additional_allowed_model_components":"",
+                "description":"Land only simulations",
+                "end_year":"2014",
+                "experiment":"as land-hist with WFDEI forcings",
+                "experiment_id":"land-hist-wfdei",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"41",
-                "sub_experiment_id":"none"
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "historical-withism":{
+            "land-noFire":{
                 "activity_id":[
-                    "ISMIP6"
+                    "LUMIP"
                 ],
-                "description":"Historical simulation that includes interactive ice sheets. Set up follows the historical experiment",
-                "start_year":"1850",
+                "additional_allowed_model_components":"",
+                "description":"Same as land-hist but with anthropogenic ignition and suppression held to 1850 levels",
                 "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl-withism"
-                ],
+                "experiment":"historical land-only with no human fire management",
+                "experiment_id":"land-noFire",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "ISMIP6"
+                    "no parent"
                 ],
-                "experiment":"historical with interactive ice sheet",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM",
-                    "ISM"
+                    "LAND"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "deforest-globe":{
+            "land-noLu":{
                 "activity_id":[
                     "LUMIP"
                 ],
-                "description":"Idealized deforestation experiment, 20 million km2 forest removed linearly over a period of 50 years, with an additional 30 years with no specified change in forest cover; all other forcings held constant",
-                "start_year":"1850",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
+                "additional_allowed_model_components":"",
+                "description":"Same as land-hist except no land-use change",
+                "end_year":"2014",
+                "experiment":"historical land-only with no land-use change",
+                "experiment_id":"land-noLu",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"idealized transient global deforestation",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"81",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "dcppC-forecast-addPinatubo":{
+            "land-noPasture":{
                 "activity_id":[
-                    "DCPP"
-                ],
-                "description":"Effects of volcanoes on decadal prediction and predictability of forced and internal variability components",
-                "start_year":"2015",
-                "end_year":"2015",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":[
-                    "dcppA-assim",
-                    ""
+                    "LUMIP"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Same as land-hist but with grazing and other management on pastureland held at 1850 levels/distribution, i.e. all new pastureland is treated as unmanaged grassland (as in land-crop-grass)",
+                "end_year":"2014",
+                "experiment":"historical land-only with constant pastureland",
+                "experiment_id":"land-noPasture",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "DCPP"
+                    "no parent"
                 ],
-                "experiment":"2015 forecast with added Pinatubo forcing",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "LAND"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"5",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "1pctCO2Ndep":{
+            "land-noShiftCultivate":{
                 "activity_id":[
-                    "C4MIP"
-                ],
-                "description":"Fully-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling, plus an additional scenario of anthropogenic nitrogen deposition",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                    "LUMIP"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Same as land-hist except shifting cultivation turned off. An additional LUC transitions dataset will be provided as a data layer within LUMIP LUH2 dataset with shifting cultivation deactivated",
+                "end_year":"2014",
+                "experiment":"historical land-only with shifting cultivation turned off",
+                "experiment_id":"land-noShiftCultivate",
+                "min_number_yrs_per_sim":"165",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"1 percent per year increasing CO2 experiment with increasing N-deposition",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM",
-                    "BGC"
+                    "LAND"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"150",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "histSST-piN2O":{
+            "land-noWoodHarv":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "LUMIP"
                 ],
-                "description":"Historical (non-N2O) WMGHG concentrations and NTCF emissions, 1850 N2O concentrations",
-                "start_year":"1850",
+                "additional_allowed_model_components":"",
+                "description":"Same as land-hist but with wood harvest maintained at 1850 amounts/areas",
                 "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical SSTs and historical forcings, but with pre-industrial N2O concentrations",
-                "additional_allowed_model_components":[
-                    "BGC"
+                "experiment":"historical land-only with no wood harvest",
+                "experiment_id":"land-noWoodHarv",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER",
-                    "CHEM"
+                    "LAND"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1850 or 1700",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piControl-withism":{
+            "lfmip-initLC":{
                 "activity_id":[
-                    "ISMIP6"
+                    "LS3MIP"
                 ],
-                "description":"Pre-industrial control simulation that includes interactive ice sheets",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"preindustrial control with interactive ice sheet",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Initialized pseudo-observations land",
+                "end_year":"2014",
+                "experiment":"initialized from \"historical\" run year 1980, but with land conditions initialized from pseudo-observations",
+                "experiment_id":"lfmip-initLC",
+                "min_number_yrs_per_sim":"35",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
-                    "AOGCM",
-                    "ISM"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"451",
-                "sub_experiment_id":"none"
+                "start_year":"1980",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "aqua-control-lwoff":{
+            "lfmip-pdL-princeton":{
                 "activity_id":[
-                    "CFMIP"
+                    "LS3MIP"
                 ],
-                "description":"As aqua-control experiment, but with cloud-radiative effects switched off in the LW radiation code",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"aquaplanet control with longwave cloud radiative effects off",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Prescribed land conditions 1980-2014 climate with Land-Hist-princeton",
+                "end_year":"2100",
+                "experiment":"as LFMIP-pdLC with Land-Hist-princeton",
+                "experiment_id":"lfmip-pdL-princeton",
+                "min_number_yrs_per_sim":"121",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
+                "start_year":"1980",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "highres-future":{
+            "lfmip-pdLC":{
                 "activity_id":[
-                    "HighResMIP"
-                ],
-                "description":"Coupled integrations, at least one with constant 1950\"s forcing (CTL) and one or more with historic and then RCP4.5 (as in Forced_Atmos_Land, EXP)",
-                "start_year":"1951",
-                "end_year":"2050",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "hist-1950"
-                ],
-                "parent_activity_id":[
-                    "HighResMIP"
+                    "LS3MIP"
                 ],
-                "experiment":"coupled future 2015-2050 using a scenario as close to CMIP5 RCP8.5 as possible within CMIP6",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Prescribed land conditions 1980-2014 climate",
+                "end_year":"2100",
+                "experiment":"prescribed land conditions (from current climate climatology) and initialized from \"historical\" run year 1980",
+                "experiment_id":"lfmip-pdLC",
+                "min_number_yrs_per_sim":"121",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"100",
-                "sub_experiment_id":"none"
+                "start_year":"1980",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "hist-volc":{
+            "lfmip-pdLC-cruNcep":{
                 "activity_id":[
-                    "DAMIP"
-                ],
-                "description":"Historical volcanic-only run",
-                "start_year":"1850",
-                "end_year":"2020",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "LS3MIP"
                 ],
-                "experiment":"historical volcanic-only run",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Prescribed land conditions 1980-2014 climate with Land-Hist-cruNcep",
+                "end_year":"2100",
+                "experiment":"as LFMIP-pdLC with Land-Hist-cruNcep",
+                "experiment_id":"lfmip-pdLC-cruNcep",
+                "min_number_yrs_per_sim":"121",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"171",
-                "sub_experiment_id":"none"
+                "start_year":"1980",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "hist-all-nat2":{
+            "lfmip-pdLC-wfdei":{
                 "activity_id":[
-                    "DAMIP"
-                ],
-                "description":"Historical ALL forcing run with alternates estimate of solar and volcanic forcing",
-                "start_year":"1850",
-                "end_year":"2020",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "LS3MIP"
                 ],
-                "experiment":"historical ALL-forcing run with alternate estimates of natural forcing",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Prescribed land conditions 1980-2014 climate with Land-Hist-wfdei",
+                "end_year":"2100",
+                "experiment":"as LFMIP-pdLC with Land-Hist-wfdei",
+                "experiment_id":"lfmip-pdLC-wfdei",
+                "min_number_yrs_per_sim":"121",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"171",
-                "sub_experiment_id":"none"
+                "start_year":"1980",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "hist-noLu":{
+            "lfmip-rmLC":{
                 "activity_id":[
-                    "LUMIP"
-                ],
-                "description":"Same as CMIP6 historical but with land cover held at 1850, no human activity; concentration driven",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
-                ],
-                "parent_activity_id":[
-                    "CMIP"
+                    "LS3MIP"
                 ],
-                "experiment":"historical with no land-use change",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Prescribed land conditions 30yr running mean",
+                "end_year":"2100",
+                "experiment":"prescribed land conditions (from running mean climatology) and initialized from \"historical\" run year 1980",
+                "experiment_id":"lfmip-rmLC",
+                "min_number_yrs_per_sim":"121",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1980",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piClim-2xfire":{
+            "lfmip-rmLC-cruNcep":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "LS3MIP"
                 ],
-                "description":"1850 control with doubled emissions of fires",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled emissions from fires",
                 "additional_allowed_model_components":[
-                    "CHEM"
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Prescribed land conditions 30yr running mean with Land-Hist-cruNcep",
+                "end_year":"2100",
+                "experiment":"as LFMIP-rmLC with Land-Hist-cruNcep",
+                "experiment_id":"lfmip-rmLC-cruNcep",
+                "min_number_yrs_per_sim":"121",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
                 ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"1980",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "G7SST2-cirrus":{
+            "lfmip-rmLC-princeton":{
                 "activity_id":[
-                    "GeoMIP"
+                    "LS3MIP"
                 ],
-                "description":"Time slice at 2100 (ScenarioMIP Tier 1 high forcing scenario and cirrus thinning according to G7cirrus)",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSTs from year 2100 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G7cirrus",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
                 ],
-                "required_model_components":[
-                    "AGCM"
-                ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
-            },
-            "ism-ssp585-self":{
-                "activity_id":[
-                    "ISMIP6"
+                "description":"Prescribed land conditions 30yr running mean with Land-Hist-princeton",
+                "end_year":"2100",
+                "experiment":"as LFMIP-rmLC with Land-Hist-princeton",
+                "experiment_id":"lfmip-rmLC-princeton",
+                "min_number_yrs_per_sim":"121",
+                "parent_activity_id":[
+                    "CMIP"
                 ],
-                "description":"Future climate ScenarioMIP SSP5-8.5 simulation using \"offline\" ice sheet models. Forcing for ice sheet model is from its own AOGCM",
-                "start_year":"2015",
-                "end_year":"2300",
-                "sub_experiment":"none",
                 "parent_experiment_id":[
-                    "ism-historical-self"
-                ],
-                "parent_activity_id":[
-                    "ISMIP6"
+                    "historical"
                 ],
-                "experiment":"offline ice sheet forced by ISM's own AOGCM ssp585 output",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "ISM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"286",
-                "sub_experiment_id":"none"
+                "start_year":"1980",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ism-ctrl-std":{
+            "lfmip-rmLC-wfdei":{
                 "activity_id":[
-                    "ISMIP6"
+                    "LS3MIP"
                 ],
-                "description":"Offline ice sheet control run for the initMIP experiment that explores the uncertainty in sea level due to ice sheet initialization",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    ""
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
                 ],
+                "description":"Prescribed land conditions 30yr running mean with Land-Hist-wfdei",
+                "end_year":"2100",
+                "experiment":"as LFMIP-rmLC with Land-Hist-wfdei",
+                "experiment_id":"lfmip-rmLC-wfdei",
+                "min_number_yrs_per_sim":"121",
                 "parent_activity_id":[
-                    "ISMIP"
+                    "CMIP"
                 ],
-                "experiment":"offline ice sheet model initMIP control",
-                "additional_allowed_model_components":[
-                    ""
+                "parent_experiment_id":[
+                    "historical"
                 ],
                 "required_model_components":[
-                    "ISM"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"100",
-                "sub_experiment_id":"none"
+                "start_year":"1980",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "aqua-control":{
+            "lgm":{
                 "activity_id":[
-                    "CFMIP"
+                    "PMIP"
                 ],
-                "description":"Extended version of CMIP5/CFMIP-2 aquaControl experiment. Aquaplanet (no land) experiment with no seasonal cycle forced with specified zonally symmetric SSTs",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"aquaplanet control",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
                 ],
-                "required_model_components":[
-                    "AGCM"
+                "description":"main forcings: ice-sheet; trace gases, astronomical parameters, dust (forcing, or feedback if dust cycle represented in model)",
+                "end_year":"",
+                "experiment":"last glacial maximum",
+                "experiment_id":"lgm",
+                "min_number_yrs_per_sim":"100",
+                "parent_activity_id":[
+                    "no parent"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
-            },
-            "volc-cluster-ctrl":{
-                "activity_id":[
-                    "VolMIP"
+                "parent_experiment_id":[
+                    "no parent"
+                ],
+                "required_model_components":[
+                    "AOGCM"
                 ],
-                "description":"Early 19th century cluster of strong tropical volcanic eruptions, including the 1809 event of unknown location, the 1815 Tambora and 1835 Cosigueina eruptions. Experiment initialized from PiControl",
                 "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "parent_activity_id":[
-                    "CMIP"
+                "tier":"1"
+            },
+            "lig127k":{
+                "activity_id":[
+                    "PMIP"
                 ],
-                "experiment":"19th century volcanic cluster initialized from PiControl",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"main forcings: astronomical parameters, trace gases, dust (forcing, or feedback if dust cycle represented in model)",
+                "end_year":"",
+                "experiment":"last interglacial (127k)",
+                "experiment_id":"lig127k",
+                "min_number_yrs_per_sim":"100",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"50",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "amip-lwoff":{
+            "midHolocene":{
                 "activity_id":[
-                    "CFMIP"
+                    "PMIP"
                 ],
-                "description":"As amip experiment, but with cloud-radiative effects switched off in the LW radiation code",
-                "start_year":"1979",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"AMIP experiment with longwave cloud-radiative effects off",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
                 ],
-                "required_model_components":[
-                    "AGCM"
+                "description":"main forcings: trace gases, orbital parameters, dust (forcing, or feedback if dust cycle represented in model)",
+                "end_year":"",
+                "experiment":"mid-Holocene",
+                "experiment_id":"midHolocene",
+                "min_number_yrs_per_sim":"200",
+                "parent_activity_id":[
+                    "no parent"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"36",
-                "sub_experiment_id":"none"
-            },
-            "land-future":{
-                "activity_id":[
-                    "LS3MIP"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
-                "description":"Land only simulations",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"future land-only",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "LAND"
-                ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
-            },
-            "volc-pinatubo-strat":{
-                "activity_id":[
-                    "VolMIP"
+                    "AOGCM"
                 ],
-                "description":"As volc-pinatubo-full, but with prescribed perturbation to the total (LW+SW) radiative heating rates",
                 "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "parent_activity_id":[
-                    "CMIP"
+                "tier":"1"
+            },
+            "midPliocene-eoi400":{
+                "activity_id":[
+                    "PMIP"
                 ],
-                "experiment":"Pinatubo experiment with partial radiative forcing, includes only stratospheric warming",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"main forcings: trace gases, orography, ice-sheet",
+                "end_year":"",
+                "experiment":"mid-Pliocene warm period",
+                "experiment_id":"midPliocene-eoi400",
+                "min_number_yrs_per_sim":"100",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"3",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "G6sulfur":{
+            "omip1":{
                 "activity_id":[
-                    "GeoMIP"
-                ],
-                "description":"Using equatorial SO2 injection, return the radiative forcing from a background of the ScenarioMIP high forcing to the ScenarioMIP middle forcing",
-                "start_year":"2020",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                    "OMIP"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"Global ocean - sea-ice coupled experiment forced with the Coordinated Ocean - ice Reference Experiments inter-annually varying atmospheric and river data sets for years 1948-2009. Initial ocean tracer fields are based on observations. All Priority=1 OMIP diagnostics are requested for all five cycles of the 62-year forcing to quantify drift. All OMIP diagnostics (Priority=1,2,3) are requested for the 5th cycle",
+                "end_year":"310",
+                "experiment":"OMIP experiment forced by Large and Yeager (CORE-2, NCEP) atmospheric data set and initialized with observed physical and biogeochemical ocean data",
+                "experiment_id":"omip1",
+                "min_number_yrs_per_sim":"310",
                 "parent_activity_id":[
-                    "CMIP"
+                    "no parent"
                 ],
-                "experiment":"stratospheric sulfate aerosol injection to reduce net forcing from SSP585 to SSP245",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "OGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"81",
-                "sub_experiment_id":"none"
+                "start_year":"1",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "G6SST2-solar":{
+            "omip1-spunup":{
                 "activity_id":[
-                    "GeoMIP"
+                    "OMIP"
                 ],
-                "description":"Time slice at 2100 (G6solar)",
-                "start_year":"",
+                "additional_allowed_model_components":"",
+                "description":"Same as the omip1 experiment except that it is not initialized with observed climatologies; rather it is initialized with results from at least a 2000-year spin up of the coupled physical-biogeochemical models. The spin up simulations may be made with the classic online or offline approach, or with tracer-acceleration techniques or fast solvers. If an online approach is used, at the end of the 5th cycle of CORE-II forcing, the model's physical fields should [...]
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G6solar",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "experiment":"OMIP experiment forced by Large and Yeager (CORE-2, NCEP) atmospheric data set and initialized from at least a 2000-year spin up of the coupled physical-biogeochemical model",
+                "experiment_id":"omip1-spunup",
+                "min_number_yrs_per_sim":"310",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "OGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "land-noLu":{
+            "omip2":{
                 "activity_id":[
-                    "LUMIP"
+                    "OMIP"
                 ],
-                "description":"Same as land-hist except no land-use change",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only with no land-use change",
                 "additional_allowed_model_components":"",
+                "description":"Global ocean - sea-ice coupled experiment forced with the JRA-55do inter-annually varying atmospheric and river data sets for years 1958-2016. Initial ocean tracer fields are based on observations. All Priority=1 OMIP diagnostics are requested for all five cycles of the 59-year forcing to quantify drift. All OMIP diagnostics (Priority=1,2,3) are requested for the 5th cycle",
+                "end_year":"",
+                "experiment":"OMIP experiment forced by JRA-55do atmospheric data set and initialized with observed physical and biogeochemical ocean data",
+                "experiment_id":"omip2",
+                "min_number_yrs_per_sim":"295",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
-                    "LAND"
+                    "OGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "dcppC-forecast-addElChichon":{
+            "omip2-spunup":{
                 "activity_id":[
-                    "DCPP"
+                    "OMIP"
+                ],
+                "additional_allowed_model_components":"",
+                "description":"Same as the omip2 experiment except that it is not initialized with observed climatologies; rather it is initialized with results from at least a 2000-year spin up of the coupled physical-biogeochemical models. The spin up simulations may be made with the classic online or offline approach, or with tracer-acceleration techniques or fast solvers. If an online approach is used, at the end of the 5th cycle ofthe JRA-55do forcing, the model's physical fields sh [...]
+                "end_year":"",
+                "experiment":"OMIP experiment forced by JRA-55do atmospheric data set and initialized from at least a 2000-year spin up of the coupled physical-biogeochemical model",
+                "experiment_id":"omip2-spunup",
+                "min_number_yrs_per_sim":"295",
+                "parent_activity_id":[
+                    "no parent"
                 ],
-                "description":"Effects of volcanoes on decadal prediction and predictability of forced and internal variability components",
-                "start_year":"2015",
-                "end_year":"2015",
-                "sub_experiment":"initialized near end of year YYYY",
                 "parent_experiment_id":[
-                    "dcppA-assim",
-                    ""
+                    "no parent"
                 ],
-                "parent_activity_id":[
-                    "DCPP"
+                "required_model_components":[
+                    "OGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
+            },
+            "past1000":{
+                "activity_id":[
+                    "PMIP"
                 ],
-                "experiment":"2015 forecast with added El Chichon forcing",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"main forcings: trace gases, volcanoes, solar variability, land use",
+                "end_year":"1849",
+                "experiment":"last millennium",
+                "experiment_id":"past1000",
+                "min_number_yrs_per_sim":"1000",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"5",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "piClim-BC":{
+            "piClim-2xDMS":{
                 "activity_id":[
                     "AerChemMIP"
                 ],
-                "description":"Perturbation from 1850 control using 2014 BC emissions",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 black carbon emissions",
                 "additional_allowed_model_components":[
                     "CHEM"
                 ],
+                "description":"1850 control with doubled emissions of DMS",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled emissions of DMS",
+                "experiment_id":"piClim-2xDMS",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AGCM",
                     "AER"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
-            },
-            "dcppC-pac-pacemaker":{
-                "activity_id":[
-                    "DCPP"
-                ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
                 "start_year":"",
-                "end_year":"",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pacemaker pacific experiment",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
-                ],
-                "required_model_components":[
-                    "AOGCM"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "tier":"3"
             },
-            "ssp585-withism":{
+            "piClim-2xNOx":{
                 "activity_id":[
-                    "ISMIP6"
-                ],
-                "description":"Future climate from ScenarioMIP SSP5-8.5 simulation that includes interactive ice sheets. Set up follows the standard SSP5-8.5 experiment",
-                "start_year":"2015",
-                "end_year":"2300",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical-withism"
+                    "AerChemMIP"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"1850 control with doubled emissions of lightning NOx",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled production of NOx due to lightning",
+                "experiment_id":"piClim-2xNOx",
+                "min_number_yrs_per_sim":"30",
                 "parent_activity_id":[
-                    "ISMIP6"
+                    "CMIP"
                 ],
-                "experiment":"ssp585 with interactive ice sheet",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AOGCM",
-                    "ISM"
+                    "AGCM",
+                    "AER",
+                    "CHEM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"286",
-                "sub_experiment_id":"none"
+                "tier":"3"
             },
-            "highresSST-p4K":{
+            "piClim-2xVOC":{
                 "activity_id":[
-                    "HighResMIP"
-                ],
-                "description":"Similar to CFMIP amip-p4K, add a uniform warming of 4K to highresSST-present SSTs and run the experiment parallel to years 2005-2014 of highresSST-present",
-                "start_year":"1951",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "highresSST-present"
+                    "AerChemMIP"
                 ],
+                "additional_allowed_model_components":"",
+                "description":"1850 control with doubled emissions of biogenic VOCs",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled emissions of biogenic VOCs",
+                "experiment_id":"piClim-2xVOC",
+                "min_number_yrs_per_sim":"30",
                 "parent_activity_id":[
-                    "HighResMIP"
+                    "CMIP"
                 ],
-                "experiment":"uniform 4K warming of highresSST-present SST",
-                "additional_allowed_model_components":[
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM",
                     "AER",
                     "CHEM"
                 ],
-                "required_model_components":[
-                    "AGCM"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"64",
-                "sub_experiment_id":"none"
+                "tier":"3"
             },
-            "dcppC-hindcast-noPinatubo":{
+            "piClim-2xdust":{
                 "activity_id":[
-                    "DCPP"
+                    "AerChemMIP"
                 ],
-                "description":"Effects of volcanoes on decadal prediction and predictability of forced and internal variability components",
-                "start_year":"1991",
-                "end_year":"1991",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":[
-                    "dcppA-assim",
-                    ""
+                "additional_allowed_model_components":[
+                    "CHEM"
                 ],
+                "description":"1850 control with doubled dust emissions",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled emissions of dust",
+                "experiment_id":"piClim-2xdust",
+                "min_number_yrs_per_sim":"30",
                 "parent_activity_id":[
-                    "DCPP"
+                    "CMIP"
                 ],
-                "experiment":"hindcast but with only background volcanic forcing",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AOGCM"
-                ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"5",
-                "sub_experiment_id":"of form: \"sYYYY\""
-            },
-            "dcppC-ipv-nextrop-minus":{
-                "activity_id":[
-                    "DCPP"
+                    "AGCM",
+                    "AER"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
                 "start_year":"",
-                "end_year":"",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized negative northern extratropical IPV anomaly pattern",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "required_model_components":[
-                    "AOGCM"
-                ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "tier":"2"
             },
-            "lfmip-initLC":{
+            "piClim-2xfire":{
                 "activity_id":[
-                    "LS3MIP"
+                    "AerChemMIP"
                 ],
-                "description":"Initialized pseudo-observations land",
-                "start_year":"1980",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                "additional_allowed_model_components":[
+                    "CHEM"
                 ],
+                "description":"1850 control with doubled emissions of fires",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled emissions from fires",
+                "experiment_id":"piClim-2xfire",
+                "min_number_yrs_per_sim":"30",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"initialized from \"historical\" run year 1980, but with land conditions initialized from pseudo-observations",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM",
+                    "AER"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"35",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "a4SST":{
+            "piClim-2xss":{
                 "activity_id":[
-                    "CFMIP"
+                    "AerChemMIP"
                 ],
-                "description":"As piSST, but with monthly-varying SSTs taken from years 111-140 of each model's own abrupt4xCO2 experiment instead of from piControl. Sea-ice is unchanged from piSST",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"as piSST but with SSTs from abrupt4xCO2",
                 "additional_allowed_model_components":[
-                    "AER",
                     "CHEM"
                 ],
-                "required_model_components":[
-                    "AGCM"
-                ],
-                "tier":"2",
+                "description":"1850 control with doubled sea salt emissions",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled emissions of sea salt",
+                "experiment_id":"piClim-2xss",
                 "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
-            },
-            "ism-historical-std":{
-                "activity_id":[
-                    "ISMIP6"
+                "parent_activity_id":[
+                    "CMIP"
                 ],
-                "description":"Historical simulation using \"offline\" ice sheet models. Forcing for ice sheet model is the standard dataset based on CMIP6 AOGCM historical",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
                 "parent_experiment_id":[
-                    "ism-pdControl-std"
-                ],
-                "parent_activity_id":[
-                    "ISMIP6"
+                    "piControl"
                 ],
-                "experiment":"offline ice sheet forced by ISMIP6-specified AOGCM historical output",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "ISM"
+                    "AGCM",
+                    "AER"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "dcppC-atl-control":{
+            "piClim-4xCO2":{
                 "activity_id":[
-                    "DCPP"
+                    "RFMIP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"1950 (from 1920 if possible)",
-                "end_year":"2015",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized Atlantic control",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM",
-                    "BGC"
+                    "CHEM"
+                ],
+                "description":"As in RFMIP-ERF-PI-Cntrl but with 4xCO2",
+                "end_year":"",
+                "experiment":"effective radiative forcing by 4xCO2",
+                "experiment_id":"piClim-4xCO2",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"66",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "highresSST-present":{
+            "piClim-BC":{
                 "activity_id":[
-                    "HighResMIP"
+                    "AerChemMIP"
                 ],
-                "description":"Forced global atmosphere-land simulations using daily 1/4 degree SST and sea-ice forcings, and aerosol concentrations (not emissions) to constrain model spread",
-                "start_year":"1951",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"forced atmosphere experiment for 1950-2014",
                 "additional_allowed_model_components":[
-                    "AER",
                     "CHEM"
                 ],
+                "description":"Perturbation from 1850 control using 2014 BC emissions",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 black carbon emissions",
+                "experiment_id":"piClim-BC",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
-                    "AGCM"
+                    "AGCM",
+                    "AER"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"64",
-                "sub_experiment_id":"none"
+                "tier":"2"
             },
-            "historical-ext":{
+            "piClim-CH4":{
                 "activity_id":[
-                    "CMIP"
+                    "AerChemMIP"
                 ],
-                "description":"Extension beyond 2014 of the CMIP6 historical",
-                "start_year":"2015",
+                "additional_allowed_model_components":"",
+                "description":"Perturbation from 1850 control using 2014 CH4 concentrations",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
-                ],
+                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 methane concentrations (including chemistry)",
+                "experiment_id":"piClim-CH4",
+                "min_number_yrs_per_sim":"30",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"post-2014 all-forcing simulation",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM",
+                    "AER",
+                    "CHEM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"1",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "piSST":{
+            "piClim-HC":{
                 "activity_id":[
-                    "CFMIP"
+                    "AerChemMIP"
                 ],
-                "description":"An AGCM experiment with monthly-varying SSTs, sea-ice, atmospheric constituents and any other necessary boundary conditions (e.g. vegetation if required) taken from each model's own piControl run (using the 30 years of piControl that are parallel to years 111-140 of its abrupt4xCO2 run). Dynamic vegetation should be turned off in all the piSST set of experiments",
-                "start_year":"Year 111-140 of piControl",
-                "end_year":"Year 111-140 of piControl",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"experiment forced with pre-industrial SSTs, sea ice and atmospheric constituents",
-                "additional_allowed_model_components":[
+                "additional_allowed_model_components":"",
+                "description":"Perturbation from 1850 control using 2014 halocarbon concentrations",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 halocarbon concentrations (including chemistry)",
+                "experiment_id":"piClim-HC",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM",
                     "AER",
                     "CHEM"
                 ],
-                "required_model_components":[
-                    "AGCM"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "tier":"1"
             },
-            "omip1":{
+            "piClim-N2O":{
                 "activity_id":[
-                    "OMIP"
+                    "AerChemMIP"
                 ],
-                "description":"Global ocean - sea-ice coupled experiment forced with the Coordinated Ocean - ice Reference Experiments inter-annually varying atmospheric and river data sets for years 1948-2009. Initial ocean tracer fields are based on observations. All Priority=1 OMIP diagnostics are requested for all five cycles of the 62-year forcing to quantify drift. All OMIP diagnostics (Priority=1,2,3) are requested for the 5th cycle",
-                "start_year":"1",
-                "end_year":"310",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"OMIP experiment forced by Large and Yeager (CORE-2, NCEP) atmospheric data set and initialized with observed physical and biogeochemical ocean data",
                 "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "OGCM"
+                "description":"Perturbation from 1850 control using 2014 N2O concentrations",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 N2O concentrations (including chemistry)",
+                "experiment_id":"piClim-N2O",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"310",
-                "sub_experiment_id":"none"
-            },
-            "omip2":{
-                "activity_id":[
-                    "OMIP"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
-                "description":"Global ocean - sea-ice coupled experiment forced with the JRA-55 inter-annually varying atmospheric and river data sets for years 1958-2016. Initial ocean tracer fields are based on observations. All Priority=1 OMIP diagnostics are requested for all five cycles of the 59-year forcing to quantify drift. All OMIP diagnostics (Priority=1,2,3) are requested for the 5th cycle",
-                "start_year":"1",
-                "end_year":"310",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"OMIP experiment forced by JRA-55 atmospheric data set and initialized with observed physical and biogeochemical ocean data",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "OGCM"
+                    "AGCM",
+                    "AER",
+                    "CHEM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"310",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "ssp585-bgc":{
+            "piClim-NH3":{
                 "activity_id":[
-                    "C4MIP"
+                    "AerChemMIP"
                 ],
-                "description":"Concentration-driven future scenario simulation, biogeochemically-coupled",
-                "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "hist-bgc"
+                "additional_allowed_model_components":[
+                    "CHEM"
                 ],
+                "description":"Perturbation from 1850 control using 2014 NH3 emissions",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 ammonia emissions",
+                "experiment_id":"piClim-NH3",
+                "min_number_yrs_per_sim":"30",
                 "parent_activity_id":[
-                    "C4MIP"
+                    "CMIP"
                 ],
-                "experiment":"biogeochemically-coupled version of the RCP8.5 based on SSP5",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AOGCM",
-                    "BGC"
+                    "AGCM",
+                    "AER"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"85",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "amip-a4SST-4xCO2":{
+            "piClim-NOx":{
                 "activity_id":[
-                    "CFMIP"
+                    "AerChemMIP"
                 ],
-                "description":"Same as amip, but a patterned SST anomaly is applied on top of the monthly-varying amip SSTs. This anomaly is a monthly climatology, taken from each model's own abrupt4xCO2 run minus piControl (using the mean of years 111-140 of abrupt4xCO2, and the parallel 30-year section of piControl). CO2 is quadrupled, and the increase in CO2 is seen by both the radiation scheme and vegetation",
-                "start_year":"",
+                "additional_allowed_model_components":"",
+                "description":"Perturbation from 1850 control using 2014 NOx emissions",
                 "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"as AMIP but with warming pattern from abrupt4xCO2 added to SSTs and 4xCO2 seen by radiation and vegetation",
-                "additional_allowed_model_components":[
+                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 NOx emissions",
+                "experiment_id":"piClim-NOx",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM",
                     "AER",
                     "CHEM"
                 ],
-                "required_model_components":[
-                    "AGCM"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"36",
-                "sub_experiment_id":"none"
+                "tier":"3"
             },
-            "hist-nat":{
+            "piClim-NTCF":{
                 "activity_id":[
-                    "DAMIP"
+                    "AerChemMIP"
                 ],
-                "description":"Historical natural-only run",
-                "start_year":"1850",
-                "end_year":"2020",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "piControl"
+                "additional_allowed_model_components":[
+                    "CHEM",
+                    "BGC"
                 ],
+                "description":"Perturbation from 1850 control using 2014 aerosol and ozone precursor emissions",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 NTCF emissions",
+                "experiment_id":"piClim-NTCF",
+                "min_number_yrs_per_sim":"30",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"historical natural-only run",
-                "additional_allowed_model_components":[
-                    "AER",
-                    "CHEM",
-                    "BGC"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM",
+                    "AER"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"171",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "1pctCO2-rad":{
+            "piClim-O3":{
                 "activity_id":[
-                    "C4MIP"
+                    "AerChemMIP"
                 ],
-                "description":"Radiatively-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling",
-                "start_year":"",
+                "additional_allowed_model_components":"",
+                "description":"Perturbation from 1850 control using 2014 ozone precursor emissions",
                 "end_year":"",
-                "sub_experiment":"none",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 ozone precursor emissions",
+                "experiment_id":"piClim-O3",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
                 "parent_experiment_id":[
                     "piControl"
                 ],
-                "parent_activity_id":[
-                    "CMIP"
+                "required_model_components":[
+                    "AGCM",
+                    "AER",
+                    "CHEM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piClim-OC":{
+                "activity_id":[
+                    "AerChemMIP"
                 ],
-                "experiment":"radiatively-coupled version of 1 percent per year increasing CO2 experiment",
                 "additional_allowed_model_components":[
-                    "AER",
                     "CHEM"
                 ],
+                "description":"Perturbation from 1850 control using 2014 OC emissions",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 organic carbon emissions",
+                "experiment_id":"piClim-OC",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
-                    "AOGCM",
-                    "BGC"
+                    "AGCM",
+                    "AER"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"150",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "land-noWoodHarv":{
+            "piClim-SO2":{
                 "activity_id":[
-                    "LUMIP"
+                    "AerChemMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "CHEM"
+                ],
+                "description":"Perturbation from 1850 control using 2014 SO2 emissions",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 SO2 emissions",
+                "experiment_id":"piClim-SO2",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
-                "description":"Same as land-hist but with wood harvest maintained at 1850 amounts/areas",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only with no wood harvest",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "LAND"
+                    "AGCM",
+                    "AER"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "ssp370SST-lowO3":{
+            "piClim-VOC":{
                 "activity_id":[
                     "AerChemMIP"
                 ],
-                "description":"Future SSP3-7.0 with reduced ozone precursor emissions (from ssp370-lowNTCF), prescribed SSTs",
-                "start_year":"2015",
-                "end_year":"2055",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSP3-7.0, prescribed SSTs, with low ozone precursor emissions",
                 "additional_allowed_model_components":"",
+                "description":"Perturbation from 1850 control using 2014 CO/VOC emissions",
+                "end_year":"",
+                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 VOC emissions",
+                "experiment_id":"piClim-VOC",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AGCM",
                     "AER",
                     "CHEM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"41",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "a4SSTice":{
+            "piClim-aer":{
                 "activity_id":[
-                    "CFMIP"
+                    "RFMIP",
+                    "AerChemMIP"
                 ],
-                "description":"As piSST, but with monthly-varying SSTs and sea-ice taken from years 111-140 of each model's own abrupt4xCO2 experiment instead of from piControl",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"as piSST but with SSTs and sea ice from abrupt4xCO2",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"As in RFMIP-ERF-PI-Cntrl but with with present-day aerosols. Note that this experiment is considered to be tier 1 by RFMIP but tier 2 by AerChemMIP",
+                "end_year":"",
+                "experiment":"effective radiative forcing by present-day aerosols",
+                "experiment_id":"piClim-aer",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "land-hist-cruNcep":{
+            "piClim-anthro":{
                 "activity_id":[
-                    "LS3MIP"
+                    "RFMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"As in RFMIP-ERF-PI-Cntrl but with present-day anthropogenic forcing (greenhouse gases, aerosols and land-use)",
+                "end_year":"",
+                "experiment":"effective radiative forcing by present day anthropogenic agents",
+                "experiment_id":"piClim-anthro",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
-                "description":"Land only simulations",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"as land-hist with CRU-NCEP forcings",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "LAND"
+                    "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "amip-piForcing":{
+            "piClim-control":{
                 "activity_id":[
-                    "CFMIP"
+                    "RFMIP",
+                    "AerChemMIP"
                 ],
-                "description":"Identical to standard AMIP experiment but from 1870-present with constant pre-industrial forcing levels (anthropogenic and natural)",
-                "start_year":"1870",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"AMIP SSTs with pre-industrial anthropogenic and natural forcing",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
+                "description":"30-year atmosphere only integration using preindustrial sea-surface temperature and sea-ice climatology. Interactive vegetation",
+                "end_year":"",
+                "experiment":"effective radiative forcing in present-day",
+                "experiment_id":"piClim-control",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
                 "required_model_components":[
                     "AGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"145",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "esm-piControl-spinup":{
+            "piClim-ghg":{
                 "activity_id":[
+                    "RFMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"As in RFMIP-ERF-PI-Cntrl but with present-day greenhouse gases",
+                "end_year":"",
+                "experiment":"effective radiative forcing by present-day greenhouse gases",
+                "experiment_id":"piClim-ghg",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
                     "CMIP"
                 ],
-                "description":"DECK: spin-up portion of the control (emission-driven)",
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
                 "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial control simulation with CO2 concentration calculated (spin-up)",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "piClim-histaer":{
+                "activity_id":[
+                    "RFMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"Time-varying forcing by aerosols. SST and sea ice fixed at preindustrial control. Interactive vegetation",
+                "end_year":"2100",
+                "experiment":"transient effective radiative forcing by aerosols",
+                "experiment_id":"piClim-histaer",
+                "min_number_yrs_per_sim":"251",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piClim-histall":{
+                "activity_id":[
+                    "RFMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"Time-varying forcing. SST and sea ice fixed at preindustrial control. Interactive vegetation",
+                "end_year":"2100",
+                "experiment":"transient effective radiative forcing",
+                "experiment_id":"piClim-histall",
+                "min_number_yrs_per_sim":"251",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piClim-histghg":{
+                "activity_id":[
+                    "RFMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"Time-varying forcing by GHGs. SST and sea ice fixed at preindustrial control. Interactive vegetation",
+                "end_year":"2100",
+                "experiment":"transient effective radiative forcing by greenhouse gases",
+                "experiment_id":"piClim-histghg",
+                "min_number_yrs_per_sim":"251",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piClim-histnat":{
+                "activity_id":[
+                    "RFMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"Time-varying forcing from volcanos, solar variability, etc. SST and sea ice fixed at preindustrial control. Interactive vegetation",
+                "end_year":"2100",
+                "experiment":"transient effective radiative forcing by natural perturbations",
+                "experiment_id":"piClim-histnat",
+                "min_number_yrs_per_sim":"251",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piClim-lu":{
+                "activity_id":[
+                    "RFMIP"
+                ],
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
-                "required_model_components":[
-                    "AOGCM",
-                    "BGC"
+                "description":"As in RFMIP-ERF-PI-Cntrl but with present-day land use",
+                "end_year":"",
+                "experiment":"effective radiative forcing by present-day land use",
+                "experiment_id":"piClim-lu",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "piClim-spAer-aer":{
+                "activity_id":[
+                    "RFMIP"
+                ],
+                "additional_allowed_model_components":"",
+                "description":"Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings",
+                "end_year":"",
+                "experiment":"effective radiative forcing at present day with specified anthropogenic aerosol optical properties, all forcings",
+                "experiment_id":"piClim-spAer-aer",
+                "min_number_yrs_per_sim":"",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piClim-spAer-anthro":{
+                "activity_id":[
+                    "RFMIP"
+                ],
+                "additional_allowed_model_components":"",
+                "description":"Prescribed anthropogenic aerosol optical properties. Anthropogenic forcings",
+                "end_year":"",
+                "experiment":"effective radiative forcing at present day with specified anthropogenic aerosol optical properties, anthropogenic forcings",
+                "experiment_id":"piClim-spAer-anthro",
+                "min_number_yrs_per_sim":"",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piClim-spAer-histaer":{
+                "activity_id":[
+                    "RFMIP"
+                ],
+                "additional_allowed_model_components":"",
+                "description":"Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings",
+                "end_year":"2014",
+                "experiment":"transient effective radiative forcing with specified anthropogenic aerosol optical properties, aerosol forcing",
+                "experiment_id":"piClim-spAer-histaer",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piClim-spAer-histall":{
+                "activity_id":[
+                    "RFMIP"
+                ],
+                "additional_allowed_model_components":"",
+                "description":"Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings",
+                "end_year":"2014",
+                "experiment":"transient effective radiative forcing with specified anthropogenic aerosol optical properties, all forcings",
+                "experiment_id":"piClim-spAer-histall",
+                "min_number_yrs_per_sim":"165",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"1850",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piControl":{
+                "activity_id":[
+                    "CMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"DECK: control",
+                "end_year":"",
+                "experiment":"pre-industrial control",
+                "experiment_id":"piControl",
+                "min_number_yrs_per_sim":"500",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl-spinup"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "piControl-spinup":{
+                "activity_id":[
+                    "CMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"DECK: spin-up portion of the control",
+                "end_year":"",
+                "experiment":"pre-industrial control (spin-up)",
+                "experiment_id":"piControl-spinup",
+                "min_number_yrs_per_sim":"100",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piControl-withism":{
+                "activity_id":[
+                    "ISMIP6"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Pre-industrial control simulation that includes interactive ice sheets",
+                "end_year":"",
+                "experiment":"preindustrial control with interactive ice sheet",
+                "experiment_id":"piControl-withism",
+                "min_number_yrs_per_sim":"500",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
+                "required_model_components":[
+                    "AOGCM",
+                    "ISM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "piSST":{
+                "activity_id":[
+                    "CFMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"An AGCM experiment with monthly-varying SSTs, sea-ice, atmospheric constituents and any other necessary boundary conditions (e.g. vegetation if required) taken from each model's own piControl run (using the 30 years of piControl that are parallel to years 111-140 of its abrupt4xCO2 run). Dynamic vegetation should be turned off in all the piSST set of experiments",
+                "end_year":"",
+                "experiment":"experiment forced with pre-industrial SSTs, sea ice and atmospheric constituents",
+                "experiment_id":"piSST",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piSST-4xCO2":{
+                "activity_id":[
+                    "CFMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"Same as piSST but CO2 is quadrupled. The increase in CO2 is seen by both the radiation scheme and vegetation",
+                "end_year":"",
+                "experiment":"as piSST with radiation and vegetation seeing 4xCO2",
+                "experiment_id":"piSST-4xCO2",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piSST-4xCO2-rad":{
+                "activity_id":[
+                    "CFMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"Same as piSST but CO2 as seen by the radiation scheme is quadrupled",
+                "end_year":"",
+                "experiment":"as piSST with radiation-only seeing 4xCO2",
+                "experiment_id":"piSST-4xCO2-rad",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piSST-4xCO2-solar":{
+                "activity_id":[
+                    "GeoMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"Time slice at 1850 (picontrol) for G1ext to examine radiative forcing of abrupt4xCO2",
+                "end_year":"",
+                "experiment":"preindustrial control SSTs with quadrupled CO2 and solar reduction",
+                "experiment_id":"piSST-4xCO2-solar",
+                "min_number_yrs_per_sim":"10",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "piSST-pxK":{
+                "activity_id":[
+                    "CFMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM"
+                ],
+                "description":"Same as piSST, but with a spatially and temporally uniform SST anomaly applied on top of the monthly-varying piSST SSTs. The magnitude of the uniform increase is taken from each model's global, climatological annual mean SST change between abrupt4xCO2 minus piControl (using the mean of years 111-140 of abrupt4xCO2, and the parallel 30-year section of piControl)",
+                "end_year":"",
+                "experiment":"as piSST with uniform SST increase with magnitude based on abrupt4xCO2 response",
+                "experiment_id":"piSST-pxK",
+                "min_number_yrs_per_sim":"20",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
+                ],
+                "required_model_components":[
+                    "AGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "rad-irf":{
+                "activity_id":[
+                    "RFMIP"
+                ],
+                "additional_allowed_model_components":"",
+                "description":"Offline radiation calculations",
+                "end_year":"",
+                "experiment":"offline assessment of radiative transfer parmeterizations in clear skies",
+                "experiment_id":"rad-irf",
+                "min_number_yrs_per_sim":"",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
+                "required_model_components":[
+                    "RAD"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "spinup-1950":{
+                "activity_id":[
+                    "HighResMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER"
+                ],
+                "description":"Coupled integration from ocean rest state using recommended HighResMIP protocol spinup, starting from 1950 ocean temperature and salinity analysis EN4, using constant 1950s forcing. At least 30 years to satisfy near surface quasi-equilibrium",
+                "end_year":"",
+                "experiment":"coupled spinup with fixed 1950s forcings from 1950 initial conditions (with ocean at rest) to provide initial condition for control-1950 and hist-1950",
+                "experiment_id":"spinup-1950",
+                "min_number_yrs_per_sim":"30",
+                "parent_activity_id":[
+                    "no parent"
+                ],
+                "parent_experiment_id":[
+                    "no parent"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "ssp126":{
+                "activity_id":[
+                    "ScenarioMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Future scenario with low radiative forcing by the end of century. Following approximately RCP2.6 global forcing pathway but with new forcing based on SSP1. Concentration-driven. As a tier 2 option, this simulation should be extended to year 2300",
+                "end_year":"2100 or 2300",
+                "experiment":"update of RCP2.6 based on SSP1",
+                "experiment_id":"ssp126",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "ssp126-ssp370Lu":{
+                "activity_id":[
+                    "LUMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Additional land use policy sensitivity simulation for low radiative forcing scenario, keep all forcings the same as ScenarioMIP SSP1-2.6 (afforestation scenario), but replace land use from SSP3-7 (afforestation) scenario; concentration-driven",
+                "end_year":"2100",
+                "experiment":"SSP1-2.6 with SSP3-7.0 land use",
+                "experiment_id":"ssp126-ssp370Lu",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "ssp245":{
+                "activity_id":[
+                    "ScenarioMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Future scenario with medium radiative forcing by the end of century. Following approximately RCP4.5 global forcing pathway but with new forcing based on SSP2. Concentration-driven",
+                "end_year":"2100",
+                "experiment":"update of RCP4.5 based on SSP2",
+                "experiment_id":"ssp245",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "ssp245-GHG":{
+                "activity_id":[
+                    "DAMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Extension of well-mixed GHG-only run under SSP2-4.5. Models with interactive chemistry schemes should either turn off the chemistry or use a preindustrial climatology of stratospheric and tropospheric ozone in their radiation schemes",
+                "end_year":"2100",
+                "experiment":"well-mixed GHG-only SSP2-4.5 run",
+                "experiment_id":"ssp245-GHG",
+                "min_number_yrs_per_sim":"80",
+                "parent_activity_id":[
+                    "DAMIP"
+                ],
+                "parent_experiment_id":[
+                    "hist-GHG"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"2021",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "ssp245-aer":{
+                "activity_id":[
+                    "DAMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Extension of aerosol-only run under SSP2-4.5",
+                "end_year":"2100",
+                "experiment":"aerosol-only SSP2-4.5 run",
+                "experiment_id":"ssp245-aer",
+                "min_number_yrs_per_sim":"80",
+                "parent_activity_id":[
+                    "DAMIP"
+                ],
+                "parent_experiment_id":[
+                    "hist-aer"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"2021",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
+            },
+            "ssp245-nat":{
+                "activity_id":[
+                    "DAMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Extension of natural-only run under SSP2-4.5",
+                "end_year":"2100",
+                "experiment":"natural-only SSP2-4.5 run",
+                "experiment_id":"ssp245-nat",
+                "min_number_yrs_per_sim":"80",
+                "parent_activity_id":[
+                    "DAMIP"
+                ],
+                "parent_experiment_id":[
+                    "hist-nat"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"2021",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
+            },
+            "ssp245-stratO3":{
+                "activity_id":[
+                    "DAMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "BGC"
+                ],
+                "description":"Extension of stratospheric-ozone-only run under SSP2-4.5. In models with coupled chemistry, the chemistry scheme should be turned off, and the simulated ensemble mean monthly mean 3D stratospheric ozone concentrations from the SSP2-4.5 simulations should be prescribed. Tropospheric ozone should be fixed at 3D long-term monthly mean piControl values, with a value of 100 ppbv ozone concentration in this piControl climatology used to separate the troposphere f [...]
+                "end_year":"2100",
+                "experiment":"stratospheric-ozone-only SSP2-4.5 run",
+                "experiment_id":"ssp245-stratO3",
+                "min_number_yrs_per_sim":"80",
+                "parent_activity_id":[
+                    "DAMIP"
+                ],
+                "parent_experiment_id":[
+                    "hist-stratO3"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"2021",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "ssp370":{
+                "activity_id":[
+                    "ScenarioMIP",
+                    "AerChemMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Future scenario with high radiative forcing by the end of century. Reaches about 7.0 W/m2 by 2100; fills gap in RCP forcing pathways between 6.0 and 8.5 W/m2. Concentration-driven",
+                "end_year":"2100",
+                "experiment":"gap-filling scenario reaching 7.0 based on SSP3",
+                "experiment_id":"ssp370",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "ssp370-lowNTCF":{
+                "activity_id":[
+                    "AerChemMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Future SSP3-7.0 with reduced NTCF emissions",
+                "end_year":"2055",
+                "experiment":"SSP3-7.0, with low NTCF emissions",
+                "experiment_id":"ssp370-lowNTCF",
+                "min_number_yrs_per_sim":"41",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
+                "required_model_components":[
+                    "AOGCM",
+                    "AER"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "ssp370-ssp126Lu":{
+                "activity_id":[
+                    "LUMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Additional land use policy sensitivity simulation for high radiative forcing scenario, keep all forcings the same as ScenarioMIP SSP3-7 (deforestation scenario), but replace land use from SSP1-2.6 (afforestation) scenario; concentration-driven",
+                "end_year":"2100",
+                "experiment":"SSP3-7.0 with SSP1-2.6 land use",
+                "experiment_id":"ssp370-ssp126Lu",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
+                "required_model_components":[
+                    "AOGCM"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "ssp370SST":{
+                "activity_id":[
+                    "AerChemMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "CHEM"
+                ],
+                "description":"Future SSP3-7.0, with SSTs prescribed from ssp370",
+                "end_year":"2055",
+                "experiment":"SSP3-7.0, with SSTs prescribed from ssp370",
+                "experiment_id":"ssp370SST",
+                "min_number_yrs_per_sim":"41",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp370"
+                ],
+                "required_model_components":[
+                    "AGCM",
+                    "AER"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "ssp370SST-lowAer":{
+                "activity_id":[
+                    "AerChemMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "CHEM"
+                ],
+                "description":"Future SSP3-7.0 with reduced aerosol emissions (from ssp370-lowNTCF), prescribed SSTs",
+                "end_year":"2055",
+                "experiment":"SSP3-7.0, prescribed SSTs, with low aerosol emissions",
+                "experiment_id":"ssp370SST-lowAer",
+                "min_number_yrs_per_sim":"41",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp370"
+                ],
+                "required_model_components":[
+                    "AGCM",
+                    "AER"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "ssp370SST-lowBC":{
+                "activity_id":[
+                    "AerChemMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "CHEM"
+                ],
+                "description":"Future SSP3-7.0 with reduced black carbon emissions, prescribed SSTs",
+                "end_year":"2055",
+                "experiment":"SSP3-7.0, prescribed SSTs, with low black carbon emissions",
+                "experiment_id":"ssp370SST-lowBC",
+                "min_number_yrs_per_sim":"41",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp370"
+                ],
+                "required_model_components":[
+                    "AGCM",
+                    "AER"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
+            },
+            "ssp370SST-lowCH4":{
+                "activity_id":[
+                    "AerChemMIP"
+                ],
+                "additional_allowed_model_components":"",
+                "description":"Future SSP3-7.0 with reduced CH4 concentrations, prescribed SSTs",
+                "end_year":"2055",
+                "experiment":"SSP3-7.0, prescribed SSTs, with low methane concentrations",
+                "experiment_id":"ssp370SST-lowCH4",
+                "min_number_yrs_per_sim":"41",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp370"
+                ],
+                "required_model_components":[
+                    "AGCM",
+                    "AER",
+                    "CHEM"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "ssp370SST-lowNTCF":{
+                "activity_id":[
+                    "AerChemMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Future SSP3-7.0 with reduced NTCF emissions, prescribed SSTs",
+                "end_year":"2055",
+                "experiment":"SSP3-7.0, prescribed SSTs, with low NTCF emissions",
+                "experiment_id":"ssp370SST-lowNTCF",
+                "min_number_yrs_per_sim":"41",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp370"
+                ],
+                "required_model_components":[
+                    "AGCM",
+                    "AER"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
+            },
+            "ssp370SST-lowO3":{
+                "activity_id":[
+                    "AerChemMIP"
+                ],
+                "additional_allowed_model_components":"",
+                "description":"Future SSP3-7.0 with reduced ozone precursor emissions (from ssp370-lowNTCF), prescribed SSTs",
+                "end_year":"2055",
+                "experiment":"SSP3-7.0, prescribed SSTs, with low ozone precursor emissions",
+                "experiment_id":"ssp370SST-lowO3",
+                "min_number_yrs_per_sim":"41",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp370"
+                ],
+                "required_model_components":[
+                    "AGCM",
+                    "AER",
+                    "CHEM"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"100",
-                "sub_experiment_id":"none"
+                "tier":"2"
             },
-            "piClim-2xdust":{
+            "ssp370SST-ssp126Lu":{
                 "activity_id":[
                     "AerChemMIP"
                 ],
-                "description":"1850 control with doubled dust emissions",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled emissions of dust",
                 "additional_allowed_model_components":[
                     "CHEM"
                 ],
+                "description":"Future SSP3-7.0 with low land use change (from ssp126), prescribed SSTs",
+                "end_year":"2055",
+                "experiment":"SSP3-7.0, prescribed SSTs, with SSP1-2.6 land use",
+                "experiment_id":"ssp370SST-ssp126Lu",
+                "min_number_yrs_per_sim":"41",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp370"
+                ],
                 "required_model_components":[
                     "AGCM",
                     "AER"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
-            },
-            "dcppC-forecast-addAgung":{
-                "activity_id":[
-                    "DCPP"
-                ],
-                "description":"Effects of volcanoes on decadal prediction and predictability of forced and internal variability components",
                 "start_year":"2015",
-                "end_year":"2015",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":[
-                    "dcppA-assim",
-                    ""
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "parent_activity_id":[
-                    "DCPP"
+                "tier":"1"
+            },
+            "ssp434":{
+                "activity_id":[
+                    "ScenarioMIP"
                 ],
-                "experiment":"2015 forecast with added Agung forcing",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Future scenario with low radiative forcing by the end of century. Reaches about 3.4 W/m2 by 2100; fills gap in RCP forcing pathways between 4.5 and 2.6 W/m2. Concentration-driven",
+                "end_year":"2100",
+                "experiment":"gap-filling scenario reaching 3.4 based on SSP4",
+                "experiment_id":"ssp434",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"5",
-                "sub_experiment_id":"of form: \"sYYYY\""
-            },
-            "ssp534-over":{
-                "activity_id":[
-                    "ScenarioMIP"
-                ],
-                "description":"21st century overshoot scenario relative to SSP5_34. Branches from SS5_85 at 2040 with emissions reduced to zero by 2070 and negative thereafter",
                 "start_year":"2015",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "ssp585"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "parent_activity_id":[
+                "tier":"2"
+            },
+            "ssp460":{
+                "activity_id":[
                     "ScenarioMIP"
                 ],
-                "experiment":"overshoot of 3.4 W/m**2 branching from ssp585 in 2040",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Future scenario with medium radiative forcing by the end of century. Following approximately RCP6.0 global forcing pathway but with new forcing based on SSP4. Concentration-driven",
+                "end_year":"2100",
+                "experiment":"update of RCP6.0 based on SSP4",
+                "experiment_id":"ssp460",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"86",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "land-noFire":{
+            "ssp534-over":{
                 "activity_id":[
-                    "LUMIP"
+                    "ScenarioMIP"
                 ],
-                "description":"Same as land-hist but with anthropogenic ignition and suppression held to 1850 levels",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only with no human fire management",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "LAND"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
-            },
-            "omip2-spunup":{
-                "activity_id":[
-                    "OMIP"
+                "description":"21st century overshoot scenario relative to SSP5_34. Branches from SS5_85 at 2040 with emissions reduced to zero by 2070 and negative thereafter. This simulation should optionally be extended to year 2300",
+                "end_year":"2100 or 2300",
+                "experiment":"overshoot of 3.4 W/m**2 branching from ssp585 in 2040",
+                "experiment_id":"ssp534-over",
+                "min_number_yrs_per_sim":"61",
+                "parent_activity_id":[
+                    "ScenarioMIP"
+                ],
+                "parent_experiment_id":[
+                    "ssp585"
                 ],
-                "description":"Same as the omipv2 experiment except that it is not initialized with observed climatologies; rather it is initialized with results from at least a 2000-year spin up of the coupled physical-biogeochemical models. Also it includes radiocarbon to evaluate deep-ocean circulation",
-                "start_year":"1",
-                "end_year":"310",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"OMIP experiment forced by JRA-55 atmospheric data set and initialized from at least a 2000-year spin up of the coupled physical-biogeochemical model",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "OGCM"
+                    "AOGCM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"310",
-                "sub_experiment_id":"none"
+                "start_year":"2040",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piClim-2xNOx":{
+            "ssp534-over-bgc":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "C4MIP"
                 ],
-                "description":"1850 control with doubled emissions of lightning NOx",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with doubled production of NOx due to lightning",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "AGCM",
+                "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
-                "tier":"3",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
-            },
-            "piClim-spAer-histaer":{
-                "activity_id":[
-                    "RFMIP"
+                "description":"This simulation should optionally be extended to year 2300",
+                "end_year":"2100 or 2300",
+                "experiment":"biogeochemically-coupled version of the RCP3.4-overshoot based on SSP5",
+                "experiment_id":"ssp534-over-bgc",
+                "min_number_yrs_per_sim":"85",
+                "parent_activity_id":[
+                    "C4MIP"
+                ],
+                "parent_experiment_id":[
+                    "hist-bgc"
                 ],
-                "description":"Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"transient effective radiative forcing with specified anthropogenic aerosol optical properties, aerosol forcing",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM",
+                    "BGC"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "dcppC-ipv-plus":{
+            "ssp585":{
                 "activity_id":[
-                    "DCPP"
+                    "ScenarioMIP"
                 ],
-                "description":"Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs",
-                "start_year":"control",
-                "end_year":"",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"idealized positive IPV anomaly pattern",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Future scenario with high radiative forcing by the end of century. Following approximately RCP8.5 global forcing pathway but with new forcing based on SSP5. Concentration-driven. As a tier 2 option, this simulation should be extended to year 2300",
+                "end_year":"2100 or 2300",
+                "experiment":"update of RCP8.5 based on SSP5",
+                "experiment_id":"ssp585",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
+                ],
                 "required_model_components":[
                     "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"25",
-                "sub_experiment_id":"of form: \"sYYYY\""
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "piClim-O3":{
+            "ssp585-bgc":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "C4MIP"
                 ],
-                "description":"Perturbation from 1850 control using 2014 ozone precursor emissions",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"pre-industrial climatological SSTs and forcing, but with 2014 ozone precursor emissions",
-                "additional_allowed_model_components":"",
-                "required_model_components":[
-                    "AGCM",
+                "additional_allowed_model_components":[
                     "AER",
                     "CHEM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "description":"Concentration-driven future scenario simulation, biogeochemically-coupled. This simulation should optionally be extended to year 2300",
+                "end_year":"2100 or 2300",
+                "experiment":"biogeochemically-coupled version of the RCP8.5 based on SSP5",
+                "experiment_id":"ssp585-bgc",
+                "min_number_yrs_per_sim":"85",
+                "parent_activity_id":[
+                    "C4MIP"
+                ],
+                "parent_experiment_id":[
+                    "hist-bgc"
+                ],
+                "required_model_components":[
+                    "AOGCM",
+                    "BGC"
+                ],
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "histSST-piNTCF":{
+            "ssp585-withism":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "ISMIP6"
                 ],
-                "description":"Historical WMGHG concentrations and halocarbons emissions, 1850 NTCF emissions, prescribed SSTs",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical SSTs and historical forcing, but with pre-industrial NTCF emissions",
                 "additional_allowed_model_components":[
+                    "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"Future climate from ScenarioMIP SSP5-8.5 simulation that includes interactive ice sheets. Set up follows the standard SSP5-8.5 experiment",
+                "end_year":"2300",
+                "experiment":"ssp585 with interactive ice sheet",
+                "experiment_id":"ssp585-withism",
+                "min_number_yrs_per_sim":"85",
+                "parent_activity_id":[
+                    "ISMIP6"
+                ],
+                "parent_experiment_id":[
+                    "historical-withism"
+                ],
                 "required_model_components":[
-                    "AGCM",
-                    "AER"
+                    "AOGCM",
+                    "ISM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "land-crop-noFert":{
+            "sspxy":{
                 "activity_id":[
-                    "LUMIP"
+                    "ScenarioMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Future scenario with low radiative forcing by the end of century. Following a forcing pathway below RCP2.6. Specific SSP and 2100 forcing level to be finalized with IAM groups within next few months. Concentration-driven",
+                "end_year":"2100",
+                "experiment":"low-end scenario informing 1.5C goal",
+                "experiment_id":"sspxy",
+                "min_number_yrs_per_sim":"86",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
                 ],
-                "description":"Same as land-hist but with fertilization rates and area held at 1850 levels/distribution",
-                "start_year":"1850 or 1700",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical land-only with no fertilizer",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "LAND"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "histSST-piCH4":{
+            "volc-cluster-21C":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "VolMIP"
+                ],
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Parallel experiment to volc-cluster-ctrl, using restart files from the end of the historical simulation instead of from piControl, and boundary conditions from the 21st century SSP2-4.5 scenario experiment of ScenarioMIP",
+                "end_year":"2100",
+                "experiment":"volcanic cluster experiment under 21st century SSP2-4.5 scenario",
+                "experiment_id":"volc-cluster-21C",
+                "min_number_yrs_per_sim":"85",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "historical"
                 ],
-                "description":"Historical (non-CH4) WMGHG concentrations and NTCF emissions, 1850 CH4 concentrations",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"historical SSTs and historical forcing, but with pre-industrial methane concentrations",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "AGCM",
-                    "AER",
-                    "CHEM"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"2015",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "aqua-p4K-lwoff":{
+            "volc-cluster-ctrl":{
                 "activity_id":[
-                    "CFMIP"
+                    "VolMIP"
                 ],
-                "description":"As aqua-p4K experiment, but with cloud-radiative effects switched off in the LW radiation code",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"aquaplanet with uniform 4K SST increase and with longwave cloud radiative effects off",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Early 19th century cluster of strong tropical volcanic eruptions, including the 1809 event of unknown location, the 1815 Tambora and 1835 Cosigueina eruptions. Experiment initialized from PiControl",
+                "end_year":"",
+                "experiment":"19th century volcanic cluster initialized from PiControl",
+                "experiment_id":"volc-cluster-ctrl",
+                "min_number_yrs_per_sim":"50",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "dcppA-historical":{
+            "volc-cluster-mill":{
                 "activity_id":[
-                    "DCPP"
+                    "VolMIP"
                 ],
-                "description":"Historical and future uninitialized simulations to assess the impact of initialization",
-                "start_year":"1850",
-                "end_year":"2030",
-                "sub_experiment":"initialized near end of year YYYY",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"climate simulation initialized from control with forcing prescribed from the historical period and future scenario as in A1",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
-                "required_model_components":[
-                    "AOGCM"
+                "description":"Parallel experiment to volc-cluster-ctrl but with initial conditions taken from last millennium simulation to account for the effects of a more realistic history of past natural forcing. All forcings except volcanic kept constant from year AD 1790 on",
+                "end_year":"1858",
+                "experiment":"19th century volcanic cluster initialized from past1000",
+                "experiment_id":"volc-cluster-mill",
+                "min_number_yrs_per_sim":"69",
+                "parent_activity_id":[
+                    "PMIP"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"170",
-                "sub_experiment_id":"of form: \"sYYYY\""
-            },
-            "land-hist-wfdei":{
-                "activity_id":[
-                    "LS3MIP"
+                "parent_experiment_id":[
+                    "past1000"
                 ],
-                "description":"Land only simulations",
-                "start_year":"1850",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"as land-hist with WFDEI forcings",
-                "additional_allowed_model_components":"",
                 "required_model_components":[
-                    "LAND"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"165",
-                "sub_experiment_id":"none"
+                "start_year":"1790",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "G7SST1-cirrus":{
+            "volc-long-eq":{
                 "activity_id":[
-                    "GeoMIP"
+                    "VolMIP"
                 ],
-                "description":"Time slice at 2020 (ScenarioMIP Tier 1 high forcing scenario and cirrus thinning according to G7cirrus)",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2020 of SSP5-8.5 and cirrus thinning",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Idealized equatorial eruption corresponding to an initial emission of 56.2 Tg of SO2. The eruption magnitude corresponds to recent estimates for the 1815 Tambora eruption (Sigl et al., 2015), the largest historical tropical eruption, which was linked to the so-called \"year without a summer\" in 1816. Experiment initialized from PiControl",
+                "end_year":"",
+                "experiment":"idealized equatorial volcanic eruption emitting 56.2 Tg SO2",
+                "experiment_id":"volc-long-eq",
+                "min_number_yrs_per_sim":"20",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"10",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "piClim-histaer03":{
+            "volc-long-hlN":{
                 "activity_id":[
-                    "RFMIP"
+                    "VolMIP"
                 ],
-                "description":"Time-varying forcing by aerosols. SST and sea ice fixed at preindustrial control. Interactive vegetation",
-                "start_year":"1850",
-                "end_year":"2100",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"transient effective radiative forcing by aerosols",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Idealized Northern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2. Experiment initialized from PiControl",
+                "end_year":"",
+                "experiment":"idealized Northern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2",
+                "experiment_id":"volc-long-hlN",
+                "min_number_yrs_per_sim":"20",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"2",
-                "min_number_yrs_per_sim":"251",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"2"
             },
-            "piClim-4xCO2":{
+            "volc-long-hlS":{
                 "activity_id":[
-                    "RFMIP"
+                    "VolMIP"
                 ],
-                "description":"As in RFMIP-ERF-PI-Cntrl but with 4xCO2",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"effective radiative forcing by 4xCO2",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"Idealized Southern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2. Experiment initialized from PiControl",
+                "end_year":"",
+                "experiment":"Idealized Southern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2",
+                "experiment_id":"volc-long-hlS",
+                "min_number_yrs_per_sim":"20",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "hist-1950HC":{
+            "volc-pinatubo-full":{
                 "activity_id":[
-                    "AerChemMIP"
+                    "VolMIP"
                 ],
-                "description":"Historical WMGHG concentrations and NTCF emissions, 1950 halocarbon concentrations, start 1950",
-                "start_year":"1950",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "historical"
+                "additional_allowed_model_components":[
+                    "AER",
+                    "CHEM",
+                    "BGC"
                 ],
+                "description":"1991 Pinatubo forcing as used in the CMIP6 historical simulations. Requires special diagnostics of radiative and latent heating rates. A large number of ensemble members is required to address internal atmospheric variability",
+                "end_year":"",
+                "experiment":"Pinatubo experiment",
+                "experiment_id":"volc-pinatubo-full",
+                "min_number_yrs_per_sim":"3",
                 "parent_activity_id":[
                     "CMIP"
                 ],
-                "experiment":"historical forcing, but with1950s halocarbon concentrations; initialized in 1950",
-                "additional_allowed_model_components":[
-                    "BGC"
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AOGCM",
-                    "AER",
-                    "CHEM"
-                ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"65",
-                "sub_experiment_id":"none"
-            },
-            "1pctCO2-4xext":{
-                "activity_id":[
-                    "ISMIP6"
+                    "AOGCM"
                 ],
-                "description":"branched from 1pctCO2 run at year 140 and run with CO2 fixed at 4x pre-industrial concentration",
                 "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":[
-                    "1pctCO2"
+                "sub_experiment_id":[
+                    "none"
                 ],
-                "parent_activity_id":[
-                    "CMIP"
+                "tier":"1"
+            },
+            "volc-pinatubo-slab":{
+                "activity_id":[
+                    "VolMIP"
                 ],
-                "experiment":"extension from year 140 of 1pctCO2 with 4xCO2",
                 "additional_allowed_model_components":[
                     "AER",
                     "CHEM",
                     "BGC"
                 ],
+                "description":"As volc-pinatubo-full, but with a slab ocean",
+                "end_year":"",
+                "experiment":"Pinatubo experiment with slab ocean",
+                "experiment_id":"volc-pinatubo-slab",
+                "min_number_yrs_per_sim":"3",
+                "parent_activity_id":[
+                    "VolMIP"
+                ],
+                "parent_experiment_id":[
+                    "control-slab"
+                ],
                 "required_model_components":[
-                    "AOGCM"
+                    "AGCM",
+                    "SLAB"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"210",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"3"
             },
-            "piClim-aerO3":{
+            "volc-pinatubo-strat":{
                 "activity_id":[
-                    "RFMIP"
+                    "VolMIP"
                 ],
-                "description":"As in RFMIP-ERF-PI-Cntrl but with with present-day aerosols and ozone",
-                "start_year":"",
-                "end_year":"",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"effective radiative forcing by present-day aerosols and ozone",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"As volc-pinatubo-full, but with prescribed perturbation to the total (LW+SW) radiative heating rates",
+                "end_year":"",
+                "experiment":"Pinatubo experiment with partial radiative forcing, includes only stratospheric warming",
+                "experiment_id":"volc-pinatubo-strat",
+                "min_number_yrs_per_sim":"3",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"30",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             },
-            "amip":{
+            "volc-pinatubo-surf":{
                 "activity_id":[
-                    "CMIP"
+                    "VolMIP"
                 ],
-                "description":"DECK: AMIP",
-                "start_year":"1979",
-                "end_year":"2014",
-                "sub_experiment":"none",
-                "parent_experiment_id":"",
-                "parent_activity_id":"",
-                "experiment":"AMIP",
                 "additional_allowed_model_components":[
                     "AER",
-                    "CHEM"
+                    "CHEM",
+                    "BGC"
+                ],
+                "description":"As volc-pinatubo-full, but with prescribed perturbation to the shortwave flux to mimic the attenuation of solar radiation by volcanic aerosols",
+                "end_year":"",
+                "experiment":"Pinatubo experiment with partial radiative forcing, solar radiation scattering only",
+                "experiment_id":"volc-pinatubo-surf",
+                "min_number_yrs_per_sim":"3",
+                "parent_activity_id":[
+                    "CMIP"
+                ],
+                "parent_experiment_id":[
+                    "piControl"
                 ],
                 "required_model_components":[
-                    "AGCM"
+                    "AOGCM"
                 ],
-                "tier":"1",
-                "min_number_yrs_per_sim":"36",
-                "sub_experiment_id":"none"
+                "start_year":"",
+                "sub_experiment_id":[
+                    "none"
+                ],
+                "tier":"1"
             }
         },
         "product":[
-            "output"
+            "model-output"
         ],
         "tracking_id":[
             "hdl:21.14100/.*"
@@ -6340,12 +8156,26 @@
         "further_info_url":[
             "http://furtherinfo.es-doc.org/[[:alpha:]]\\{1,\\}"
         ],
+        "realization_index":[
+            "^\\[\\{0,\\}[[:digit:]]\\{1,\\}\\]\\{0,\\}$"
+        ],
         "variant_label":[
-            "^r[[:digit:]]\\{1,\\}i[[:digit:]]\\{1,\\}p[[:digit:]]\\{1,\\}f[[:digit:]]\\{1,\\}$"
+            "r[[:digit:]]\\{1,\\}i[[:digit:]]\\{1,\\}p[[:digit:]]\\{1,\\}f[[:digit:]]\\{1,\\}$"
+        ],
+        "data_specs_version":[
+            "^[[:digit:]]\\{2,2\\}\\.[[:digit:]]\\{2,2\\}\\.[[:digit:]]\\{2,2\\}$"
+        ],
+        "Conventions":[
+            "^CF-1.7 CMIP-6.0\\( UGRID-1.0\\)\\{0,\\}$"
+        ],
+        "forcing_index":[
+            "^\\[\\{0,\\}[[:digit:]]\\{1,\\}\\]\\{0,\\}$"
+        ],
+        "initialization_index":[
+            "^\\[\\{0,\\}[[:digit:]]\\{1,\\}\\]\\{0,\\}$"
         ],
-        "sub_experiment_id":[
-            "^s[[:digit:]]\\{4,4\\}$",
-            "none"
+        "physics_index":[
+            "^\\[\\{0,\\}[[:digit:]]\\{1,\\}\\]\\{0,\\}$"
         ]
     }
 }
\ No newline at end of file
diff --git a/TestTables/CMIP6_CV_minimal.json b/TestTables/CMIP6_CV_minimal.json
deleted file mode 100644
index 0dd28bb..0000000
--- a/TestTables/CMIP6_CV_minimal.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-"CV": {
-    "institution_ids": { "BNU":"" },
-    "source_ids": { "CESM1-CAM5": "" },
-    "experiment_ids": { "piControl-withism": { } },
-    "grid_labels": { "gr":     { "grid_resolution":"5 km" } }
-   }
-}
diff --git a/TestTables/CMIP6_em1hr.json b/TestTables/CMIP6_E1hr.json
similarity index 89%
rename from TestTables/CMIP6_em1hr.json
rename to TestTables/CMIP6_E1hr.json
index 51e4129..e5baa94 100644
--- a/TestTables/CMIP6_em1hr.json
+++ b/TestTables/CMIP6_E1hr.json
@@ -1,24 +1,24 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table em1hr", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table E1hr", 
         "realm": "atmos", 
         "frequency": "1hr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "0.017361", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "pr": {
             "modeling_realm": "atmos", 
             "standard_name": "precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Precipitation", 
             "comment": "includes both liquid and solid phases", 
@@ -35,7 +35,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "convective_precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Convective Precipitation", 
             "comment": "Convective precipitation at surface; includes both liquid and solid phases.", 
@@ -167,6 +167,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "utendnogw27": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", 
+            "units": "m s-2", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "u-tendency nonorographic gravity wave drag", 
+            "comment": "Tendency of the eastward wind by parameterized nonorographic gravity waves.", 
+            "dimensions": "longitude latitude plev27 time1", 
+            "out_name": "utendnogw27", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "va": {
             "modeling_realm": "atmos", 
             "standard_name": "northward_wind", 
@@ -201,6 +218,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "vtendnogw27": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_northward_wind_due_to_nonorographic_gravity_wave_drag", 
+            "units": "m s-2", 
+            "cell_methods": "time: point", 
+            "cell_measures": "area: areacella", 
+            "long_name": "v-tendency nonorographic gravity wave drag", 
+            "comment": "Tendency of the northward wind by parameterized nonorographic gravity waves.  (Note that CF name tables only have a general northward tendency for all gravity waves, and we need it separated by type.)", 
+            "dimensions": "longitude latitude plev27 time1", 
+            "out_name": "vtendnogw27", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "wap": {
             "modeling_realm": "atmos", 
             "standard_name": "lagrangian_tendency_of_air_pressure", 
@@ -235,40 +269,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "xnonoroggwdparam27": {
-            "modeling_realm": "atmos", 
-            "standard_name": "", 
-            "units": "m s-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "x_gravity_wave_drag_param", 
-            "comment": "Parameterised x-component of non-orographic gravity wave drag", 
-            "dimensions": "longitude latitude plev27 time1", 
-            "out_name": "xnonoroggwdparam27", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ynonoroggwdparam27": {
-            "modeling_realm": "atmos", 
-            "standard_name": "", 
-            "units": "m s-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "y_gravity_wave_drag_param", 
-            "comment": "Parameterised y- component of non-orogrpahic  gravity wave drag", 
-            "dimensions": "longitude latitude plev27 time1", 
-            "out_name": "ynonoroggwdparam27", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "zg27": {
             "modeling_realm": "atmos", 
             "standard_name": "geopotential_height", 
@@ -279,7 +279,7 @@
             "comment": "", 
             "dimensions": "longitude latitude plev27 time1", 
             "out_name": "zg27", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
diff --git a/TestTables/CMIP6_em1hrclimmon.json b/TestTables/CMIP6_E1hrClimMon.json
similarity index 95%
rename from TestTables/CMIP6_em1hrclimmon.json
rename to TestTables/CMIP6_E1hrClimMon.json
index 5784577..a1b1df5 100644
--- a/TestTables/CMIP6_em1hrclimmon.json
+++ b/TestTables/CMIP6_E1hrClimMon.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table em1hrclimmon", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table E1hrClimMon", 
         "realm": "atmos", 
         "frequency": "1hrClimMon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "0.017361", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "rlut": {
diff --git a/TestTables/CMIP6_E3hr.json b/TestTables/CMIP6_E3hr.json
new file mode 100644
index 0000000..f6eade4
--- /dev/null
+++ b/TestTables/CMIP6_E3hr.json
@@ -0,0 +1,341 @@
+{
+    "Header": {
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table E3hr", 
+        "realm": "land", 
+        "frequency": "3hr", 
+        "cmor_version": "3.2", 
+        "table_date": "10 April 2017", 
+        "missing_value": "1e20", 
+        "product": "model-output", 
+        "approx_interval": "0.125000", 
+        "generic_levels": "alevel", 
+        "mip_era": "CMIP6", 
+        "Conventions": "CF-1.7 CMIP-6.0"
+    }, 
+    "variable_entry": {
+        "clivi": {
+            "modeling_realm": "atmos", 
+            "standard_name": "atmosphere_cloud_ice_content", 
+            "units": "kg m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Ice Water Path", 
+            "comment": "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). Includes precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "clivi", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "clwvi": {
+            "modeling_realm": "atmos", 
+            "standard_name": "atmosphere_cloud_condensed_water_content", 
+            "units": "kg m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Condensed Water Path", 
+            "comment": "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). Includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "clwvi", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "gpp": {
+            "modeling_realm": "land", 
+            "standard_name": "gross_primary_productivity_of_carbon", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: mean where land time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Carbon Mass Flux out of Atmosphere due to Gross Primary Production on Land", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "gpp", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "prcsh": {
+            "modeling_realm": "atmos", 
+            "standard_name": "", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "shallow_conv_precipitation_flux", 
+            "comment": "Convection precipitation from shallow convection", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "prcsh", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "prra": {
+            "modeling_realm": "atmos", 
+            "standard_name": "rainfall_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Rainfall Flux where Ice Free Ocean over Sea", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "prra", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "prrc": {
+            "modeling_realm": "atmos", 
+            "standard_name": "convective_rainfall_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Convective Rainfall rate", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "prrc", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "prsnc": {
+            "modeling_realm": "atmos", 
+            "standard_name": "convective_snowfall_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Convective Snowfall Flux", 
+            "comment": "convective precipitation of all forms of water in the solid phase.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "prsnc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "prw": {
+            "modeling_realm": "atmos", 
+            "standard_name": "atmosphere_water_vapor_content", 
+            "units": "kg m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Water Vapor Path", 
+            "comment": "vertically integrated through the atmospheric column", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "prw", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "psl": {
+            "modeling_realm": "atmos", 
+            "standard_name": "air_pressure_at_sea_level", 
+            "units": "Pa", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Sea Level Pressure", 
+            "comment": "Sea Level Pressure", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "psl", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "ra": {
+            "modeling_realm": "land", 
+            "standard_name": "plant_respiration_carbon_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: mean where land time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Carbon Mass Flux into Atmosphere due to Autotrophic (Plant) Respiration on Land", 
+            "comment": "Carbon mass flux per unit area into atmosphere due to autotrophic respiration on land (respiration by producers) [see rh for heterotrophic production]", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "ra", 
+            "type": "real", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rh": {
+            "modeling_realm": "land", 
+            "standard_name": "heterotrophic_respiration_carbon_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: mean where land time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration on Land", 
+            "comment": "Carbon mass flux per unit area into atmosphere due to heterotrophic respiration on land (respiration by consumers)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "rh", 
+            "type": "real", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rlut": {
+            "modeling_realm": "atmos", 
+            "standard_name": "toa_outgoing_longwave_flux", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "TOA Outgoing Longwave Radiatio", 
+            "comment": "at the top of the atmosphere (to be compared with satellite measurements)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "rlut", 
+            "type": "", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rlutcs": {
+            "modeling_realm": "atmos", 
+            "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "TOA Outgoing Clear-sky Longwave Radiation", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "rlutcs", 
+            "type": "", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rsdt": {
+            "modeling_realm": "atmos", 
+            "standard_name": "toa_incoming_shortwave_flux", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "TOA Incident Shortwave Radiation", 
+            "comment": "Shortwave radiation incident at the top of the atmosphere", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "rsdt", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rsut": {
+            "modeling_realm": "atmos", 
+            "standard_name": "toa_outgoing_shortwave_flux", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Top-of-Atmosphere Outgoing Shortwave Radiation", 
+            "comment": "at the top of the atmosphere", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "rsut", 
+            "type": "", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rsutcs": {
+            "modeling_realm": "atmos", 
+            "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", 
+            "comment": "Calculated in the absence of clouds.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "rsutcs", 
+            "type": "", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "sfcWind": {
+            "modeling_realm": "atmos", 
+            "standard_name": "wind_speed", 
+            "units": "m s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Near-Surface Wind Speed", 
+            "comment": "near-surface (usually, 10 meters) wind speed.", 
+            "dimensions": "longitude latitude height10m time", 
+            "out_name": "sfcWind", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "uas": {
+            "modeling_realm": "atmos", 
+            "standard_name": "eastward_wind", 
+            "units": "m s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Eastward Near-Surface Wind", 
+            "comment": "Eastward component of the near-surface (usually, 10 meters)  wind", 
+            "dimensions": "longitude latitude height10m time", 
+            "out_name": "uas", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "vas": {
+            "modeling_realm": "atmos", 
+            "standard_name": "northward_wind", 
+            "units": "m s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Northward Near-Surface Wind", 
+            "comment": "Northward component of the near surface wind", 
+            "dimensions": "longitude latitude height10m time", 
+            "out_name": "vas", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }
+    }
+}
diff --git a/TestTables/CMIP6_em3hr.json b/TestTables/CMIP6_E3hrPt.json
similarity index 64%
rename from TestTables/CMIP6_em3hr.json
rename to TestTables/CMIP6_E3hrPt.json
index b691e16..d25daf1 100644
--- a/TestTables/CMIP6_em3hr.json
+++ b/TestTables/CMIP6_E3hrPt.json
@@ -1,28 +1,28 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table em3hr", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table E3hrPt", 
         "realm": "atmos", 
         "frequency": "3hr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "0.125000", 
-        "generic_levels": "", 
+        "generic_levels": "alevel", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "aerasymbnd": {
             "modeling_realm": "atmos", 
             "standard_name": "band_aerosol_asymmetry_parameter", 
             "units": "1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Aerosol level asymmetry parameter for each band", 
             "comment": "", 
-            "dimensions": "longitude latitude alevel spectband time", 
+            "dimensions": "longitude latitude alevel spectband time1", 
             "out_name": "aerasymbnd", 
             "type": "", 
             "positive": "", 
@@ -35,11 +35,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_aerosol_optical_depth", 
             "units": "1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Aerosol level extinction optical depth for each band", 
             "comment": "", 
-            "dimensions": "longitude latitude alevel spectband time", 
+            "dimensions": "longitude latitude alevel spectband time1", 
             "out_name": "aeroptbnd", 
             "type": "", 
             "positive": "", 
@@ -52,11 +52,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_aerosol_single_scattering_albedo", 
             "units": "1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Aerosol level single-scattering albedo for each band", 
             "comment": "", 
-            "dimensions": "longitude latitude alevel spectband time", 
+            "dimensions": "longitude latitude alevel spectband time1", 
             "out_name": "aerssabnd", 
             "type": "", 
             "positive": "", 
@@ -69,11 +69,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_diffuse_albedo", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Diffuse surface albedo for each band", 
             "comment": "", 
-            "dimensions": "longitude latitude spectband time", 
+            "dimensions": "longitude latitude spectband time1", 
             "out_name": "albdiffbnd", 
             "type": "", 
             "positive": "", 
@@ -86,11 +86,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_direct_albedo", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Direct surface albedo for each band", 
             "comment": "", 
-            "dimensions": "longitude latitude spectband time", 
+            "dimensions": "longitude latitude spectband time1", 
             "out_name": "albdirbnd", 
             "type": "", 
             "positive": "", 
@@ -99,33 +99,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ch4": {
+        "cfadDbze94": {
             "modeling_realm": "atmos", 
-            "standard_name": "mole_fraction_of_methane_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid", 
+            "units": "1.0", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "CH4 volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "ch4", 
-            "type": "", 
+            "long_name": "CloudSat Radar Reflectivity", 
+            "comment": "CFAD (Cloud Frequency Altitude Diagrams) are frequency distributions of radar  reflectivity (or lidar scattering ratio) as a function of altitude. The variable cfadDbze94 is defined as the simulated relative frequency of occurrence of radar reflectivity in sampling volumes defined by altitude bins. The radar is observing at a frequency of 94GHz.", 
+            "dimensions": "longitude latitude alt40 dbze time1", 
+            "out_name": "cfadDbze94", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "clivi": {
+        "cfadLidarsr532": {
             "modeling_realm": "atmos", 
-            "standard_name": "atmosphere_mass_content_of_cloud_ice", 
-            "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid", 
+            "units": "1.0", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Ice Water Path", 
-            "comment": "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). Includes precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "clivi", 
+            "long_name": "CALIPSO Scattering Ratio", 
+            "comment": "CFAD (Cloud Frequency Altitude Diagrams) are frequency distributions of radar  reflectivity (or lidar scattering ratio) as a function of altitude. The variable cfadLidarsr532 is defined as the simulated relative frequency of lidar scattering ratio in sampling volumes defined by altitude bins. The lidar is observing at a wavelength of 532nm.", 
+            "dimensions": "longitude latitude alt40 scatratio time1", 
+            "out_name": "cfadLidarsr532", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -133,84 +133,84 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "clwvi": {
+        "ch4": {
             "modeling_realm": "atmos", 
-            "standard_name": "atmosphere_cloud_condensed_water_content", 
-            "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "mole_fraction_of_methane_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Condensed Water Path", 
-            "comment": "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). Includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "clwvi", 
-            "type": "real", 
+            "long_name": "CH4 volume mixing ratio", 
+            "comment": "", 
+            "dimensions": "longitude latitude alevel time1", 
+            "out_name": "ch4", 
+            "type": "", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "co2": {
+        "clcalipso": {
             "modeling_realm": "atmos", 
-            "standard_name": "mole_fraction_of_carbon_dioxide_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
+            "units": "%", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "CO2 volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "co2", 
-            "type": "", 
+            "long_name": "CALIPSO Cloud Fraction", 
+            "comment": "Percentage cloud cover at CALIPSO standard heights.", 
+            "dimensions": "longitude latitude alt40 time1", 
+            "out_name": "clcalipso", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "gpp": {
-            "modeling_realm": "land", 
-            "standard_name": "gross_primary_productivity_of_carbon", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "area: mean where land time: mean", 
+        "clcalipso2": {
+            "modeling_realm": "atmos", 
+            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
+            "units": "%", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Carbon Mass Flux out of Atmosphere due to Gross Primary Production on Land", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "gpp", 
+            "long_name": "CALIPSO Cloud Fraction Undetected by CloudSat", 
+            "comment": "Clouds detected by CALIPSO but below the detectability threshold of CloudSat", 
+            "dimensions": "longitude latitude alt40 time1", 
+            "out_name": "clcalipso2", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hus": {
+        "clhcalipso": {
             "modeling_realm": "atmos", 
-            "standard_name": "specific_humidity", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
+            "units": "%", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Specific Humidity", 
-            "comment": "", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "hus", 
-            "type": "", 
+            "long_name": "CALIPSO Percentage High Level Cloud", 
+            "comment": "Percentage cloud cover in layer centred on 220hPa", 
+            "dimensions": "longitude latitude time1", 
+            "out_name": "clhcalipso", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "huss": {
+        "clisccp": {
             "modeling_realm": "atmos", 
-            "standard_name": "specific_humidity", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
+            "units": "%", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Near-Surface Specific Humidity", 
-            "comment": "Near-surface (usually, 2 meter) specific humidity.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "huss", 
+            "long_name": "ISCCP Cloud Area Fraction", 
+            "comment": "Percentage cloud cover in optical depth categories.", 
+            "dimensions": "longitude latitude plev7c tau time1", 
+            "out_name": "clisccp", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -218,33 +218,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "n2o": {
+        "cllcalipso": {
             "modeling_realm": "atmos", 
-            "standard_name": "mole_fraction_of_nitrous_oxide_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
+            "units": "%", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "N2O volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "n2o", 
-            "type": "", 
+            "long_name": "CALIPSO Low Level Cloud Fraction", 
+            "comment": "Percentage cloud cover in layer centred on 840hPa", 
+            "dimensions": "longitude latitude time1", 
+            "out_name": "cllcalipso", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "pfull": {
+        "clmcalipso": {
             "modeling_realm": "atmos", 
-            "standard_name": "air_pressure", 
-            "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
+            "units": "%", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Pressure at Model Full-Levels", 
-            "comment": "Air pressure on model levels", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "pfull", 
+            "long_name": "CALIPSO Mid Level Cloud Fraction", 
+            "comment": "Percentage cloud cover in layer centred on 560hPa", 
+            "dimensions": "longitude latitude time1", 
+            "out_name": "clmcalipso", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -252,50 +252,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "phalf": {
+        "clmisr": {
             "modeling_realm": "atmos", 
-            "standard_name": "air_pressure", 
-            "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
+            "units": "%", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Pressure on Model Half-Levels", 
-            "comment": "Air pressure on model half-levels", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "phalf", 
-            "type": "real", 
+            "long_name": "Percentage Cloud Cover as Calculated by the MISR Simulator", 
+            "comment": "Cloud percentage in spectral bands and layers as observed by the Multi-angle Imaging SpectroRadiometer (MISR) instrument.", 
+            "dimensions": "longitude latitude alt16 tau time1", 
+            "out_name": "clmisr", 
+            "type": "", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "prcsh": {
+        "cltcalipso": {
             "modeling_realm": "atmos", 
-            "standard_name": "", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "cloud_area_fraction", 
+            "units": "%", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "shallow_conv_precipitation_flux", 
-            "comment": "Convection precipitation from shallow convection", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "prcsh", 
-            "type": "", 
+            "long_name": "CALIPSO Total Cloud Fraction", 
+            "comment": "", 
+            "dimensions": "longitude latitude time1", 
+            "out_name": "cltcalipso", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "prra": {
+        "co2": {
             "modeling_realm": "atmos", 
-            "standard_name": "rainfall_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "mole_fraction_of_carbon_dioxide_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Rainfall rate", 
+            "long_name": "CO2 volume mixing ratio", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "prra", 
+            "dimensions": "longitude latitude alevel time1", 
+            "out_name": "co2", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -303,16 +303,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "prrc": {
+        "hus": {
             "modeling_realm": "atmos", 
-            "standard_name": "convective_rainfall_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "specific_humidity", 
+            "units": "1.0", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Convective Rainfall rate", 
+            "long_name": "Specific Humidity", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "prrc", 
+            "dimensions": "longitude latitude alevel time1", 
+            "out_name": "hus", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -320,50 +320,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "prsnc": {
+        "hus7h": {
             "modeling_realm": "atmos", 
-            "standard_name": "convective_snowfall_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "specific_humidity", 
+            "units": "1.0", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Convective Snowfall Flux", 
-            "comment": "convective precipitation of all forms of water in the solid phase.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "prsnc", 
-            "type": "real", 
+            "long_name": "Specific Humidity", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev7h time1", 
+            "out_name": "hus7h", 
+            "type": "", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "prw": {
+        "jpdftaureicemodis": {
             "modeling_realm": "atmos", 
-            "standard_name": "atmosphere_water_vapor_content", 
-            "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
+            "units": "%", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Water Vapor Path", 
-            "comment": "vertically integrated through the atmospheric column", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "prw", 
-            "type": "real", 
+            "long_name": "MODIS Optical Thickness-Particle Size joint  distribution, ice", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev7c effectRadIc|tau time1", 
+            "out_name": "jpdftaureicemodis", 
+            "type": "", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ps": {
+        "jpdftaureliqmodis": {
             "modeling_realm": "atmos", 
-            "standard_name": "surface_air_pressure", 
-            "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
+            "units": "%", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Surface Air Pressure", 
-            "comment": "surface pressure (not mean sea-level pressure), 2-D field to calculate the 3-D pressure field from hybrid coordinates", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "ps", 
+            "long_name": "MODIS Optical Thickness-Particle Size joint  distribution, liquid", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev7c effectRadLi|tau time1", 
+            "out_name": "jpdftaureliqmodis", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -371,69 +371,69 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ra": {
-            "modeling_realm": "land", 
-            "standard_name": "plant_respiration_carbon_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "area: mean where land time: mean", 
+        "n2o": {
+            "modeling_realm": "atmos", 
+            "standard_name": "mole_fraction_of_nitrous_oxide_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Carbon Mass Flux into Atmosphere due to Autotrophic (Plant) Respiration on Land", 
-            "comment": "Carbon mass flux per unit area into atmosphere due to autotrophic respiration on land (respiration by producers) [see rh for heterotrophic production] ", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "ra", 
-            "type": "real", 
-            "positive": "up", 
+            "long_name": "N2O volume mixing ratio", 
+            "comment": "", 
+            "dimensions": "longitude latitude alevel time1", 
+            "out_name": "n2o", 
+            "type": "", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "rh": {
-            "modeling_realm": "land", 
-            "standard_name": "heterotrophic_respiration_carbon_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "area: mean where land time: mean", 
+        "o3": {
+            "modeling_realm": "atmos", 
+            "standard_name": "mole_fraction_of_ozone_in_air", 
+            "units": "mol mol-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Carbon Mass Flux into Atmosphere due to Heterotrophic Respiration on Land", 
-            "comment": "Carbon mass flux per unit area into atmosphere due to heterotrophic respiration on land (respiration by consumers)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "rh", 
-            "type": "real", 
-            "positive": "up", 
+            "long_name": "Ozone volume mixing ratio", 
+            "comment": "", 
+            "dimensions": "longitude latitude alevel time1", 
+            "out_name": "o3", 
+            "type": "", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "rlut": {
+        "parasolRefl": {
             "modeling_realm": "atmos", 
-            "standard_name": "toa_outgoing_longwave_flux", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "toa_bidirectional_reflectance", 
+            "units": "1.0", 
+            "cell_methods": "area: mean (global) time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "TOA Outgoing Longwave Radiatio", 
-            "comment": "at the top of the atmosphere (to be compared with satellite measurements)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "rlut", 
-            "type": "", 
-            "positive": "up", 
+            "long_name": "PARASOL Reflectance", 
+            "comment": "Simulated reflectance from PARASOL as seen at the top of the atmosphere for 5 solar zenith angles. Valid only over ocean and for one viewing direction (viewing zenith angle of 30 degrees and relative azimuth angle 320 degrees).", 
+            "dimensions": "longitude latitude sza5 time1", 
+            "out_name": "parasolRefl", 
+            "type": "real", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "rlutcs": {
+        "psl": {
             "modeling_realm": "atmos", 
-            "standard_name": "toa_outgoing_longwave_flux_assuming_clear_sky", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "air_pressure_at_sea_level", 
+            "units": "Pa", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "TOA Outgoing Clear-sky Longwave Radiation", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "rlutcs", 
-            "type": "", 
-            "positive": "up", 
+            "long_name": "Sea Level Pressure", 
+            "comment": "Sea Level Pressure", 
+            "dimensions": "longitude latitude time1", 
+            "out_name": "psl", 
+            "type": "real", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
@@ -443,11 +443,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "downwelling_shortwave_flux_assuming_clean_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Downwelling Clean-Clear-Sky Shortwave Radiation at each level", 
             "comment": "Calculated in the absence of aerosols and clouds. This requires a double-call in the radiation code with precisely the same meteorology.", 
-            "dimensions": "longitude latitude alevel time", 
+            "dimensions": "longitude latitude alevel time1", 
             "out_name": "rsdcc", 
             "type": "", 
             "positive": "", 
@@ -460,11 +460,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_downwelling_shortwave_flux_assuming_clean_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Downwelling Clean-Clear-Sky Shortwave Radiation at each level for each band", 
             "comment": "Calculated in the absence of aerosols and clouds. This requires a double-call in the radiation code with precisely the same meteorology.", 
-            "dimensions": "longitude latitude alevel spectband time", 
+            "dimensions": "longitude latitude alevel spectband time1", 
             "out_name": "rsdccbnd", 
             "type": "", 
             "positive": "", 
@@ -477,11 +477,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Downwelling Clear-Sky Shortwave Radiation", 
             "comment": "Downwelling clear-sky shortwave radiation (includes the fluxes at the surface and top-of-atmosphere)", 
-            "dimensions": "longitude latitude alevel time", 
+            "dimensions": "longitude latitude alevel time1", 
             "out_name": "rsdcs", 
             "type": "real", 
             "positive": "down", 
@@ -494,11 +494,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_downwelling_shortwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Downwelling Clear-Sky Shortwave Radiation at each level for each band", 
             "comment": "Calculated with aerosols but without clouds. This is a standard clear-sky calculation", 
-            "dimensions": "longitude latitude alevel spectband time", 
+            "dimensions": "longitude latitude alevel spectband time1", 
             "out_name": "rsdcsbnd", 
             "type": "", 
             "positive": "", 
@@ -511,11 +511,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air_assuming_clean_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Clean-Clear-Sky Shortwave Radiation", 
             "comment": "Calculated in the absence of aerosols and clouds.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time1", 
             "out_name": "rsdscc", 
             "type": "", 
             "positive": "", 
@@ -528,11 +528,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_surface_downwelling_shortwave_flux_in_air_assuming_clean_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Clean-Clear-Sky Shortwave Radiation for each band", 
             "comment": "Calculated in the absence of aerosols and clouds. This requires a double-call in the radiation code with precisely the same meteorology.", 
-            "dimensions": "longitude latitude spectband time", 
+            "dimensions": "longitude latitude spectband time1", 
             "out_name": "rsdsccbnd", 
             "type": "", 
             "positive": "", 
@@ -545,11 +545,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_surface_downwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Clear-Sky Shortwave Radiation for each band", 
             "comment": "Calculated with aerosols but without clouds. This is a standard clear-sky calculation", 
-            "dimensions": "longitude latitude spectband time", 
+            "dimensions": "longitude latitude spectband time1", 
             "out_name": "rsdscsbnd", 
             "type": "", 
             "positive": "", 
@@ -558,32 +558,15 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "rsdt": {
-            "modeling_realm": "atmos", 
-            "standard_name": "toa_incoming_shortwave_flux", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "TOA Incident Shortwave Radiation", 
-            "comment": "Shortwave radiation incident at the top of the atmosphere", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "rsdt", 
-            "type": "real", 
-            "positive": "down", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "rsucc": {
             "modeling_realm": "atmos", 
             "standard_name": "upwelling_shortwave_flux_assuming_clean_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Upwelling Clean-Clear-Sky Shortwave Radiation at each level", 
             "comment": "Calculated in the absence of aerosols and clouds. This requires a double-call in the radiation code with precisely the same meteorology.", 
-            "dimensions": "longitude latitude alevel time", 
+            "dimensions": "longitude latitude alevel time1", 
             "out_name": "rsucc", 
             "type": "", 
             "positive": "", 
@@ -596,11 +579,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_upwelling_shortwave_flux_assuming_clean_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Upwelling Clean-Clear-Sky Shortwave Radiation at each level for each band", 
             "comment": "Calculated in the absence of aerosols and clouds. This requires a double-call in the radiation code with precisely the same meteorology.", 
-            "dimensions": "longitude latitude alevel spectband time", 
+            "dimensions": "longitude latitude alevel spectband time1", 
             "out_name": "rsuccbnd", 
             "type": "", 
             "positive": "", 
@@ -613,11 +596,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Upwelling Clear-Sky Shortwave Radiation", 
             "comment": "Upwelling clear-sky shortwave radiation  (includes the fluxes at the surface and TOA)", 
-            "dimensions": "longitude latitude alevel time", 
+            "dimensions": "longitude latitude alevel time1", 
             "out_name": "rsucs", 
             "type": "real", 
             "positive": "up", 
@@ -630,11 +613,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_upwelling_shortwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Upwelling Clear-Sky Shortwave Radiation at each level for each band", 
             "comment": "Calculated with aerosols but without clouds. This is a standard clear-sky calculation", 
-            "dimensions": "longitude latitude alevel spectband time", 
+            "dimensions": "longitude latitude alevel spectband time1", 
             "out_name": "rsucsbnd", 
             "type": "", 
             "positive": "", 
@@ -647,11 +630,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clean_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upwelling Clean Clear-Sky Shortwave Radiation", 
             "comment": "Surface upwelling clean clear-sky shortwave radiation", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time1", 
             "out_name": "rsuscc", 
             "type": "", 
             "positive": "", 
@@ -664,11 +647,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_surface_upwelling_shortwave_flux_in_air_assuming_clean_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upwelling Clean-Clear-Sky Shortwave Radiation for each band", 
             "comment": "Calculated in the absence of aerosols and clouds. This requires a double-call in the radiation code with precisely the same meteorology.", 
-            "dimensions": "longitude latitude spectband time", 
+            "dimensions": "longitude latitude spectband time1", 
             "out_name": "rsusccbnd", 
             "type": "", 
             "positive": "", 
@@ -677,35 +660,35 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "rsuscsbnd": {
+        "rsuscs": {
             "modeling_realm": "atmos", 
-            "standard_name": "band_surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", 
+            "standard_name": "surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation for each band", 
-            "comment": "Calculated with aerosols but without clouds. This is a standard clear-sky calculation", 
-            "dimensions": "longitude latitude spectband time", 
-            "out_name": "rsuscsbnd", 
-            "type": "", 
-            "positive": "", 
+            "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation", 
+            "comment": "Surface upwelling clear-sky shortwave radiation", 
+            "dimensions": "longitude latitude time1", 
+            "out_name": "rsuscs", 
+            "type": "real", 
+            "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "rsut": {
+        "rsuscsbnd": {
             "modeling_realm": "atmos", 
-            "standard_name": "toa_outgoing_shortwave_flux", 
+            "standard_name": "band_surface_upwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Top-of-Atmosphere Outgoing Shortwave Radiation", 
-            "comment": "at the top of the atmosphere", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "rsut", 
+            "long_name": "Surface Upwelling Clear-Sky Shortwave Radiation for each band", 
+            "comment": "Calculated with aerosols but without clouds. This is a standard clear-sky calculation", 
+            "dimensions": "longitude latitude spectband time1", 
+            "out_name": "rsuscsbnd", 
             "type": "", 
-            "positive": "up", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
@@ -715,11 +698,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_shortwave_flux_assuming_clean_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Clean-Clear-Sky Shortwave Radiation", 
             "comment": "Calculated in the absence of aerosols and clouds.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time1", 
             "out_name": "rsutcc", 
             "type": "", 
             "positive": "", 
@@ -732,11 +715,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "band_toa_outgoing_shortwave_flux_assuming_clean_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Clean-Clear-Sky Shortwave Radiation for each band", 
             "comment": "Calculated in the absence of aerosols and clouds. This requires a double-call in the radiation code with precisely the same meteorology.", 
-            "dimensions": "longitude latitude spectband time", 
+            "dimensions": "longitude latitude spectband time1", 
             "out_name": "rsutccbnd", 
             "type": "", 
             "positive": "", 
@@ -745,32 +728,15 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "rsutcs": {
-            "modeling_realm": "atmos", 
-            "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", 
-            "comment": "Calculated in the absence of clouds.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "rsutcs", 
-            "type": "", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "rsutcsbnd": {
             "modeling_realm": "atmos", 
             "standard_name": "band_toa_outgoing_shortwave_flux_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation for each band", 
             "comment": "Calculated with aerosols but without clouds. This is a standard clear-sky calculation", 
-            "dimensions": "longitude latitude spectband time", 
+            "dimensions": "longitude latitude spectband time1", 
             "out_name": "rsutcsbnd", 
             "type": "", 
             "positive": "", 
@@ -779,32 +745,15 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "sfcWind": {
-            "modeling_realm": "atmos", 
-            "standard_name": "wind_speed", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Daily-Mean Near-Surface Wind Speed", 
-            "comment": "near-surface (usually, 10 meters) wind speed.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "sfcWind", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "solbnd": {
             "modeling_realm": "atmos", 
             "standard_name": "band_solar_insolation", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Top-of-Atmosphere Solar Insolation for each band", 
             "comment": "", 
-            "dimensions": "longitude latitude spectband time", 
+            "dimensions": "longitude latitude spectband time1", 
             "out_name": "solbnd", 
             "type": "", 
             "positive": "", 
@@ -817,11 +766,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "solar_zenith_angle", 
             "units": "degree", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Solar Zenith Angle", 
             "comment": "The angle between the line of sight to the sun and the local vertical", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time1", 
             "out_name": "sza", 
             "type": "", 
             "positive": "", 
@@ -830,16 +779,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ta": {
+        "ta7h": {
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Air Temperature", 
             "comment": "Air Temperature", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "ta", 
+            "dimensions": "longitude latitude plev7h time1", 
+            "out_name": "ta7h", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -847,33 +796,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tas": {
+        "ts": {
             "modeling_realm": "atmos", 
-            "standard_name": "air_temperature", 
+            "standard_name": "surface_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Near-Surface Air Temperature", 
-            "comment": "near-surface (usually, 2 meter) air temperature", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "tas", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tro3": {
-            "modeling_realm": "atmos atmosChem", 
-            "standard_name": "mole_fraction_of_ozone_in_air", 
-            "units": "1e-09", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Mole Fraction of O3", 
-            "comment": "Mole fraction of ozone (O3)", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "tro3", 
+            "long_name": "Surface Temperature", 
+            "comment": "Temperature of the lower boundary of the atmosphere", 
+            "dimensions": "longitude latitude time1", 
+            "out_name": "ts", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -881,67 +813,67 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ts": {
+        "ua7h": {
             "modeling_realm": "atmos", 
-            "standard_name": "surface_temperature", 
-            "units": "K", 
-            "cell_methods": "time: mean", 
+            "standard_name": "eastward_wind", 
+            "units": "m s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Surface Temperature", 
-            "comment": "Temperature of the lower boundary of the atmosphere", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "ts", 
-            "type": "real", 
+            "long_name": "Eastward Wind", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev7h time1", 
+            "out_name": "ua7h", 
+            "type": "", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "uas": {
+        "ua850": {
             "modeling_realm": "atmos", 
             "standard_name": "eastward_wind", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Eastward Near-Surface Wind", 
-            "comment": "Eastward component of the near-surface (usually, 10 meters)  wind", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "uas", 
-            "type": "real", 
+            "long_name": "Eastward Wind", 
+            "comment": "", 
+            "dimensions": "longitude latitude time1 p850", 
+            "out_name": "ua850", 
+            "type": "", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "vas": {
+        "va7h": {
             "modeling_realm": "atmos", 
             "standard_name": "northward_wind", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Northward Near-Surface Wind", 
-            "comment": "Northward component of the near surface wind", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "vas", 
-            "type": "real", 
+            "long_name": "Northward Wind", 
+            "comment": "", 
+            "dimensions": "longitude latitude plev7h time1", 
+            "out_name": "va7h", 
+            "type": "", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zfull": {
+        "va850": {
             "modeling_realm": "atmos", 
-            "standard_name": "height_above_reference_ellipsoid", 
-            "units": "m", 
-            "cell_methods": "time: mean", 
+            "standard_name": "northward_wind", 
+            "units": "m s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Altitude of Model Full-Levels", 
+            "long_name": "Northward Wind", 
             "comment": "", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "zfull", 
+            "dimensions": "longitude latitude time1 p850", 
+            "out_name": "va850", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -949,17 +881,17 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zhalf": {
+        "wap7h": {
             "modeling_realm": "atmos", 
-            "standard_name": "height_above_reference_ellipsoid", 
-            "units": "m", 
-            "cell_methods": "time: mean", 
+            "standard_name": "lagrangian_tendency_of_air_pressure", 
+            "units": "Pa s-1", 
+            "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Altitude of Model Half-Levels", 
-            "comment": "", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "zhalf", 
-            "type": "", 
+            "long_name": "omega (=dp/dt)", 
+            "comment": "Omega (vertical velocity in pressure coordinates, positive downwards)", 
+            "dimensions": "longitude latitude plev7h time1", 
+            "out_name": "wap7h", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
diff --git a/TestTables/CMIP6_E6hrZ.json b/TestTables/CMIP6_E6hrZ.json
new file mode 100644
index 0000000..0a33492
--- /dev/null
+++ b/TestTables/CMIP6_E6hrZ.json
@@ -0,0 +1,52 @@
+{
+    "Header": {
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table E6hrZ", 
+        "realm": "atmos", 
+        "frequency": "6hr", 
+        "cmor_version": "3.2", 
+        "table_date": "10 April 2017", 
+        "missing_value": "1e20", 
+        "product": "model-output", 
+        "approx_interval": "0.250000", 
+        "generic_levels": "alevel", 
+        "mip_era": "CMIP6", 
+        "Conventions": "CF-1.7 CMIP-6.0"
+    }, 
+    "variable_entry": {
+        "zmlwaero": {
+            "modeling_realm": "atmos", 
+            "standard_name": "longwave_heating_rate_due_to_volcanic_aerosols", 
+            "units": "K s-1", 
+            "cell_methods": "longitude: mean time: point", 
+            "cell_measures": "", 
+            "long_name": "Zonal mean longwave heating rate due to volcanic aerosols", 
+            "comment": "longwave heating rate due to volcanic aerosols to be diagnosed through double radiation call, zonal average values required", 
+            "dimensions": "latitude alevel time1", 
+            "out_name": "zmlwaero", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "zmswaero": {
+            "modeling_realm": "atmos", 
+            "standard_name": "shortwave_heating_rate_due_to_volcanic_aerosols", 
+            "units": "K s-1", 
+            "cell_methods": "longitude: mean time: point", 
+            "cell_measures": "", 
+            "long_name": "Zonal mean shortwave heating rate due to volcanic aerosols", 
+            "comment": "shortwave heating rate due to volcanic aerosols to be diagnosed through double radiation call, zonal average values required", 
+            "dimensions": "latitude alevel time1", 
+            "out_name": "zmswaero", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }
+    }
+}
diff --git a/TestTables/CMIP6_emDay.json b/TestTables/CMIP6_Eday.json
similarity index 81%
rename from TestTables/CMIP6_emDay.json
rename to TestTables/CMIP6_Eday.json
index cc2e5fa..76e9191 100644
--- a/TestTables/CMIP6_emDay.json
+++ b/TestTables/CMIP6_Eday.json
@@ -1,24 +1,24 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table emDay", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table Eday", 
         "realm": "aerosol", 
         "frequency": "day", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "1.00000", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "agesno": {
             "modeling_realm": "landIce land", 
             "standard_name": "age_of_surface_snow", 
             "units": "day", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow Age", 
             "comment": "Age of Snow (when computing the time-mean here, the time samples, weighted by the mass of snow on the land portion of the grid cell, are accumulated and then divided by the sum of the weights.  Reported as missing data in regions free of snow on land.", 
@@ -32,10 +32,10 @@
             "ok_max_mean_abs": ""
         }, 
         "albc": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "canopy_albedo", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Canopy Albedo", 
             "comment": "", 
@@ -50,12 +50,12 @@
         }, 
         "albs": {
             "modeling_realm": "aerosol", 
-            "standard_name": "planetary_albedo", 
+            "standard_name": "surface_albedo", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "planetary albedo", 
-            "comment": "", 
+            "comment": "Grid cell average albedo for all wavelengths.", 
             "dimensions": "longitude latitude time", 
             "out_name": "albs", 
             "type": "float", 
@@ -66,10 +66,10 @@
             "ok_max_mean_abs": ""
         }, 
         "albsn": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "snow_and_ice_albedo", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow Albedo", 
             "comment": "Albedo of the snow-covered surface, averaged over the grid cell.", 
@@ -84,12 +84,12 @@
         }, 
         "aod550volso4": {
             "modeling_realm": "atmos", 
-            "standard_name": "aerosol_optical_depth_due_to_stratospheric_volcanic_aerosols_", 
+            "standard_name": "aerosol_optical_depth_due_to_stratospheric_volcanic_aerosols", 
             "units": "1e-09", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Aerosol optical depth at 550 nm due to stratospheric volcanic aerosols ", 
-            "comment": "aerosol optical depth at 550 nm due to stratospheric volcanic aerosols ", 
+            "long_name": "Aerosol optical depth at 550 nm due to stratospheric volcanic aerosols", 
+            "comment": "aerosol optical depth at 550 nm due to stratospheric volcanic aerosols", 
             "dimensions": "longitude latitude time", 
             "out_name": "aod550volso4", 
             "type": "", 
@@ -100,10 +100,10 @@
             "ok_max_mean_abs": ""
         }, 
         "ares": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "aerodynamic_resistance", 
             "units": "s m-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Aerodynamic resistance", 
             "comment": "", 
@@ -120,7 +120,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "number_concentration_of_convective_cloud_liquid_water_particles_in_air_at_liquid_water_cloud_top", 
             "units": "m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Cloud Droplet Number Concentration of Convective Cloud Tops", 
             "comment": "Droplets are liquid only.  Report concentration 'as seen from space' over convective liquid cloudy portion of grid cell.  This is the value from uppermost model layer with liquid cloud or, if available, it is better to sum over all liquid cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere. Weight by total liquid cloud top fraction of  (as seen from TOA) each time sample when computing monthly mean.", 
@@ -133,14 +133,48 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "cldnci": {
+            "modeling_realm": "atmos", 
+            "standard_name": "number_concentration_of_ice_crystals_in_air_at_ice_cloud_top", 
+            "units": "m-3", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Ice Crystal Number Concentration of Cloud Tops", 
+            "comment": "Concentration 'as seen from space' over ice-cloud portion of grid cell.  This is the value from uppermost model layer with ice cloud or, if available, it is the sum over all ice cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere. Weight by total ice cloud top fraction (as seen from TOA) of each time sample when computing monthly mean.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "cldnci", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "cldnvi": {
+            "modeling_realm": "atmos", 
+            "standard_name": "atmosphere_number_content_of_cloud_droplets", 
+            "units": "m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Column Integrated Cloud Droplet Number", 
+            "comment": "Droplets are liquid only.  Values are weighted by liquid cloud fraction in each layer when vertically integrating, and for monthly means the samples are weighted by total liquid cloud fraction (as seen from TOA).", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "cldnvi", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "clivic": {
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_convective_cloud_ice_content", 
-            "units": "kg m-2 ", 
-            "cell_methods": "time: mean", 
+            "units": "kg m-2", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Convective Ice Water Path", 
-            "comment": "calculate mass of convective ice water in the column divided by the area of the column (not just the area of the cloudy portion of the column). This includes precipitating frozen hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.  ", 
+            "comment": "calculate mass of convective ice water in the column divided by the area of the column (not just the area of the cloudy portion of the column). This includes precipitating frozen hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
             "dimensions": "longitude latitude time", 
             "out_name": "clivic", 
             "type": "", 
@@ -153,11 +187,11 @@
         "clwvic": {
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_convective_cloud_condensed_water_content", 
-            "units": "kg m-2 ", 
-            "cell_methods": "time: mean", 
+            "units": "kg m-2", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Convective Condensed Water Path", 
-            "comment": "calculate mass of convective 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). This includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.  ", 
+            "comment": "calculate mass of convective 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). This includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
             "dimensions": "longitude latitude time", 
             "out_name": "clwvic", 
             "type": "", 
@@ -168,12 +202,12 @@
             "ok_max_mean_abs": ""
         }, 
         "cnc": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "vegetation_area_fraction", 
-            "units": "", 
-            "cell_methods": "time: mean", 
+            "units": "%", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Canopy covered fraction", 
+            "long_name": "Canopy covered area percentage", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
             "out_name": "cnc", 
@@ -184,11 +218,96 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "cw": {
+        "concbb": {
             "modeling_realm": "atmos", 
+            "standard_name": "mass_concentration_of_biomass_burning_dry_aerosol_in_air", 
+            "units": "kg m-3", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Concentration of Biomass Burning Aerosol", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "concbb", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "conccmcn": {
+            "modeling_realm": "atmos", 
+            "standard_name": "number_concentration_of_coarse_mode_ambient_aerosol_in_air", 
+            "units": "m-3", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Number Concentration Coarse Mode Aerosol", 
+            "comment": "includes all particles with diameter larger than 1 micron", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "conccmcn", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "conccn": {
+            "modeling_realm": "atmos", 
+            "standard_name": "number_concentration_of_ambient_aerosol_in_air", 
+            "units": "m-3", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Aerosol Number Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "conccn", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "concnmcn": {
+            "modeling_realm": "atmos", 
+            "standard_name": "number_concentration_of_nucleation_mode_ambient_aerosol_in_air", 
+            "units": "m-3", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Number Concentration of Nucleation Mode Aerosol", 
+            "comment": "includes all particles with diameter smaller than 3 nm", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "concnmcn", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "concpoa": {
+            "modeling_realm": "atmos", 
+            "standard_name": "mass_concentration_of_primary_particulate_organic_matter_dry_aerosol_in_air", 
+            "units": "kg m-3", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Concentration of Dry Aerosol Primary Organic Matter", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "concpoa", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "cw": {
+            "modeling_realm": "land", 
             "standard_name": "canopy_water_amount", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Total Canopy Water Storage", 
             "comment": "", 
@@ -202,10 +321,10 @@
             "ok_max_mean_abs": ""
         }, 
         "dcw": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "change_over_time_in_canopy_water_amount", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Change in Interception Storage", 
             "comment": "", 
@@ -219,10 +338,10 @@
             "ok_max_mean_abs": ""
         }, 
         "dfr": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "depth_of_frozen_soil", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Frozen Soil Depth", 
             "comment": "Depth from surface to the first zero degree isotherm. Above this isotherm T < 0o, and below this line T > 0o.", 
@@ -236,10 +355,10 @@
             "ok_max_mean_abs": ""
         }, 
         "dgw": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "change_over_time_in_groundwater", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Change in Groundwater", 
             "comment": "", 
@@ -253,10 +372,10 @@
             "ok_max_mean_abs": ""
         }, 
         "dmlt": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "depth_of_subsurface_melting", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Depth to soil thaw", 
             "comment": "Depth from surface to the zero degree isotherm. Above this isotherm T > 0o, and below this line T < 0o.", 
@@ -270,10 +389,10 @@
             "ok_max_mean_abs": ""
         }, 
         "drivw": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "change_over_time_in_river_water_amount", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Change in River Storage", 
             "comment": "", 
@@ -287,10 +406,10 @@
             "ok_max_mean_abs": ""
         }, 
         "dslw": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "change_over_time_in_water_content_of_soil_layer", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Change in soil moisture", 
             "comment": "", 
@@ -304,10 +423,10 @@
             "ok_max_mean_abs": ""
         }, 
         "dsn": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "change_over_time_in_surface_snow_and_ice_amount", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Change in snow water equivalent", 
             "comment": "", 
@@ -321,10 +440,10 @@
             "ok_max_mean_abs": ""
         }, 
         "dsw": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "change_over_time_in_surface_water_amount", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Change in Surface Water Storage", 
             "comment": "", 
@@ -338,10 +457,10 @@
             "ok_max_mean_abs": ""
         }, 
         "dtes": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "change_over_time_in_thermal_energy_content_of_surface", 
             "units": "J m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Change in surface heat storage", 
             "comment": "Change in heat storage over the soil layer and the vegetation for which the energy balance is calculated, accumulated over the sampling time interval.", 
@@ -355,10 +474,10 @@
             "ok_max_mean_abs": ""
         }, 
         "dtesn": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "change_over_time_in_thermal_energy_content_of_surface_snow_and_ice", 
             "units": "J m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Change in snow/ice cold content", 
             "comment": "Change in cold content over the snow layer for which the energy balance is calculated, accumulated over the sampling time interval. This should also include the energy contained in the liquid water in the snow pack.", 
@@ -372,10 +491,10 @@
             "ok_max_mean_abs": ""
         }, 
         "ec": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "liquid_water_evaporation_flux_from_canopy", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Interception evaporation", 
             "comment": "", 
@@ -388,11 +507,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "ec550aer": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "volume_extinction_coefficient_in_air_due_to_ambient_aerosol_particles", 
+            "units": "m-1", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Aerosol extinction coefficient", 
+            "comment": "Aerosol Extinction @550nm", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "ec550aer", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "eow": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "liquid_water_evaporation_flux_from_open_water", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Open Water Evaporation", 
             "comment": "", 
@@ -406,10 +542,10 @@
             "ok_max_mean_abs": ""
         }, 
         "es": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "liquid_water_evaporation_flux_from_soil", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Bare soil evaporation", 
             "comment": "", 
@@ -423,10 +559,10 @@
             "ok_max_mean_abs": ""
         }, 
         "esn": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "liquid_water_evaporation_flux_from_surface_snow", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow Evaporation", 
             "comment": "", 
@@ -440,10 +576,10 @@
             "ok_max_mean_abs": ""
         }, 
         "et": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "surface_evapotranspiration", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Total Evapotranspiration", 
             "comment": "", 
@@ -456,18 +592,18 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfds": {
-            "modeling_realm": "ocean", 
-            "standard_name": "surface_downward_heat_flux_in_sea_water", 
+        "hfdsl": {
+            "modeling_realm": "atmos", 
+            "standard_name": "surface_downward_heat_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Downward Heat Flux at Sea Water Surface", 
-            "comment": "This is the net flux of heat entering the liquid water column through its upper surface (excluding any 'flux adjustment') .", 
+            "long_name": "Downward Heat Flux at Land Surface", 
+            "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "hfds", 
-            "type": "real", 
-            "positive": "down", 
+            "out_name": "hfdsl", 
+            "type": "", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
@@ -477,7 +613,7 @@
             "modeling_realm": "landIce land", 
             "standard_name": "surface_downward_heat_flux_in_snow", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Downward Heat Flux into Snow Where Land over Land", 
             "comment": "the net downward heat flux from the atmosphere into the snow that lies on land divided by the land area in the grid cell; reported as 0.0 for snow-free land regions or where the land fraction is 0.", 
@@ -490,11 +626,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "hfdsnb": {
+            "modeling_realm": "atmos", 
+            "standard_name": "", 
+            "units": "W m-2", 
+            "cell_methods": "area: mean where land time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Downward heat flux at snow base", 
+            "comment": "Heat flux from snow into the ice or land under the snow.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "hfdsnb", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "hfmlt": {
             "modeling_realm": "atmos", 
             "standard_name": "surface_snow_and_ice_melt_heat_flux", 
-            "units": "W m-2 ", 
-            "cell_methods": "time: mean", 
+            "units": "W m-2", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Energy of fusion", 
             "comment": "Energy consumed or released during liquid/solid phase changes.", 
@@ -510,8 +663,8 @@
         "hfrs": {
             "modeling_realm": "atmos", 
             "standard_name": "temperature_flux_due_to_rainfall_expressed_as_heat_flux_onto_snow_and_ice", 
-            "units": "W m-2 ", 
-            "cell_methods": "time: mean", 
+            "units": "W m-2", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Heat transferred to snowpack by rainfall", 
             "comment": "Heat transferred to a snow cover by rain..", 
@@ -527,8 +680,8 @@
         "hfsbl": {
             "modeling_realm": "atmos", 
             "standard_name": "surface_snow_and_ice_sublimation_heat_flux", 
-            "units": "W m-2 ", 
-            "cell_methods": "time: mean", 
+            "units": "W m-2", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Energy of sublimation", 
             "comment": "Energy consumed or released during vapor/solid phase changes.", 
@@ -541,50 +694,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hurs": {
-            "modeling_realm": "atmos", 
-            "standard_name": "relative_humidity", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Near-Surface Relative Humidity", 
-            "comment": "The relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "hurs", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hursmax": {
-            "modeling_realm": "atmos", 
-            "standard_name": "relative_humidity", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Daily Maximum Near-Surface Relative Humidity", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "hursmax", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hursmin": {
-            "modeling_realm": "atmos", 
+        "hursminCrop": {
+            "modeling_realm": "", 
             "standard_name": "relative_humidity", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Daily Minimum Near-Surface Relative Humidity", 
-            "comment": "", 
+            "long_name": "Daily Minimum Near-Surface Relative Humidity over Crop Tile", 
+            "comment": "minimum near-surface (usually, 2 meter) relative humidity (add cell_method attribute 'time: min')", 
             "dimensions": "longitude latitude time", 
-            "out_name": "hursmin", 
+            "out_name": "hursminCrop", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -592,24 +711,7 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hus10": {
-            "modeling_realm": "atmos", 
-            "standard_name": "specific_humidity", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Specific Humidity", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev10 time", 
-            "out_name": "hus10", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hus19": {
+        "hus": {
             "modeling_realm": "atmos", 
             "standard_name": "specific_humidity", 
             "units": "1.0", 
@@ -618,24 +720,7 @@
             "long_name": "Specific Humidity", 
             "comment": "", 
             "dimensions": "longitude latitude plev19 time", 
-            "out_name": "hus19", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hus23": {
-            "modeling_realm": "atmos", 
-            "standard_name": "specific_humidity", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Specific Humidity", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "hus23", 
+            "out_name": "hus", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -647,7 +732,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "specific_humidity", 
             "units": "1.0", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Specific Humidity", 
             "comment": "", 
@@ -660,17 +745,17 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "huss": {
+        "inc": {
             "modeling_realm": "atmos", 
-            "standard_name": "specific_humidity", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "standard_name": "number_concentration_of_ice_crystals_in_air", 
+            "units": "m-3", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Near-Surface Specific Humidity", 
-            "comment": "Near-surface (usually, 2 meter) specific humidity.", 
+            "long_name": "Ice Crystal Number Concentration", 
+            "comment": "Ice Crystal number concentration in ice clouds", 
             "dimensions": "longitude latitude time", 
-            "out_name": "huss", 
-            "type": "real", 
+            "out_name": "inc", 
+            "type": "", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -685,7 +770,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "MODIS Optical Thickness-Particle Size joint  distribution, ice", 
             "comment": "", 
-            "dimensions": "longitude latitude plev7c tau time", 
+            "dimensions": "longitude latitude plev7c effectRadLi|tau time", 
             "out_name": "jpdftaureicemodis", 
             "type": "", 
             "positive": "", 
@@ -702,7 +787,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "MODIS Optical Thickness-Particle Size joint  distribution, liquid", 
             "comment": "", 
-            "dimensions": "longitude latitude plev7c tau time", 
+            "dimensions": "longitude latitude plev7c effectRadLi|tau time", 
             "out_name": "jpdftaureliqmodis", 
             "type": "", 
             "positive": "", 
@@ -717,7 +802,7 @@
             "units": "1.0", 
             "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "leaf area index", 
+            "long_name": "Leaf Area Index", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
             "out_name": "lai", 
@@ -732,7 +817,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_black_carbon_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of Black Carbon Aerosol", 
             "comment": "", 
@@ -749,7 +834,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_dust_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of Dust", 
             "comment": "", 
@@ -766,7 +851,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_ammonium_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of NH4", 
             "comment": "", 
@@ -783,7 +868,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_nitrate_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of NO3", 
             "comment": "", 
@@ -800,7 +885,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_particulate_organic_matter_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of Dry Aerosol Organic Matter", 
             "comment": "atmosphere dry organic content: This is the vertically integrated sum of atmosphere_primary_organic_content and atmosphere_secondary_organic_content (see next two table entries).", 
@@ -817,7 +902,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of Dry Aerosol Primary Organic Matter", 
             "comment": "", 
@@ -834,7 +919,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_sulfate_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of SO4", 
             "comment": "", 
@@ -851,7 +936,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of Dry Aerosol Secondary Organic Matter", 
             "comment": "", 
@@ -868,7 +953,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_seasalt_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of Seasalt", 
             "comment": "", 
@@ -881,33 +966,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "lqsn": {
-            "modeling_realm": "atmos", 
-            "standard_name": "mass_fraction_of_liquid_water_in_snow", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+        "lwsnl": {
+            "modeling_realm": "landIce land", 
+            "standard_name": "liquid_water_content_of_snow_layer", 
+            "units": "kg m-2", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Snow liquid fraction", 
-            "comment": "Fraction of Snow Equivalent Water which is in the liquid phase. 3D variable for multi-layer snow schemes.", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "lqsn", 
-            "type": "", 
+            "long_name": "Liquid Water Content of Snow Layer", 
+            "comment": "The total mass of liquid water contained interstitially within the whole depth of the snow layer of the land portion of a grid cell divided by the area of the land portion of the cell.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "lwsnl", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "lwsnl": {
-            "modeling_realm": "landIce land", 
-            "standard_name": "liquid_water_content_of_snow_layer", 
-            "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+        "mlotst": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", 
+            "units": "m", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Liquid Water Content of Snow Layer", 
-            "comment": "where land over land: this is computed as the total mass of liquid water contained interstitially within the snow layer of the land portion of a grid cell divided by the area of the land portion of the cell.", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "lwsnl", 
+            "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", 
+            "comment": "Sigma T is potential density referenced to ocean surface.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "mlotst", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -916,14 +1001,14 @@
             "ok_max_mean_abs": ""
         }, 
         "mrfsofr": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "mass_fraction_of_frozen_water_in_soil_moisture", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Average layer fraction of frozen moisture", 
             "comment": "Fraction of soil moisture mass in the solid phase in each user-defined soil layer (3D variable)", 
-            "dimensions": "longitude latitude alevel time", 
+            "dimensions": "longitude latitude sdepth time", 
             "out_name": "mrfsofr", 
             "type": "", 
             "positive": "", 
@@ -933,14 +1018,14 @@
             "ok_max_mean_abs": ""
         }, 
         "mrlqso": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "mass_fraction_of_unfrozen_water_in_soil_moisture", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Average layer fraction of liquid moisture", 
             "comment": "Fraction of soil moisture mass in the liquid phase in each user-defined soil layer (3D variable)", 
-            "dimensions": "longitude latitude alevel time", 
+            "dimensions": "longitude latitude sdepth time", 
             "out_name": "mrlqso", 
             "type": "", 
             "positive": "", 
@@ -953,11 +1038,11 @@
             "modeling_realm": "land", 
             "standard_name": "moisture_content_of_soil_layer", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Water Content of Soil Layer", 
             "comment": "The mass of water in all phases, including ice, in soil layers.  Report as missing for grid cells with no land.", 
-            "dimensions": "longitude latitude alevel time", 
+            "dimensions": "longitude latitude sdepth time", 
             "out_name": "mrlsl", 
             "type": "real", 
             "positive": "", 
@@ -970,7 +1055,7 @@
             "modeling_realm": "land", 
             "standard_name": "runoff_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Total Runoff", 
             "comment": "The total run-off (including drainage through the base of the soil model) per unit area leaving the land portion of the grid cell.", 
@@ -984,10 +1069,10 @@
             "ok_max_mean_abs": ""
         }, 
         "mrrob": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "subsurface_runoff_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Subsurface runoff", 
             "comment": "", 
@@ -1004,7 +1089,7 @@
             "modeling_realm": "land", 
             "standard_name": "surface_runoff_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Runoff", 
             "comment": "The total surface run off leaving the land portion of the grid cell (excluding drainage through the base of the soil model).", 
@@ -1068,28 +1153,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "mrsos": {
-            "modeling_realm": "land", 
-            "standard_name": "moisture_content_of_soil_layer", 
-            "units": "kg m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Moisture in Upper Portion of Soil Column", 
-            "comment": "The mass of water in all phases in the upper 10cm of the  soil layer.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "mrsos", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "mrsow": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "volume_fraction_of_condensed_water_in_soil_at_field_capacity", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Total Soil Wetness", 
             "comment": "Vertically integrated soil moisture divided by maximum allowable soil moisture above wilting point.", 
@@ -1103,10 +1171,10 @@
             "ok_max_mean_abs": ""
         }, 
         "nudgincsm": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "nudging_increment_in_water_content_of_soil_layer", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Nudging Increment of Water in Soil Mositure", 
             "comment": "", 
@@ -1120,10 +1188,10 @@
             "ok_max_mean_abs": ""
         }, 
         "nudgincswe": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "nudging_increment_in_surface_snow_and_ice_amount", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Nudging Increment of Water in Snow", 
             "comment": "", 
@@ -1157,10 +1225,10 @@
             "modeling_realm": "landIce land", 
             "standard_name": "liquid_water_content_of_permafrost_layer", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Liquid Water Content of Permafrost Layer", 
-            "comment": "''where land over land'', i.e., this is the total mass of liquid water contained within the permafrost layer within the land portion of a grid cell divided by the area of the land portion of the cell.", 
+            "comment": "*where land over land*, i.e., this is the total mass of liquid water contained within the permafrost layer within the land portion of a grid cell divided by the area of the land portion of the cell.", 
             "dimensions": "longitude latitude time", 
             "out_name": "pflw", 
             "type": "real", 
@@ -1171,10 +1239,10 @@
             "ok_max_mean_abs": ""
         }, 
         "potet": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "water_potential_evapotranspiration_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Potential Evapotranspiration", 
             "comment": "", 
@@ -1191,7 +1259,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Precipitation over Crop Tile", 
             "comment": "includes both liquid and solid phases", 
@@ -1204,17 +1272,34 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "prhmax": {
+            "modeling_realm": "atmos", 
+            "standard_name": "precipitation_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: mean time: mean within hours time: maximum over hours", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Maximum Hourly Precipitation Rate", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "prhmax", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "prra": {
             "modeling_realm": "atmos", 
             "standard_name": "rainfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Rainfall rate", 
+            "long_name": "Rainfall Flux where Ice Free Ocean over Sea", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
             "out_name": "prra", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -1225,7 +1310,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "convective_rainfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Convective Rainfall rate", 
             "comment": "", 
@@ -1242,7 +1327,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "mass_fraction_of_rainfall_onto_snow", 
             "units": "1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Fraction of rainfall on snow.", 
             "comment": "The fraction of the grid averaged rainfall which falls on the snow pack", 
@@ -1259,7 +1344,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "convective_snowfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Convective Snowfall Flux", 
             "comment": "convective precipitation of all forms of water in the solid phase.", 
@@ -1276,7 +1361,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "mass_fraction_of_snowfall_onto_snow", 
             "units": "1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Fraction of snowfall on snow.", 
             "comment": "The fraction of the snowfall which falls on the snow pack", 
@@ -1293,7 +1378,7 @@
             "modeling_realm": "land", 
             "standard_name": "precipitation_flux_onto_canopy", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Precipitation onto Canopy", 
             "comment": "The precipitation flux that is intercepted by the vegetation canopy (if present in model) before reaching the ground.", 
@@ -1310,7 +1395,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_water_vapor_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Water Vapor Path", 
             "comment": "vertically integrated through the atmospheric column", 
@@ -1324,10 +1409,10 @@
             "ok_max_mean_abs": ""
         }, 
         "qgwr": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "water_flux_from_soil_layer_to_groundwater", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Groundwater recharge from soil layer", 
             "comment": "", 
@@ -1344,10 +1429,10 @@
             "modeling_realm": "atmos", 
             "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle_at_liquid_water_cloud_top", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Cloud-Top Effective Droplet Radius In Convective Cloud", 
-            "comment": "Droplets are liquid only.  This is the effective radius 'as seen from space' over convective liquid cloudy portion of grid cell.  This is the value from uppermost model layer with liquid cloud or, if available, or for some models it is the sum over all liquid cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere. Reported values are weighted by total liquid cloud top fraction of  (as seen from TOA) each time sample when co [...]
+            "comment": "Droplets are liquid only.  This is the effective radius 'as seen from space' over convective liquid cloudy portion of grid cell.  This is the value from uppermost model layer with liquid cloud or, if available, or for some models it is the sum over all liquid cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere. Reported values are weighted by total liquid cloud top fraction of  (as seen from TOA) each time sample when co [...]
             "dimensions": "longitude latitude time", 
             "out_name": "reffcclwtop", 
             "type": "", 
@@ -1357,14 +1442,48 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "reffclwc": {
+            "modeling_realm": "atmos", 
+            "standard_name": "effective_radius_of_convective_cloud_liquid_water_particle", 
+            "units": "m", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Hydrometeor Effective Radius of Convective Cloud Liquid Water", 
+            "comment": "Droplets are liquid.  The effective radius is defined as the ratio of the third moment over the second moment of the particle size distribution and the time-mean should be calculated, weighting the individual samples by the cloudy fraction of the grid cell.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "reffclwc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "reffclws": {
+            "modeling_realm": "atmos", 
+            "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle", 
+            "units": "m", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Hydrometeor Effective Radius of Stratiform Cloud Liquid Water", 
+            "comment": "Droplets are liquid.  The effective radius is defined as the ratio of the third moment over the second moment of the particle size distribution and the time-mean should be calculated, weighting the individual samples by the cloudy fraction of the grid cell.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "reffclws", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "reffsclwtop": {
             "modeling_realm": "atmos", 
             "standard_name": "effective_radius_of_stratiform_cloud_liquid_water_particle_at_liquid_water_cloud_top", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Cloud-Top Effective Droplet Radius In Stratiform Cloud", 
-            "comment": "Droplets are liquid only.  This is the effective radius 'as seen from space' over liquid stratiform cloudy portion of grid cell.  This is the value from uppermost model layer with liquid cloud or, if available, or for some models it is the sum over all liquid cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere. Reported values are weighted by total liquid cloud top fraction of  (as seen from TOA) each time sample when co [...]
+            "comment": "Droplets are liquid only.  This is the effective radius 'as seen from space' over liquid stratiform cloudy portion of grid cell.  This is the value from uppermost model layer with liquid cloud or, if available, or for some models it is the sum over all liquid cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere. Reported values are weighted by total liquid cloud top fraction of  (as seen from TOA) each time sample when co [...]
             "dimensions": "longitude latitude time", 
             "out_name": "reffsclwtop", 
             "type": "", 
@@ -1375,13 +1494,13 @@
             "ok_max_mean_abs": ""
         }, 
         "rivi": {
-            "modeling_realm": "atmos", 
-            "standard_name": "water_flux_to_downstream", 
+            "modeling_realm": "land", 
+            "standard_name": "water_flux_from_upstream", 
             "units": "m3 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "River Discharge", 
-            "comment": "", 
+            "long_name": "River Inflow", 
+            "comment": "Inflow of River Water into Cell", 
             "dimensions": "longitude latitude time", 
             "out_name": "rivi", 
             "type": "", 
@@ -1392,13 +1511,13 @@
             "ok_max_mean_abs": ""
         }, 
         "rivo": {
-            "modeling_realm": "atmos", 
-            "standard_name": "water_flux_from_upstream", 
+            "modeling_realm": "land", 
+            "standard_name": "water_flux_to_downstream", 
             "units": "m3 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "River Inflow", 
-            "comment": "", 
+            "long_name": "River Discharge", 
+            "comment": "Outflow of River Water from Cell", 
             "dimensions": "longitude latitude time", 
             "out_name": "rivo", 
             "type": "", 
@@ -1412,7 +1531,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_net_downward_longwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Net Longwave Surface Radiation", 
             "comment": "Net longwave surface radiation", 
@@ -1425,11 +1544,45 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "rsdscsdiff": {
+            "modeling_realm": "atmos", 
+            "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air_assuming_clear_sky", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Surface Diffuse Downwelling Clear Sky Shortwave Radiation", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "rsdscsdiff", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rsdsdiff": {
+            "modeling_realm": "atmos", 
+            "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Surface Diffuse Downwelling Shortwave Radiation", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "rsdsdiff", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "rss": {
             "modeling_realm": "atmos", 
             "standard_name": "surface_net_downward_shortwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Net Shortwave Surface Radiation", 
             "comment": "Net downward shortwave radiation at the surface", 
@@ -1443,10 +1596,10 @@
             "ok_max_mean_abs": ""
         }, 
         "rzwc": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "water_content_of_root_zone", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Root zone soil moisture", 
             "comment": "", 
@@ -1463,13 +1616,13 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_sublimation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Snow and Ice Sublimation Flux", 
             "comment": "The snow and ice sublimation flux is the loss of snow and ice mass per unit area from the surface resulting from their direct conversion to water vapor that enters the atmosphere.", 
             "dimensions": "longitude latitude time", 
             "out_name": "sbl", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -1480,7 +1633,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "number_concentration_of_stratiform_cloud_liquid_water_particles_in_air_at_liquid_water_cloud_top", 
             "units": "m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Cloud Droplet Number Concentration of Stratiform Cloud Tops", 
             "comment": "Droplets are liquid only.  Report concentration 'as seen from space' over stratiform liquid cloudy portion of grid cell.  This is the value from uppermost model layer with liquid cloud or, if available, it is better to sum over all liquid cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere. Weight by total liquid cloud top fraction of  (as seen from TOA) each time sample when computing monthly mean.", 
@@ -1493,68 +1646,17 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "sfcWind": {
-            "modeling_realm": "atmos", 
-            "standard_name": "wind_speed", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Daily-Mean Near-Surface Wind Speed", 
-            "comment": "near-surface (usually, 10 meters) wind speed.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "sfcWind", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sfcWindmax": {
-            "modeling_realm": "atmos", 
-            "standard_name": "wind_speed", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Daily Maximum Near-Surface Wind Speed", 
-            "comment": "Daily maximum near-surface (usually, 10 meters) wind speed.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "sfcWindmax", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sic": {
-            "modeling_realm": "atmos", 
-            "standard_name": "sea_ice_area_fraction", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Sea Ice Area Fraction", 
-            "comment": "fraction of grid cell covered by sea ice.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "sic", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sisnthick": {
-            "modeling_realm": "atmos", 
-            "standard_name": "surface_snow_thickness", 
+        "sithick": {
+            "modeling_realm": "seaIce ocean", 
+            "standard_name": "sea_ice_thickness", 
             "units": "m", 
-            "cell_methods": "area: mean where sea_ice over sea time: mean", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
-            "long_name": "Snow thickness", 
-            "comment": "Actual thickness of snow (snow volume divided by snow-covered area)", 
+            "long_name": "Sea Ice Thickness", 
+            "comment": "Actual (floe) thickness of sea ice (NOT volume divided by grid area as was done in CMIP5)", 
             "dimensions": "longitude latitude time", 
-            "out_name": "sisnthick", 
-            "type": "", 
+            "out_name": "sithick", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -1565,7 +1667,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "sublimation_amount_assuming_no_snow", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Sublimation of the snow free area", 
             "comment": "", 
@@ -1599,7 +1701,7 @@
             "modeling_realm": "landIce land", 
             "standard_name": "surface_snow_melt_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Snow Melt", 
             "comment": "The total surface snow melt rate on the land portion of the grid cell divided by the land area in the grid cell; report as zero for snow-free land regions and missing where there is no land.", 
@@ -1616,7 +1718,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_snow_melt_flux_into_soil_layer", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Water flowing out of snowpack", 
             "comment": "", 
@@ -1633,7 +1735,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_snow_and_ice_refreezing_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Re-freezing of water in the snow", 
             "comment": "", 
@@ -1650,11 +1752,11 @@
             "modeling_realm": "landIce land", 
             "standard_name": "surface_snow_amount", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Snow Amount", 
             "comment": "The mass of surface snow on the land portion of the grid cell divided by the land area in the grid cell; reported as missing where the land fraction is 0; excludes snow on vegetation canopy or on sea ice.", 
-            "dimensions": "longitude latitude alevel time", 
+            "dimensions": "longitude latitude time", 
             "out_name": "snw", 
             "type": "real", 
             "positive": "", 
@@ -1667,7 +1769,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "canopy_snow_amount", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "SWE intercepted by the vegetation", 
             "comment": "Total water mass of the snowpack (liquid or frozen), averaged over a grid cell and interecepted by the canopy.", 
@@ -1684,7 +1786,7 @@
             "modeling_realm": "landIce land", 
             "standard_name": "soot_content_of_surface_snow", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow Soot Content", 
             "comment": "the entire land portion of the grid cell is considered, with snow soot content set to 0.0 in regions free of snow.", 
@@ -1698,10 +1800,10 @@
             "ok_max_mean_abs": ""
         }, 
         "sw": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "surface_water_amount_assuming_no_snow", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Water Storage", 
             "comment": "Total liquid water storage, other than soil, snow or interception storage (i.e. lakes, river channel or depression storage).", 
@@ -1718,8 +1820,8 @@
             "modeling_realm": "ocean", 
             "standard_name": "depth_of_isosurface_of_sea_water_potential_temperature", 
             "units": "m", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
             "long_name": "20C isotherm depth", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
@@ -1731,24 +1833,7 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ta10": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_temperature", 
-            "units": "K", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Air Temperature", 
-            "comment": "Air Temperature", 
-            "dimensions": "longitude latitude plev10 time", 
-            "out_name": "ta10", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ta19": {
+        "ta": {
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
@@ -1757,24 +1842,7 @@
             "long_name": "Air Temperature", 
             "comment": "Air Temperature", 
             "dimensions": "longitude latitude plev19 time", 
-            "out_name": "ta19", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ta23": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_temperature", 
-            "units": "K", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Air Temperature", 
-            "comment": "Air Temperature", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "ta23", 
+            "out_name": "ta", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -1786,11 +1854,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Air Temperature", 
             "comment": "Temperature on the 500 hPa surface", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time p500", 
             "out_name": "ta500", 
             "type": "", 
             "positive": "", 
@@ -1803,7 +1871,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Air Temperature", 
             "comment": "Air temperature at 850hPa", 
@@ -1820,7 +1888,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Daily Maximum Near-Surface Air Temperature over Crop Tile", 
             "comment": "maximum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: max')", 
@@ -1837,7 +1905,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Daily Minimum Near-Surface Air Temperature over Crop Tile", 
             "comment": "minimum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: min')", 
@@ -1854,7 +1922,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downward_stress", 
             "units": "N m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Momentum flux", 
             "comment": "module of the momentum lost by the atmosphere to the surface.", 
@@ -1871,7 +1939,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downward_eastward_stress", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downward Eastward Wind Stress", 
             "comment": "Downward eastward wind stress at the surface", 
@@ -1888,7 +1956,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downward_eastward_stress_due_to_planetary_boundary_layer", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "eastward surface stress from planetary boundary layer scheme", 
             "comment": "The  downward eastward stress associated with the models parameterization of the plantary boundary layer. (This request is related to a WGNE effort to understand how models parameterize the surface stresses.)", 
@@ -1905,7 +1973,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downward_northward_stress", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downward Northward Wind Stress", 
             "comment": "Downward northward wind stress at the surface", 
@@ -1922,7 +1990,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downward_northward_stress_due_to_planetary_boundary_layer", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "northward surface stress from planetary boundary layer scheme", 
             "comment": "The  downward northward stress associated with the models parameterization of the plantary boundary layer. (This request is related to a WGNE effort to understand how models parameterize the surface stresses.)", 
@@ -1936,10 +2004,10 @@
             "ok_max_mean_abs": ""
         }, 
         "tcs": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "canopy_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Vegetation Canopy Temperature", 
             "comment": "Vegetation temperature, averaged over all vegetation types", 
@@ -1956,7 +2024,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "dew_point_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "2m dewpoint temperature", 
             "comment": "", 
@@ -1970,10 +2038,10 @@
             "ok_max_mean_abs": ""
         }, 
         "tgs": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "surface_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Temperature of bare soil", 
             "comment": "Surface bare soil temperature", 
@@ -1990,7 +2058,7 @@
             "modeling_realm": "landIce land", 
             "standard_name": "permafrost_layer_thickness", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Permafrost Layer Thickness", 
             "comment": "The mean thickness of the permafrost layer in the land portion of the grid cell.  Reported as zero in permafrost-free regions.", 
@@ -2007,7 +2075,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Radiative Temperature", 
             "comment": "Effective radiative surface temperature, averaged over the grid cell", 
@@ -2024,7 +2092,7 @@
             "modeling_realm": "land", 
             "standard_name": "transpiration_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Transpiration", 
             "comment": "Transpiration (may include dew formation as a negative flux).", 
@@ -2041,7 +2109,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Temperature", 
             "comment": "Temperature of the lower boundary of the atmosphere", 
@@ -2058,7 +2126,7 @@
             "modeling_realm": "land", 
             "standard_name": "soil_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Temperature of Soil", 
             "comment": "Temperature of each soil layer. Reported as missing for grid cells with no land.", 
@@ -2072,14 +2140,14 @@
             "ok_max_mean_abs": ""
         }, 
         "tsnl": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "snow_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Temperature profile in the snow", 
             "comment": "Temperature in the snow pack present in the grid-cell. 3D variable for multi-layer snow schemes.", 
-            "dimensions": "longitude latitude snowdepth time", 
+            "dimensions": "longitude latitude time", 
             "out_name": "tsnl", 
             "type": "", 
             "positive": "", 
@@ -2092,7 +2160,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow Surface Temperature", 
             "comment": "Temperature of the snow surface as it interacts with the atmosphere, averaged over a grid cell.", 
@@ -2106,10 +2174,10 @@
             "ok_max_mean_abs": ""
         }, 
         "tws": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "canopy_and_surface_and_subsurface_water_amount", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Terrestrial Water Storage", 
             "comment": "", 
@@ -2122,24 +2190,7 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ua10": {
-            "modeling_realm": "atmos", 
-            "standard_name": "eastward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Eastward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev10 time", 
-            "out_name": "ua10", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ua19": {
+        "ua": {
             "modeling_realm": "atmos", 
             "standard_name": "eastward_wind", 
             "units": "m s-1", 
@@ -2148,7 +2199,7 @@
             "long_name": "Eastward Wind", 
             "comment": "", 
             "dimensions": "longitude latitude plev19 time", 
-            "out_name": "ua19", 
+            "out_name": "ua", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -2162,7 +2213,7 @@
             "units": "m s-1", 
             "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Eastward Wind", 
+            "long_name": "Eastward Wind at 200hPa", 
             "comment": "Zonal wind (positive eastwards) at 200hPa", 
             "dimensions": "longitude latitude time p200", 
             "out_name": "ua200", 
@@ -2173,28 +2224,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ua23": {
-            "modeling_realm": "atmos", 
-            "standard_name": "eastward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Eastward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "ua23", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "ua850": {
             "modeling_realm": "atmos", 
             "standard_name": "eastward_wind", 
             "units": "m s-1", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Eastward Wind at 850 hPa", 
             "comment": "Zonal wind on the 850 hPa surface", 
@@ -2207,24 +2241,7 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "va10": {
-            "modeling_realm": "atmos", 
-            "standard_name": "northward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Northward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev10 time", 
-            "out_name": "va10", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "va19": {
+        "va": {
             "modeling_realm": "atmos", 
             "standard_name": "northward_wind", 
             "units": "m s-1", 
@@ -2233,7 +2250,7 @@
             "long_name": "Northward Wind", 
             "comment": "", 
             "dimensions": "longitude latitude plev19 time", 
-            "out_name": "va19", 
+            "out_name": "va", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -2258,28 +2275,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "va23": {
-            "modeling_realm": "atmos", 
-            "standard_name": "northward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Northward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "va23", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "va850": {
             "modeling_realm": "atmos", 
             "standard_name": "northward_wind", 
             "units": "m s-1", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Northward Wind", 
             "comment": "Northward component of the wind at 850hPa", 
@@ -2292,24 +2292,7 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "wap10": {
-            "modeling_realm": "atmos", 
-            "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": "Omega (vertical velocity in pressure coordinates, positive downwards)", 
-            "dimensions": "longitude latitude plev10 time", 
-            "out_name": "wap10", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "wap19": {
+        "wap": {
             "modeling_realm": "atmos", 
             "standard_name": "lagrangian_tendency_of_air_pressure", 
             "units": "Pa s-1", 
@@ -2318,24 +2301,7 @@
             "long_name": "omega (=dp/dt)", 
             "comment": "Omega (vertical velocity in pressure coordinates, positive downwards)", 
             "dimensions": "longitude latitude plev19 time", 
-            "out_name": "wap19", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "wap23": {
-            "modeling_realm": "atmos", 
-            "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": "Omega (vertical velocity in pressure coordinates, positive downwards)", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "wap23", 
+            "out_name": "wap", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2344,10 +2310,10 @@
             "ok_max_mean_abs": ""
         }, 
         "wtd": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "depth_of_soil_moisture_saturation", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Water table depth", 
             "comment": "", 
@@ -2360,24 +2326,7 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zg10": {
-            "modeling_realm": "atmos", 
-            "standard_name": "geopotential_height", 
-            "units": "m", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Geopotential Height", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev10 time", 
-            "out_name": "zg10", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zg19": {
+        "zg": {
             "modeling_realm": "atmos", 
             "standard_name": "geopotential_height", 
             "units": "m", 
@@ -2386,25 +2335,25 @@
             "long_name": "Geopotential Height", 
             "comment": "", 
             "dimensions": "longitude latitude plev19 time", 
-            "out_name": "zg19", 
-            "type": "", 
+            "out_name": "zg", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zg23": {
-            "modeling_realm": "atmos", 
+        "zg500": {
+            "modeling_realm": "aerosol", 
             "standard_name": "geopotential_height", 
             "units": "m", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Geopotential Height", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "zg23", 
-            "type": "", 
+            "long_name": "Geopotential Height at 500 hPa", 
+            "comment": "geopotential height on the 500 hPa surface", 
+            "dimensions": "longitude latitude time p500", 
+            "out_name": "zg500", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -2415,7 +2364,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_boundary_layer_thickness", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Height of Boundary Layer", 
             "comment": "", 
diff --git a/TestTables/CMIP6_emDayZ.json b/TestTables/CMIP6_EdayZ.json
similarity index 85%
rename from TestTables/CMIP6_emDayZ.json
rename to TestTables/CMIP6_EdayZ.json
index daa6470..106227c 100644
--- a/TestTables/CMIP6_emDayZ.json
+++ b/TestTables/CMIP6_EdayZ.json
@@ -1,24 +1,24 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table emDayZ", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table EdayZ", 
         "realm": "atmos", 
         "frequency": "day", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "1.00000", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "epfy": {
             "modeling_realm": "atmos", 
             "standard_name": "northward_eliassen_palm_flux_in_air", 
             "units": "m3 s-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Northward Component of the Eliassen-Palm Flux", 
             "comment": "Transformed Eulerian Mean Diagnostics Meridional component Fy of Eliassen-Palm (EP) flux (Fy, Fz) derived from 6hr or higher frequency fields (use daily fields or 12 hr fields if the 6 hr are not available). Please use the definitions given by equation 3.5.3a of Andrews, Holton and Leovy text book, but scaled by density to have units m3 s-2.", 
@@ -35,7 +35,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "upward_eliassen_palm_flux_in_air", 
             "units": "m3 s-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Upward Component of the Eliassen-Palm Flux", 
             "comment": "Transformed Eulerian Mean Diagnostics Meridional component Fz of the Eliassen-Palm (EP) flux (Fy, Fz) derived from 6hr or higher frequency fields (use daily fields or 12 hr fields if the 6 hr are not available). Please use the definitions given by equation 3.5.3b of Andrews, Holton and Leovy text book, but scaled by density to have units m3 s-2.", 
@@ -53,10 +53,10 @@
             "standard_name": "specific_humidity", 
             "units": "1.0", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_measures": "", 
             "long_name": "Specific Humidity", 
             "comment": "", 
-            "dimensions": "latitude plev39 time", 
+            "dimensions": "latitude plev19 time", 
             "out_name": "hus", 
             "type": "", 
             "positive": "", 
@@ -69,7 +69,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "meridional_streamfunction_transformed_eulerian_mean", 
             "units": "kg s^-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Transformed Eulerian Mean mass stramfunction", 
             "comment": "Residual mass streamfunction, computed from vstar and integrated from the top of the atmosphere (on the native model grid). Reference: Andrews et al (1987): Middle Atmospheric Dynamics. Accademic Press.", 
@@ -87,10 +87,10 @@
             "standard_name": "air_temperature", 
             "units": "K", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_measures": "", 
             "long_name": "Air Temperature", 
             "comment": "Air Temperature", 
-            "dimensions": "latitude plev39 time", 
+            "dimensions": "latitude plev19 time", 
             "out_name": "ta", 
             "type": "", 
             "positive": "", 
@@ -103,7 +103,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "eastward_wind", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Eastward Wind", 
             "comment": "", 
@@ -120,7 +120,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_eastward_wind_due_to_eliassen_palm_flux_divergence", 
             "units": "m s-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Tendency of eastward wind due to Eliassen-Palm Flux divergence", 
             "comment": "Tendency of the zonal mean zonal wind due to the divergence of the Eliassen-Palm flux.", 
@@ -137,10 +137,10 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", 
             "units": "m s-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "u-tendency nonorographic gravity wave drag", 
-            "comment": "Tendency of the eastward wind by parameterized nonorographic gravity waves.  ", 
+            "comment": "Tendency of the eastward wind by parameterized nonorographic gravity waves.", 
             "dimensions": "latitude plev39 time", 
             "out_name": "utendnogw", 
             "type": "", 
@@ -154,10 +154,10 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_eastward_wind_due_to_orographic_gravity_wave_drag", 
             "units": "m s-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "u-tendency orographic gravity wave drag", 
-            "comment": "Tendency of the eastward wind by parameterized orographic gravity waves. ", 
+            "comment": "Tendency of the eastward wind by parameterized orographic gravity waves.", 
             "dimensions": "latitude plev39 time", 
             "out_name": "utendogw", 
             "type": "", 
@@ -171,7 +171,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "u-tendency_by_wstar_advection", 
             "units": "m s-1 d-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Rendency of eastward wind due to TEM northward advection and Coriolis term", 
             "comment": "Tendency of zonally averaged eastward wind, by the residual upward wind advection (on the native model grid). Reference: Andrews et al (1987): Middle Atmospheric Dynamics. Accademic Press.", 
@@ -188,7 +188,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "u-tendency_by_vstar_advection", 
             "units": "m s-1 d-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Rendency of eastward wind due to TEM upward advection", 
             "comment": "Tendency of zonally averaged eastward wind, by the residual northward wind advection (on the native model grid). Reference: Andrews et al (1987): Middle Atmospheric Dynamics. Accademic Press.", 
@@ -206,10 +206,10 @@
             "standard_name": "northward_wind", 
             "units": "m s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
+            "cell_measures": "", 
             "long_name": "Northward Wind", 
             "comment": "", 
-            "dimensions": "latitude plev39 time", 
+            "dimensions": "latitude plev19 time", 
             "out_name": "va", 
             "type": "", 
             "positive": "", 
@@ -222,7 +222,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "northward_transformed_eulerian_mean_air_velocity", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Transformed Eulerian Mean northward wind", 
             "comment": "Transformed Eulerian Mean Diagnostics v*, meridional component of the residual meridional circulation (v*, w*) derived from 6 hr or higher frequency data fields (use instantaneous daily fields or 12 hr fields if the 6 hr data are not available).", 
@@ -239,7 +239,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "unset", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Transformed Eulerian Mean upward wind", 
             "comment": "Transformed Eulerian Mean Diagnostics w*, meridional component of the residual meridional circulation (v*, w*) derived from 6 hr or higher frequency data fields (use instantaneous daily fields or 12 hr fields if the 6 hr data are not available). Scale height: 6950 m", 
@@ -251,6 +251,23 @@
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
+        }, 
+        "zg": {
+            "modeling_realm": "atmos", 
+            "standard_name": "geopotential_height", 
+            "units": "m", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "", 
+            "long_name": "Geopotential Height", 
+            "comment": "", 
+            "dimensions": "latitude plev19 time", 
+            "out_name": "zg", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
         }
     }
 }
diff --git a/TestTables/CMIP6_Efx.json b/TestTables/CMIP6_Efx.json
new file mode 100644
index 0000000..541e767
--- /dev/null
+++ b/TestTables/CMIP6_Efx.json
@@ -0,0 +1,256 @@
+{
+    "Header": {
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table Efx", 
+        "realm": "land", 
+        "frequency": "fx", 
+        "cmor_version": "3.2", 
+        "table_date": "10 April 2017", 
+        "missing_value": "1e20", 
+        "product": "model-output", 
+        "approx_interval": "0.00000", 
+        "generic_levels": "alevel olevel", 
+        "mip_era": "CMIP6", 
+        "Conventions": "CF-1.7 CMIP-6.0"
+    }, 
+    "variable_entry": {
+        "clayfrac": {
+            "modeling_realm": "atmos", 
+            "standard_name": "", 
+            "units": "1.0", 
+            "cell_methods": "area: mean where land", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Clay Fraction", 
+            "comment": "", 
+            "dimensions": "longitude latitude sdepth", 
+            "out_name": "clayfrac", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "fldcapacity": {
+            "modeling_realm": "land", 
+            "standard_name": "", 
+            "units": "%", 
+            "cell_methods": "area: mean where land", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Field Capacity", 
+            "comment": "", 
+            "dimensions": "longitude latitude sdepth", 
+            "out_name": "fldcapacity", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "ksat": {
+            "modeling_realm": "land", 
+            "standard_name": "", 
+            "units": "1e-6 m s-1", 
+            "cell_methods": "area: mean where land", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Saturated Hydraulic Conductivity", 
+            "comment": "", 
+            "dimensions": "longitude latitude sdepth", 
+            "out_name": "ksat", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rld": {
+            "modeling_realm": "atmos", 
+            "standard_name": "downwelling_longwave_flux_in_air", 
+            "units": "W m-2", 
+            "cell_methods": "area: point", 
+            "cell_measures": "", 
+            "long_name": "Downwelling Longwave Radiation", 
+            "comment": "Downwelling Longwave Radiation (includes the fluxes at the surface and TOA)", 
+            "dimensions": "alevel spectband time", 
+            "out_name": "rld", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rlu": {
+            "modeling_realm": "atmos", 
+            "standard_name": "upwelling_longwave_flux_in_air", 
+            "units": "W m-2", 
+            "cell_methods": "area: point", 
+            "cell_measures": "", 
+            "long_name": "Upwelling Longwave Radiation", 
+            "comment": "Upwelling longwave radiation (includes the fluxes at the surface and TOA)", 
+            "dimensions": "alevel spectband time", 
+            "out_name": "rlu", 
+            "type": "real", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rootdsl": {
+            "modeling_realm": "land", 
+            "standard_name": "", 
+            "units": "kg m-3", 
+            "cell_methods": "area: mean where land", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Root Distribution", 
+            "comment": "", 
+            "dimensions": "longitude latitude sdepth", 
+            "out_name": "rootdsl", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rsd": {
+            "modeling_realm": "atmos", 
+            "standard_name": "downwelling_shortwave_flux_in_air", 
+            "units": "W m-2", 
+            "cell_methods": "area: point", 
+            "cell_measures": "", 
+            "long_name": "Downwelling Shortwave Radiation", 
+            "comment": "Downwelling shortwave radiation (includes the fluxes at the surface and top-of-atmosphere)", 
+            "dimensions": "alevel spectband time", 
+            "out_name": "rsd", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "rsu": {
+            "modeling_realm": "atmos", 
+            "standard_name": "upwelling_shortwave_flux_in_air", 
+            "units": "W m-2", 
+            "cell_methods": "area: point", 
+            "cell_measures": "", 
+            "long_name": "Upwelling Shortwave Radiation", 
+            "comment": "Upwelling shortwave radiation  (includes also the fluxes at the surface and top of atmosphere)", 
+            "dimensions": "alevel spectband time", 
+            "out_name": "rsu", 
+            "type": "real", 
+            "positive": "up", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "sandfrac": {
+            "modeling_realm": "atmos", 
+            "standard_name": "", 
+            "units": "1.0", 
+            "cell_methods": "area: mean where land", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Sand Fraction", 
+            "comment": "", 
+            "dimensions": "longitude latitude sdepth", 
+            "out_name": "sandfrac", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "sftflf": {
+            "modeling_realm": "landIce", 
+            "standard_name": "floating_ice_shelf_area_fraction", 
+            "units": "%", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Floating Ice Shelf  Area Fraction", 
+            "comment": "Fraction of grid cell covered by floating ice shelf, the component of the ice sheet that is flowing over seawater", 
+            "dimensions": "longitude latitude", 
+            "out_name": "sftflf", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "sftgrf": {
+            "modeling_realm": "landIce", 
+            "standard_name": "grounded_ice_sheet_area_fraction", 
+            "units": "%", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Grounded Ice Sheet  Area Fraction", 
+            "comment": "Fraction of grid cell covered by grounded ice sheet", 
+            "dimensions": "longitude latitude", 
+            "out_name": "sftgrf", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "siltfrac": {
+            "modeling_realm": "atmos", 
+            "standard_name": "", 
+            "units": "1.0", 
+            "cell_methods": "area: mean where land", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Silt Fraction", 
+            "comment": "", 
+            "dimensions": "longitude latitude sdepth", 
+            "out_name": "siltfrac", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "slthick": {
+            "modeling_realm": "land", 
+            "standard_name": "", 
+            "units": "m", 
+            "cell_methods": "area: mean where land", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Thickness of Soil Layers", 
+            "comment": "", 
+            "dimensions": "longitude latitude sdepth", 
+            "out_name": "slthick", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "wilt": {
+            "modeling_realm": "land", 
+            "standard_name": "", 
+            "units": "%", 
+            "cell_methods": "area: mean where land", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Wilting Point", 
+            "comment": "", 
+            "dimensions": "longitude latitude sdepth", 
+            "out_name": "wilt", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }
+    }
+}
diff --git a/TestTables/CMIP6_emMon.json b/TestTables/CMIP6_Emon.json
similarity index 90%
rename from TestTables/CMIP6_emMon.json
rename to TestTables/CMIP6_Emon.json
index 21d3f02..4b1833b 100644
--- a/TestTables/CMIP6_emMon.json
+++ b/TestTables/CMIP6_Emon.json
@@ -1,24 +1,24 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table emMon", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table Emon", 
         "realm": "atmos", 
         "frequency": "mon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "30.00000", 
-        "generic_levels": "", 
+        "generic_levels": "alevel olevel", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "H2p": {
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "2H in total precipitation", 
             "comment": "Roche - LSCE", 
@@ -35,7 +35,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "2H in solid precipitation", 
             "comment": "Roche - LSCE", 
@@ -52,7 +52,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "", 
-            "cell_methods": "", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "H2 in water vapor", 
             "comment": "Roche - LSCE", 
@@ -69,7 +69,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "17O in total precipitation", 
             "comment": "Roche - LSCE", 
@@ -86,7 +86,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "17O in solid precipitation", 
             "comment": "Roche - LSCE", 
@@ -103,7 +103,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "", 
-            "cell_methods": "", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "O17 in water vapor", 
             "comment": "Roche - LSCE", 
@@ -120,7 +120,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "18O in total precipitation", 
             "comment": "Roche - LSCE", 
@@ -137,7 +137,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "18O in solid precipitation", 
             "comment": "Roche - LSCE", 
@@ -154,7 +154,7 @@
             "modeling_realm": "ocean", 
             "standard_name": "", 
             "units": "", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacello", 
             "long_name": "O18 in sea water", 
             "comment": "Roche - LSCE", 
@@ -171,7 +171,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "", 
-            "cell_methods": "", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "O18 in water vapor", 
             "comment": "Roche - LSCE", 
@@ -184,68 +184,34 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "al": {
-            "modeling_realm": "atmos", 
+        "albs": {
+            "modeling_realm": "aerosol", 
             "standard_name": "surface_albedo", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
+            "units": "1.0", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Albedo", 
-            "comment": "", 
+            "long_name": "planetary albedo", 
+            "comment": "Grid cell average albedo for all wavelengths.", 
             "dimensions": "longitude latitude time", 
-            "out_name": "al", 
-            "type": "", 
+            "out_name": "albs", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "alb": {
-            "modeling_realm": "atmos", 
+        "albsrfc": {
+            "modeling_realm": "aerosol", 
             "standard_name": "surface_albedo", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Surface Albedo", 
+            "long_name": "surface albedo", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "alb", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "albisccp": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_albedo", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "ISCCP Mean Cloud Albedo", 
-            "comment": "ISCCP Mean Cloud Albedo. Time-means are weighted by the ISCCP Total Cloud Fraction {:cltisccp} - see  http://cfmip.metoffice.com/COSP.html", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "albisccp", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "baresoilFrac": {
-            "modeling_realm": "land", 
-            "standard_name": "area_fraction", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Bare Soil Fraction", 
-            "comment": "Percentage of entire grid cell  that is covered by bare soil.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "baresoilFrac", 
-            "type": "real", 
+            "out_name": "albsrfc", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -255,7 +221,7 @@
         "burntFractionAll": {
             "modeling_realm": "land", 
             "standard_name": "burned_area_fraction_OR_area_fraction", 
-            "units": "fraction", 
+            "units": "%", 
             "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Fraction of grid cell burned due to all fires including natural and anthropogenic fires and those associated with anthropogenic land use change", 
@@ -341,7 +307,7 @@
             "modeling_realm": "land", 
             "standard_name": "total_land_c14", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass of 14C in all terrestrial carbon pools", 
             "comment": "as specified by C4MIP", 
@@ -358,7 +324,7 @@
             "modeling_realm": "land", 
             "standard_name": "litter_c14_content", 
             "units": "kg m-2", 
-            "cell_methods": "area: mean where land time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass of 14C in Litter Pool", 
             "comment": "as specified by C4MIP", 
@@ -375,7 +341,7 @@
             "modeling_realm": "land", 
             "standard_name": "soil_c14_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass of 14C in Soil Pool", 
             "comment": "as specified by C4MIP", 
@@ -406,10 +372,10 @@
             "ok_max_mean_abs": ""
         }, 
         "cLand": {
-            "modeling_realm": "land", 
+            "modeling_realm": "atmos", 
             "standard_name": "total_land_carbon", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Total Carbon in All Terrestrial Carbon Pools", 
             "comment": "as specified by C4MIP", 
@@ -528,7 +494,7 @@
             "modeling_realm": "land", 
             "standard_name": "miscellaneous_living_matter_carbon_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Carbon Mass in Other Living Compartments on Land", 
             "comment": "e.g., labile, fruits, reserves, etc.", 
@@ -650,7 +616,7 @@
             "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Carbon mass in each model soil pool (summed over vertical levels)", 
-            "comment": "for models with multiple soil carbon pools, report each pool here. If models also have vertical discretaisation these should be aggregated ", 
+            "comment": "for models with multiple soil carbon pools, report each pool here. If models also have vertical discretaisation these should be aggregated", 
             "dimensions": "longitude latitude time", 
             "out_name": "cSoilPools", 
             "type": "", 
@@ -783,7 +749,7 @@
             "modeling_realm": "land", 
             "standard_name": "wood_carbon_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Carbon Mass in Wood", 
             "comment": "Carbon mass per unit area in wood, including sapwood and hardwood.", 
@@ -830,23 +796,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "clcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Percentage Cloud Cover", 
-            "comment": "Percentage cloud cover at CALIPSO standard heights.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "clcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "clcalipsoice": {
             "modeling_realm": "atmos", 
             "standard_name": "ice_cloud_area_fraction_in_atmosphere_layer", 
@@ -902,7 +851,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "number_concentration_of_ice_crystals_in_air_at_ice_cloud_top", 
             "units": "m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Crystal Number Concentration of Cloud Tops", 
             "comment": "Concentration 'as seen from space' over ice-cloud portion of grid cell.  This is the value from uppermost model layer with ice cloud or, if available, it is the sum over all ice cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere. Weight by total ice cloud top fraction (as seen from TOA) of each time sample when computing monthly mean.", 
@@ -919,7 +868,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "number_concentration_of_cloud_liquid_water_particles_in_air_at_liquid_water_cloud_top", 
             "units": "m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Cloud Droplet Number Concentration of Cloud Tops", 
             "comment": "Droplets are liquid only.  Report concentration 'as seen from space' over liquid cloudy portion of grid cell.  This is the value from uppermost model layer with liquid cloud or, if available, it is better to sum over all liquid cloud tops, no matter where they occur, as long as they are seen from the top of the atmosphere. Weight by total liquid cloud top fraction of  (as seen from TOA) each time sample when computing monthly mean.", 
@@ -936,7 +885,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_number_content_of_cloud_droplets", 
             "units": "m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Column Integrated Cloud Droplet Number", 
             "comment": "Droplets are liquid only.  Values are weighted by liquid cloud fraction in each layer when vertically integrating, and for monthly means the samples are weighted by total liquid cloud fraction (as seen from TOA).", 
@@ -966,30 +915,13 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "clhcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Percentage High Level Cloud", 
-            "comment": "Percentage cloud cover in layer centred on 220hPa", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "clhcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "climodis": {
             "modeling_realm": "atmos", 
             "standard_name": "ice_cloud_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "MODIS Ice Cloud Fraction", 
+            "long_name": "MODIS Ice Cloud Area Percentage", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
             "out_name": "climodis", 
@@ -1000,57 +932,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "clisccp": {
-            "modeling_realm": "atmos", 
-            "standard_name": "isccp_cloud_area_fraction", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "ISCCP Cloud Area Fraction", 
-            "comment": "Percentage cloud cover in optical depth categories.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "clisccp", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "cllcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Percentage Low Level Cloud", 
-            "comment": "Percentage cloud cover in layer centred on 840hPa", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "cllcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "clmcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Percentage Mid Level Cloud", 
-            "comment": "Percentage cloud cover in layer centred on 560hPa", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "clmcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "clmisr": {
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
@@ -1059,7 +940,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Percentage Cloud Cover as Calculated by the MISR Simulator", 
             "comment": "Cloud percentage in spectral bands and layers as observed by the Multi-angle Imaging SpectroRadiometer (MISR) instrument.", 
-            "dimensions": "longitude latitude alt16 misrBands time", 
+            "dimensions": "longitude latitude alt16 tau time", 
             "out_name": "clmisr", 
             "type": "", 
             "positive": "", 
@@ -1072,9 +953,9 @@
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "MODIS Total Cloud Fraction", 
+            "long_name": "MODIS Total Cloud Cover Percentage", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
             "out_name": "cltmodis", 
@@ -1089,7 +970,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "liquid_cloud_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "MODIS Liquid Cloud Fraction", 
             "comment": "", 
@@ -1105,11 +986,11 @@
         "clwvic": {
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_convective_cloud_condensed_water_content", 
-            "units": "kg m-2 ", 
-            "cell_methods": "time: mean", 
+            "units": "kg m-2", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Convective Condensed Water Path", 
-            "comment": "calculate mass of convective 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). This includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.  ", 
+            "comment": "calculate mass of convective 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). This includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
             "dimensions": "longitude latitude time", 
             "out_name": "clwvic", 
             "type": "", 
@@ -1119,11 +1000,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "co23D": {
+            "modeling_realm": "atmos", 
+            "standard_name": "CO2_3D_tracer", 
+            "units": "kg kg-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "3D field of transported CO2", 
+            "comment": "report 3D field of model simulated atmospheric CO2 mass mixing ration on model levels", 
+            "dimensions": "longitude latitude alevel time", 
+            "out_name": "co23D", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "co2s": {
             "modeling_realm": "atmos", 
             "standard_name": "mass_fraction_of_carbon_dioxide_in_air_OR_mole_fraction_of_carbon_dioxide_in_air_OR_mole_concentration_of_carbon_dioxide_in_air", 
             "units": "1e-06", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Atmosphere CO2", 
             "comment": "As co2, but only at the surface", 
@@ -1138,9 +1036,9 @@
         }, 
         "columnmassflux": {
             "modeling_realm": "atmos", 
-            "standard_name": "", 
-            "units": "kg m-1 s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "atmosphere_net_upward_convective_mass_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Column Integrated Mass Flux", 
             "comment": "Column integral of (mcu-mcd)", 
@@ -1191,7 +1089,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "mass_concentration_of_dust_dry_aerosol_in_air", 
             "units": "kg m-3", 
-            "cell_methods": "", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Concentration of Dust", 
             "comment": "", 
@@ -1227,7 +1125,7 @@
             "units": "%", 
             "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Percentage Cover by C3 Crops ", 
+            "long_name": "Percentage Cover by C3 Crops", 
             "comment": "Percentage of entire grid cell covered by C3 crops", 
             "dimensions": "longitude latitude time", 
             "out_name": "cropFracC3", 
@@ -1242,9 +1140,9 @@
             "modeling_realm": "land", 
             "standard_name": "crop_fraction_c4", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Percentage Cover by C4 Crops ", 
+            "long_name": "Percentage Cover by C4 Crops", 
             "comment": "Percentage of entire grid cell covered by C4 crops", 
             "dimensions": "longitude latitude time", 
             "out_name": "cropFracC4", 
@@ -1259,7 +1157,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_total_deposition", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Total Deposition Rate of Dust", 
             "comment": "Balkanski - LSCE", 
@@ -1280,7 +1178,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Tendency of Eastward Wind from Numerical Artefacts", 
             "comment": "Other sub-grid scale/numerical zonal drag excluding that already provided for the parameterized orographic and non-ororgraphic gravity waves. This would be used to calculate the total 'diabatic drag'. Contributions to this additional drag such Rayleigh friction and diffusion that can be calculated from the monthly mean wind fields should not be included, but details (e.g. coefficients) of the friction and/or diffusion used in the model should be provided separately.", 
-            "dimensions": "longitude latitude plev23 time", 
+            "dimensions": "longitude latitude plev19 time", 
             "out_name": "diabdrag", 
             "type": "", 
             "positive": "", 
@@ -1290,16 +1188,16 @@
             "ok_max_mean_abs": ""
         }, 
         "dissi13c": {
-            "modeling_realm": "land", 
-            "standard_name": "mole_concentration_of_dissolved_inorganic_c13_in_sea_water", 
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon13_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "area: mean where sea time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Concentration of DI13C", 
-            "comment": "as specified by C4MIP", 
-            "dimensions": "longitude latitude alevel time", 
+            "cell_methods": "area: time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Dissolved Inorganic 13Carbon Concentration", 
+            "comment": "Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration", 
+            "dimensions": "longitude latitude olevel time", 
             "out_name": "dissi13c", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -1323,17 +1221,17 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "dms": {
-            "modeling_realm": "land", 
-            "standard_name": "mole_fraction_of_dimethyl_sulfide_in_air", 
-            "units": "mol mol-1", 
+        "dissicnat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_natural_component", 
+            "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "DMS volume mixing ratio", 
-            "comment": "", 
+            "long_name": "Natural Dissolved Inorganic Carbon Concentration", 
+            "comment": "Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration at preindustrial atmospheric xCO2", 
             "dimensions": "longitude latitude olevel time", 
-            "out_name": "dms", 
-            "type": "", 
+            "out_name": "dissicnat", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -1341,101 +1239,16 @@
             "ok_max_mean_abs": ""
         }, 
         "ec550aer": {
-            "modeling_realm": "atmos", 
-            "standard_name": "volume_extinction_coefficient_in_air_due_to_ambient_aerosol", 
+            "modeling_realm": "aerosol", 
+            "standard_name": "volume_extinction_coefficient_in_air_due_to_ambient_aerosol_particles", 
             "units": "m-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Ambient Aerosol Extinction at 550 nm", 
-            "comment": "'ambient' means 'wetted'.  ", 
+            "long_name": "Aerosol extinction coefficient", 
+            "comment": "Aerosol Extinction @550nm", 
             "dimensions": "longitude latitude alevel time", 
             "out_name": "ec550aer", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "eparag100": {
-            "modeling_realm": "ocean", 
-            "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Aragonite", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "eparag100", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "epc100": {
-            "modeling_realm": "ocean", 
-            "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Particle Organic Carbon", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "epc100", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "epcalc100": {
-            "modeling_realm": "ocean", 
-            "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Calcite", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "epcalc100", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "epn100": {
-            "modeling_realm": "ocean", 
-            "standard_name": "sinking_mole_flux_of_particulate_nitrogen_in_sea_water", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Particulate Nitrogen", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "epn100", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "epp100": {
-            "modeling_realm": "ocean", 
-            "standard_name": "sinking_mole_flux_of_particulate_phosphorus_in_sea_water", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Particulate Phosphorus", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "epp100", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -1443,10 +1256,10 @@
             "ok_max_mean_abs": ""
         }, 
         "evspsblpot": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "water_potential_evaporation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Potential Evapotranspiration", 
             "comment": "at surface; potential flux of water into the atmosphere due to conversion of both liquid and solid phases to vapor (from underlying surface and vegetation)", 
@@ -1599,7 +1412,7 @@
             "modeling_realm": "land", 
             "standard_name": "asymbiontic_biological_nitrogen_fixation", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "asymbiontic biological nitrogen fixation", 
             "comment": "as specified by C4MIP", 
@@ -1616,7 +1429,7 @@
             "modeling_realm": "land", 
             "standard_name": "symbiontic_biological_nitrogen_fixation", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "symbiontic biological nitrogen fixation", 
             "comment": "as specified by C4MIP", 
@@ -1636,7 +1449,7 @@
             "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Lateral transfer of carbon out of gridcell that eventually goes into ocean", 
-            "comment": "leached carbon etc that goes into run off or river routing and finds its way into ocean should be reported here. ", 
+            "comment": "leached carbon etc that goes into run off or river routing and finds its way into ocean should be reported here.", 
             "dimensions": "longitude latitude time", 
             "out_name": "fCLandToOcean", 
             "type": "", 
@@ -1650,7 +1463,7 @@
             "modeling_realm": "land", 
             "standard_name": "deforested_biomass_due_to_anthorpogenic_land_use_change", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Deforested biomass as a result of anthropogenic land use change", 
             "comment": "as specified by C4MIP", 
@@ -1786,7 +1599,7 @@
             "modeling_realm": "land", 
             "standard_name": "surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Net Carbon Mass Flux into Atmosphere due to Land Use Change", 
             "comment": "Carbon mass flux per unit area into atmosphere due to human changes to land (excluding forest regrowth) accounting possibly for different time-scales related to fate of the wood, for example.", 
@@ -1806,7 +1619,7 @@
             "cell_methods": "area: time: mean where landuse", 
             "cell_measures": "area: areacella", 
             "long_name": "carbon transferred directly to atmosphere due to any land-use or land-cover change activities including deforestation or agricultural fire", 
-            "comment": " This annual mean flux refers to the transfer of carbon directly to the atmosphere due to any land-use or land-cover change activities.  Include carbon transferred due to deforestation or agricultural directly into atsmophere, and  emissions form anthropogenic pools into atmosphere", 
+            "comment": "This annual mean flux refers to the transfer of carbon directly to the atmosphere due to any land-use or land-cover change activities.  Include carbon transferred due to deforestation or agricultural directly into atsmophere, and  emissions form anthropogenic pools into atmosphere", 
             "dimensions": "longitude latitude landUse time", 
             "out_name": "fLulccAtmLut", 
             "type": "", 
@@ -1819,11 +1632,11 @@
         "fLulccProductLut": {
             "modeling_realm": "land", 
             "standard_name": "carbon_mass_flux_into_wood_and_agricultural_product_pools_due_to_anthropogenic_land_use_or_land_cover_change", 
-            "units": "kg s-1", 
+            "units": "kg m-2 s-1", 
             "cell_methods": "area: time: mean where landuse", 
             "cell_measures": "area: areacella", 
             "long_name": "carbon harvested due to land-use or land-cover change process that enters anthropogenic product pools on tile", 
-            "comment": " This annual mean flux refers to the transfer of carbon primarily through harvesting land use into anthropogenic product pools, e.g.,deforestation or wood harvestingfrom primary or secondary lands, food harvesting on croplands, harvesting (grazing) by animals on pastures.", 
+            "comment": "This annual mean flux refers to the transfer of carbon primarily through harvesting land use into anthropogenic product pools, e.g.,deforestation or wood harvestingfrom primary or secondary lands, food harvesting on croplands, harvesting (grazing) by animals on pastures.", 
             "dimensions": "longitude latitude landUse time", 
             "out_name": "fLulccProductLut", 
             "type": "", 
@@ -1836,11 +1649,11 @@
         "fLulccResidueLut": {
             "modeling_realm": "land", 
             "standard_name": "carbon_mass_flux_into_soil_and_litter_due_to_anthropogenic_land_use_or_land_cover_change", 
-            "units": "kg s-1", 
+            "units": "kg m-2 s-1", 
             "cell_methods": "area: time: mean where landuse", 
             "cell_measures": "area: areacella", 
             "long_name": "carbon transferred to soil or litter pools due to land-use or land-cover change processes on tile", 
-            "comment": " This annual mean flux refers to the transfer of carbon into soil or litter pools due to any land use or land-cover change activities", 
+            "comment": "This annual mean flux refers to the transfer of carbon into soil or litter pools due to any land use or land-cover change activities", 
             "dimensions": "longitude latitude landUse time", 
             "out_name": "fLulccResidueLut", 
             "type": "", 
@@ -1854,9 +1667,9 @@
             "modeling_realm": "land", 
             "standard_name": "land_net_n2o_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Total land N2O flux ", 
+            "long_name": "Total land N2O flux", 
             "comment": "as specified by C4MIP", 
             "dimensions": "longitude latitude time", 
             "out_name": "fN2O", 
@@ -1891,7 +1704,7 @@
             "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Lateral transfer of nitrogen out of gridcell that eventually goes into ocean", 
-            "comment": "leached nitrogen etc that goes into run off or river routing and finds its way into ocean should be reported here. ", 
+            "comment": "leached nitrogen etc that goes into run off or river routing and finds its way into ocean should be reported here.", 
             "dimensions": "longitude latitude time", 
             "out_name": "fNLandToOcean", 
             "type": "", 
@@ -1924,7 +1737,7 @@
             "units": "kg m-2 s-1", 
             "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Total land NOx flux ", 
+            "long_name": "Total land NOx flux", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
             "out_name": "fNOx", 
@@ -2007,7 +1820,7 @@
             "modeling_realm": "land", 
             "standard_name": "deposition_of_oxidised_nitrogen_onto_land", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Dry and Wet Deposition of Oxidised Reactive Nitrogen onto Land", 
             "comment": "as specified by C4MIP", 
@@ -2024,7 +1837,7 @@
             "modeling_realm": "land", 
             "standard_name": "deposition_of_reduced_nitrogen_onto_land", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Dry and Wet Deposition of Reduced Reactive Nitrogen onto Land", 
             "comment": "as specified by C4MIP", 
@@ -2296,7 +2109,7 @@
             "modeling_realm": "land", 
             "standard_name": "surface_upward_heat_flux_due_to_anthropogenic_energy_consumption", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Anthropogenic heat flux generated from non-renewable human primary energy consumption, including energy use by vehicles, commercial and residential buildings, industry, and power plants.  Primary energy refers to energy in natural resources, fossil and nonfossil, before conversion into other forms, such as electricity.", 
             "comment": "", 
@@ -2383,7 +2196,7 @@
             "units": "mol m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Rate of Change of Dissolved Inorganic Phosphate due to Biological Activity", 
+            "long_name": "Rate of Change of Dissolved Inorganic Phosphorus due to Biological Activity", 
             "comment": "vertical integral of net biological terms in time rate of change of phosphate", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "fbddtdip", 
@@ -2400,7 +2213,7 @@
             "units": "mol m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Rate of Change of Dissolved Inorganic Silicate due to Biological Activity", 
+            "long_name": "Rate of Change of Dissolved Inorganic Silicon due to Biological Activity", 
             "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic silicate", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "fbddtdisi", 
@@ -2417,7 +2230,7 @@
             "units": "mol m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Rate of Change of Alkalinity", 
+            "long_name": "Rate of Change of Total Alkalinity", 
             "comment": "vertical integral of net time rate of change of alkalinity", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "fddtalk", 
@@ -2502,7 +2315,7 @@
             "units": "mol m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Rate of Change of Net Dissolved Inorganic Silicate", 
+            "long_name": "Rate of Change of Net Dissolved Inorganic Silicon", 
             "comment": "vertical integral of net time rate of change of dissolved inorganic silicate", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "fddtdisi", 
@@ -2513,25 +2326,8 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fg13co2": {
-            "modeling_realm": "ocean", 
-            "standard_name": "air_sea_flux_of_13CO2", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Total air-sea flux of 13CO2", 
-            "comment": "as specified by C4MIP", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fg13co2", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "fg14co2": {
-            "modeling_realm": "land", 
+            "modeling_realm": "ocnBgchem", 
             "standard_name": "air_sea_flux_of_14CO2", 
             "units": "mol m-2 s-1", 
             "cell_methods": "time: mean", 
@@ -2553,7 +2349,7 @@
             "units": "kg m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Surface Downward abiotic 14CO2 Flux", 
+            "long_name": "Surface Downward Flux of Abiotic 14CO2", 
             "comment": "Gas exchange flux of abiotic 14CO2 (positive into ocean)", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "fg14co2abio", 
@@ -2570,7 +2366,7 @@
             "units": "kg m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Surface Downward abiotic CO2 Flux", 
+            "long_name": "Surface Downward Flux of Abiotic CO2", 
             "comment": "Gas exchange flux of abiotic CO2 (positive into ocean)", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "fgco2abio", 
@@ -2587,7 +2383,7 @@
             "units": "kg m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Surface Downward natural CO2 Flux", 
+            "long_name": "Surface Downward Flux of Natural CO2", 
             "comment": "Gas exchange flux of natural CO2 (positive into ocean)", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "fgco2nat", 
@@ -2604,12 +2400,12 @@
             "units": "mol m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Surface Upward DMS Flux", 
+            "long_name": "Surface Upward Flux of DMS", 
             "comment": "Gas exchange flux of DMS (positive into atmosphere)", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "fgdms", 
             "type": "real", 
-            "positive": "up", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
@@ -2633,10 +2429,10 @@
             "ok_max_mean_abs": ""
         }, 
         "flashrate": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "atmosChem", 
             "standard_name": "lightning_flash_rate", 
             "units": "km-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Lightning Flash Rate", 
             "comment": "proposed name: lightning_flash_rate (units to be interpreted as 'counts km-2 s-1)", 
@@ -2668,11 +2464,11 @@
         }, 
         "gppLut": {
             "modeling_realm": "land", 
-            "standard_name": "gross_primary_land_productivity_of_carbon", 
+            "standard_name": "gross_primary_productivity_of_biomass_expressed_as_carbon", 
             "units": "kg m-2 s-1", 
             "cell_methods": "area: time: mean where landuse", 
             "cell_measures": "area: areacella", 
-            "long_name": "Gross Primary Productivity on Land Use Tile", 
+            "long_name": "gross primary productivity on land use tile", 
             "comment": "", 
             "dimensions": "longitude latitude landUse time", 
             "out_name": "gppLut", 
@@ -2721,7 +2517,7 @@
             "modeling_realm": "land", 
             "standard_name": "gross_primary_productivity_of_c13", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: mean where land time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass Flux of 13C out of Atmosphere due to Gross Primary Production on Land", 
             "comment": "as specified by C4MIP", 
@@ -2738,7 +2534,7 @@
             "modeling_realm": "land", 
             "standard_name": "gross_primary_productivity_of_c14", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass Flux of 14C out of Atmosphere due to Gross Primary Production on Land", 
             "comment": "as specified by C4MIP", 
@@ -2751,30 +2547,13 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "grassFrac": {
-            "modeling_realm": "land", 
-            "standard_name": "area_fraction", 
-            "units": "%", 
-            "cell_methods": "area: mean where land time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Natural Grass Fraction", 
-            "comment": "Percentage of entire grid cell that is covered by natural grass.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "grassFrac", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "grassFracC3": {
             "modeling_realm": "land", 
             "standard_name": "grass_fraction_c3", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "C3 grass fraction", 
+            "long_name": "C3 grass Area Percentage", 
             "comment": "as specified by C4MIP", 
             "dimensions": "longitude latitude time", 
             "out_name": "grassFracC3", 
@@ -2789,9 +2568,9 @@
             "modeling_realm": "land", 
             "standard_name": "grass_fraction_c4", 
             "units": "%", 
-            "cell_methods": "area: mean where land time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "C4 grass fraction", 
+            "long_name": "C4 grass Area Percentage", 
             "comment": "as specified by C4MIP", 
             "dimensions": "longitude latitude time", 
             "out_name": "grassFracC4", 
@@ -2823,7 +2602,7 @@
             "modeling_realm": "ocean", 
             "standard_name": "heat_content_of_ocean_layer", 
             "units": "m K", 
-            "cell_methods": "", 
+            "cell_methods": "area: time: mean", 
             "cell_measures": "area: areacello", 
             "long_name": "Heat content of upper 300 meters", 
             "comment": "Used in PMIP2", 
@@ -2870,6 +2649,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "hursminCrop": {
+            "modeling_realm": "", 
+            "standard_name": "relative_humidity", 
+            "units": "%", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Daily Minimum Near-Surface Relative Humidity over Crop Tile", 
+            "comment": "minimum near-surface (usually, 2 meter) relative humidity (add cell_method attribute 'time: min')", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "hursminCrop", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "hus": {
             "modeling_realm": "atmos", 
             "standard_name": "specific_humidity", 
@@ -2921,28 +2717,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intdoc": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_mass_content_of_dissolved_organic_carbon", 
-            "units": "kg m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Dissolved Organic Carbon Content", 
-            "comment": "Vertically integrated DOC (explicit pools only)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "intdoc", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "intuadse": {
             "modeling_realm": "atmos", 
             "standard_name": "vertical_integral_eastward_wind_by_dry_static_energy", 
             "units": "1.e6 J m-1 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Vertically integrated Eastward dry transport (cp.T +zg).u (Mass_weighted_vertical integral of the product of northward wind by dry static_energy per mass unit)", 
             "comment": "Used in PMIP2", 
@@ -2959,7 +2738,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "vertical_integral_eastward_wind_by_total_water", 
             "units": "kg m-1 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Vertically integrated Eastward moisture transport (Mass_weighted_vertical integral of the product of eastward wind by total water mass per unit mass)", 
             "comment": "Used in PMIP2", 
@@ -2976,7 +2755,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "vertical_integral_northward_wind_by_dry_static_energy", 
             "units": "1.e6 J m-1 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Vertically integrated Northward dry transport (cp.T +zg).v (Mass_weighted_vertical integral of the product of northward wind by dry static_energy per mass unit)", 
             "comment": "Used in PMIP2", 
@@ -2993,7 +2772,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "vertical_integral_northward_wind_by_total_water", 
             "units": "kg m-1 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Vertically integrated Northward moisture transport (Mass_weighted_vertical integral of the product of northward wind by total water mass per unit mass)", 
             "comment": "Used in PMIP2", 
@@ -3010,7 +2789,7 @@
             "modeling_realm": "land", 
             "standard_name": "surface_downward_water_flux_due_to_irrigation", 
             "units": "kg s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Irrigation flux including any irrigation for crops, trees, pasture, or urban lawns", 
             "comment": "", 
@@ -3063,7 +2842,7 @@
             "units": "1.0", 
             "cell_methods": "area: time: mean where landuse", 
             "cell_measures": "area: areacella", 
-            "long_name": "leaf area index on land use tile", 
+            "long_name": "Leaf Area Index on Land Use Tile", 
             "comment": "Note that if tile does not model lai, for example, on the urban tile, then should be reported as missing value", 
             "dimensions": "longitude latitude landUse time", 
             "out_name": "laiLut", 
@@ -3078,7 +2857,7 @@
             "modeling_realm": "land", 
             "standard_name": "lateral_carbon_transfer_over_land", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Lateral transfer of carbon into (positive) or out of (negative) a grid cell.", 
             "comment": "as specified by C4MIP", 
@@ -3095,7 +2874,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_dust_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of Dust", 
             "comment": "", 
@@ -3112,7 +2891,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_sulfate_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of SO4", 
             "comment": "", 
@@ -3129,7 +2908,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_mass_content_of_seasalt_dry_aerosol", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Load of Seasalt", 
             "comment": "", 
@@ -3146,7 +2925,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "potential_temperature_difference_between_700hPa_and_1000hPa", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "lower tropospheric stability", 
             "comment": "proposed name: potential_temperature_difference_between_700hPa_and_1000hPa (Lower Tropospheric Stability)", 
@@ -3159,11 +2938,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "lwp": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "atmosphere_mass_content_of_cloud_liquid_water", 
+            "units": "kg m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "liquid water path", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "lwp", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "lwsrfasdust": {
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_all_sky_surface_longwave_flux_to_dust_ambient_aerosol_particles", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "All-sky Surface Longwave radiative flux due to Dust", 
             "comment": "Balkanski - LSCE", 
@@ -3180,7 +2976,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_clear_sky_surface_longwave_flux_to_dust_ambient_aerosol_particles", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Clear-sky Surface Longwave radiative flux due to Dust", 
             "comment": "Balkanski - LSCE", 
@@ -3193,11 +2989,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "lwtoaasdust": {
+            "modeling_realm": "atmos", 
+            "standard_name": "toa_instantaneous_longwave_forcing", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "all sky lw-rf dust at toa", 
+            "comment": "proposed name: toa_instantaneous_longwave_forcing_due_to_dust_ambient_aerosol", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "lwtoaasdust", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "lwtoacs": {
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_clear_sky_top_of_atmosphere_longwave_flux_to_dust_ambient_aerosol_particles___2D_field_radiative_properties", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Clear-sky TOA Longwave radiative flux due to Dust", 
             "comment": "Balkanski - LSCE", 
@@ -3210,6 +3023,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "lwtoacsaer": {
+            "modeling_realm": "atmos", 
+            "standard_name": "toa_instantaneous_longwave_forcing", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "clear sky lw-rf aerosols at toa", 
+            "comment": "proposed name: toa_instantaneous_longwave_forcing_due_to_ambient_aerosol_assuming_clear_sky", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "lwtoacsaer", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "mcd": {
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_downdraft_convective_mass_flux", 
@@ -3231,7 +3061,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_emission", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Wet diameter mode coarse insoluble", 
             "comment": "Balkanski - LSCE", 
@@ -3244,28 +3074,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "mmraerh2o": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mass_fraction_of_water_in_ambient_aerosol_particles_in_air", 
-            "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Aerosol water mass mixing ratio", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "mmraerh2o", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "mmraerso4": {
             "modeling_realm": "atmos", 
             "standard_name": "mass_fraction_of_sulfate_dry_aerosol_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Aerosol Sulfate Mass Mixing Ratio", 
             "comment": "", 
@@ -3282,7 +3095,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_elemental_carbon_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Elemental carbon mass mixing ratio", 
             "comment": "", 
@@ -3299,7 +3112,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_dust_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Dust aerosol mass mixing ratio", 
             "comment": "", 
@@ -3316,7 +3129,7 @@
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_nitrate_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "NO3 aerosol mass mixing ratio", 
             "comment": "", 
@@ -3329,62 +3142,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "mmroa": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mass_fraction_of_particulate_organic_matter_dry_aerosol_particles_in_air", 
-            "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Total organic aerosol mass mixing ratio", 
-            "comment": "We recommend a scale factor of POM=1.4*OC, unless your model has more detailed info available.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "mmroa", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "mmrso4": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mass_fraction_of_sulfate_dry_aerosol_particles_in_air", 
-            "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Aerosol sulfate mass mixing ratio", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "mmrso4", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "mmrsoa": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mass_fraction_of_secondary_particulate_organic_matter_dry_aerosol_particles_in_air", 
-            "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Secondary organic aerosol mass mixing ratio", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "mmrsoa", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "mmrss": {
             "modeling_realm": "aerosol", 
             "standard_name": "mass_fraction_of_seasalt_dry_aerosol_particles_in_air", 
             "units": "kg kg-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Sea Salt mass mixing ratio", 
             "comment": "", 
@@ -3401,9 +3163,9 @@
             "modeling_realm": "land", 
             "standard_name": "soil_liquid_water_content", 
             "units": "kg m-2", 
-            "cell_methods": "area: mean where land time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Soil Liquid Water Content ", 
+            "long_name": "Soil Liquid Water Content", 
             "comment": "as specified by C4MIP", 
             "dimensions": "longitude latitude time", 
             "out_name": "mrlso", 
@@ -3420,7 +3182,7 @@
             "units": "kg m-2 s-1", 
             "cell_methods": "area: time: mean where landuse", 
             "cell_measures": "area: areacella", 
-            "long_name": "Total runoff from land use tile ", 
+            "long_name": "Total runoff from land use tile", 
             "comment": "the total runoff (including 'drainage' through the base of the soil model) leaving the land use tile portion of the grid cell", 
             "dimensions": "longitude latitude landUse time", 
             "out_name": "mrroLut", 
@@ -3483,10 +3245,10 @@
             "ok_max_mean_abs": ""
         }, 
         "mrsol": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "total_moisture_content_of_soil_layer", 
             "units": "kg m-2", 
-            "cell_methods": "", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Total water content of soil layer", 
             "comment": "as specified by C4MIP", 
@@ -3499,23 +3261,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "mrsos": {
-            "modeling_realm": "land", 
-            "standard_name": "moisture_content_of_soil_layer", 
-            "units": "kg m-2", 
-            "cell_methods": "area: mean where land time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Moisture in Upper Portion of Soil Column", 
-            "comment": "The mass of water in all phases in the upper 10cm of the  soil layer.", 
-            "dimensions": "longitude latitude sdepth time", 
-            "out_name": "mrsos", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "mrsosLut": {
             "modeling_realm": "land", 
             "standard_name": "moisture_content_of_soil_layer", 
@@ -3537,7 +3282,7 @@
             "modeling_realm": "land", 
             "standard_name": "total_water_storage", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Total water storage in a grid cell", 
             "comment": "as specified by C4MIP", 
@@ -3554,7 +3299,7 @@
             "modeling_realm": "land", 
             "standard_name": "total_land_nitrogen", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Total nitrogen in all terrestrial nitrogen pools", 
             "comment": "as specified by C4MIP", 
@@ -3724,7 +3469,7 @@
             "modeling_realm": "land", 
             "standard_name": "nitrogen_content_of_products_of_anthropogenic_land_use_change", 
             "units": "kg m-2", 
-            "cell_methods": "area: mean where land time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Nitrogen Mass in Products of Land Use Change", 
             "comment": "as specified by C4MIP", 
@@ -3758,7 +3503,7 @@
             "modeling_realm": "land", 
             "standard_name": "soil_nitrogen_content", 
             "units": "kg m-2", 
-            "cell_methods": "area: mean where land time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Nitrogen Mass in Soil Pool", 
             "comment": "as specified by C4MIP", 
@@ -3792,7 +3537,7 @@
             "modeling_realm": "land", 
             "standard_name": "vegetation_nitrogen_content", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Nitrogen Mass in Vegetation", 
             "comment": "as specified by C4MIP", 
@@ -3807,12 +3552,12 @@
         }, 
         "necbLut": {
             "modeling_realm": "land", 
-            "standard_name": "", 
+            "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes", 
             "units": "kg m-2 s-1", 
             "cell_methods": "area: time: mean where landuse", 
             "cell_measures": "area: areacella", 
-            "long_name": "Net Rate of Carbon Accumulation (or loss) on Land Use Tile", 
-            "comment": "Computed as npp minus heterotrophic respiration minus fire minus C leaching minus harvesting/clearing. Positive rate is into the land, negative rate is from the land.  Do not include fluxes from anthropogenic pools to atmosphere", 
+            "long_name": "net rate of C accumulation (or loss) on land use tile", 
+            "comment": "Computed as npp minus heterotrophic respiration minus fire minus C leaching minus harvesting/clearing. Positive rate is into the land, negative rate is from the land.  Do not include fluxes from anthropogenic product pools to atmosphere", 
             "dimensions": "longitude latitude landUse time", 
             "out_name": "necbLut", 
             "type": "", 
@@ -3826,7 +3571,7 @@
             "modeling_realm": "land", 
             "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes_excluding_anthropogenic_land_use_change", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Net Carbon Mass Flux out of Atmophere due to Net Ecosystem Productivity on Land.", 
             "comment": "Natural flux of CO2 (expressed as a mass flux of carbon) from the atmosphere to the land calculated as the difference between uptake associated will photosynthesis and the release of CO2 from the sum of plant and soil respiration and fire.  Positive flux is into the land.  emissions from natural fires and human ignition fires as calculated by the fire module of the dynamic vegetation model, but excluding any CO2 flux from fire included in fLuc (CO2 Flux to Atmosph [...]
@@ -3843,7 +3588,7 @@
             "modeling_realm": "land", 
             "standard_name": "net_atmos_to_land_C13_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Net Mass Flux of 13C between atmosphere and land (positive into land) as a result of all processes.", 
             "comment": "as specified by C4MIP", 
@@ -3860,7 +3605,7 @@
             "modeling_realm": "land", 
             "standard_name": "net_atmos_to_land_C14_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Net Mass Flux of 14C between atmosphere and land (positive into land) as a result of all processes.", 
             "comment": "as specified by C4MIP", 
@@ -3877,7 +3622,7 @@
             "modeling_realm": "land", 
             "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Net flux of CO2 between atmosphere and land (positive into land) as a result of all processes.", 
             "comment": "as specified by C4MIP", 
@@ -3909,7 +3654,7 @@
         }, 
         "nppLut": {
             "modeling_realm": "land", 
-            "standard_name": "net_primary_land_productivity_of_carbon", 
+            "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon", 
             "units": "kg m-2 s-1", 
             "cell_methods": "area: time: mean where landuse", 
             "cell_measures": "area: areacella", 
@@ -3995,7 +3740,7 @@
         "nwdFracLut": {
             "modeling_realm": "land", 
             "standard_name": "", 
-            "units": "fraction", 
+            "units": "1", 
             "cell_methods": "area: time: mean where landuse", 
             "cell_measures": "area: areacella", 
             "long_name": "fraction of land use tile tile that is non-woody vegetation ( e.g. herbaceous crops)", 
@@ -4011,7 +3756,7 @@
         }, 
         "o2sat": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water_at_saturation", 
+            "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", 
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
@@ -4026,23 +3771,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "o3": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_ozone_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Ozone volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "o3", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "ocontempdiff": {
             "modeling_realm": "ocean", 
             "standard_name": "tendency_of_sea_water_conservative_temperature_expressed_as_heat_content_due_to_parameterized_dianeutral_mixing", 
@@ -4166,7 +3894,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_optical_thickness_due_to_dust_ambient_aerosol_particles", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Optical thickness at 443 nm Dust", 
             "comment": "Balkanski - LSCE", 
@@ -4179,11 +3907,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "od550aer": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "atmosphere_optical_thickness_due_to_ambient_aerosol_particles", 
+            "units": "1.0", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "ambient aerosol optical thickness at 550 nm", 
+            "comment": "AOD from the ambient aerosls (i.e., includes aerosol water).  Does not include AOD from stratospheric aerosols if these are prescribed but includes other possible background aerosol types. Needs a comment attribute 'wavelength: 550 nm'", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "od550aer", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "od550aerso": {
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Stratospheric Optical depth at 550 nm (all aerosols) 2D-field (here we limit the computation of OD to the stratosphere only)", 
             "comment": "Balkanski - LSCE", 
@@ -4200,7 +3945,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "strat_aerosol_optical_depth", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Stratospheric Aerosol Optical Depth at 550nm", 
             "comment": "From tropopause to stratopause as defined by the model", 
@@ -4217,7 +3962,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Stratospheric Optical depth at 550 nm (sulphate only) 2D-field (here we limit the computation of OD to the stratosphere only)", 
             "comment": "Balkanski - LSCE", 
@@ -4230,28 +3975,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "od550soa": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "atmosphere_optical_thickness_due_to_particulate_organic_matter_ambient_aerosol", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "soa aod at 550nm", 
-            "comment": "proposed name: atmosphere_optical_thickness_due_to_secondary_particulate_organic_matter_ambient_aerosol", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "od550soa", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "od865dust": {
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_optical_thickness_due_to_dust_ambient_aerosol_particles", 
             "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Optical thickness at 865 nm Dust", 
             "comment": "Balkanski - LSCE", 
@@ -4383,6 +4111,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "orog": {
+            "modeling_realm": "land", 
+            "standard_name": "surface_altitude", 
+            "units": "m", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Surface Altitude", 
+            "comment": "The surface called 'surface' means the lower boundary of the atmosphere. Altitude is the (geometric) height above the geoid, which is the reference geopotential surface. The geoid is similar to mean sea level.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "orog", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "osaltdiff": {
             "modeling_realm": "ocean", 
             "standard_name": "tendency_of_sea_water_salinity_expressed_as_salt_content_due_to_parameterized_dianeutral_mixing", 
@@ -4574,7 +4319,7 @@
             "modeling_realm": "land", 
             "standard_name": "total_precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Total precipitation", 
             "comment": "as specified by C4MIP", 
@@ -4587,67 +4332,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "pctisccp": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_pressure_at_cloud_top", 
-            "units": "Pa", 
+        "ppcalc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_calcareous_phytoplankton", 
+            "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "ISCCP Mean Cloud Top Pressure", 
-            "comment": "ISCCP Mean Cloud Top Pressure. Time-means are weighted by the ISCCP Total Cloud Fraction {:cltisccp} - see  http://cfmip.metoffice.com/COSP.html", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "pctisccp", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "pfull": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_pressure", 
-            "units": "Pa", 
-            "cell_methods": "", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Pressure at Model Full-Levels", 
-            "comment": "Air pressure on model levels", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "pfull", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "phalf": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_pressure", 
-            "units": "Pa", 
-            "cell_methods": "", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Pressure on Model Half-Levels", 
-            "comment": "Air pressure on model half-levels", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "phalf", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ppcalc": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_calcareous_phytoplankton", 
-            "units": "mol m-3 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Tendency of Mole Concentration of Organic Carbon in Sea Water due to Net Primary Production by Calcareous Phytoplankton", 
-            "comment": "Primary (organic carbon) production by the calcite-producing phytoplankton component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "ppcalc", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton", 
+            "comment": "Primary (organic carbon) production by the calcite-producing phytoplankton component alone", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "ppcalc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -4661,7 +4355,7 @@
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Diatom Primary Carbon Production", 
+            "long_name": "Net Primary Organic Carbon Production by Diatoms", 
             "comment": "Primary (organic carbon) production by the diatom component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "ppdiat", 
@@ -4678,7 +4372,7 @@
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Tendency of Mole Concentration of Organic Carbon in Sea Water due to Net Primary Production by Diazotrophs", 
+            "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", 
             "comment": "Primary (organic carbon) production by the diazotrophic phytoplankton component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "ppdiaz", 
@@ -4695,7 +4389,7 @@
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Other Phytoplankton Carbon Production", 
+            "long_name": "Net Primary Organic Carbon Production by Other Phytoplankton", 
             "comment": "Primary (organic carbon) production by other phytoplankton components alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "ppmisc", 
@@ -4712,7 +4406,7 @@
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Tendency of Mole Concentration of Organic Carbon in Sea Water due to Net Primary Production by Picophytoplankton", 
+            "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", 
             "comment": "Primary (organic carbon) production by the picophytoplankton (<2 um) component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "pppico", 
@@ -4723,6 +4417,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "prCrop": {
+            "modeling_realm": "atmos", 
+            "standard_name": "precipitation_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Precipitation over Crop Tile", 
+            "comment": "includes both liquid and solid phases", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "prCrop", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "prbigthetao": {
             "modeling_realm": "ocean", 
             "standard_name": "sea_water_redistributed_conservative_temperature", 
@@ -4740,6 +4451,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "prhmax": {
+            "modeling_realm": "atmos", 
+            "standard_name": "precipitation_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: mean time: mean within hours time: maximum over hours", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Maximum Hourly Precipitation Rate", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "prhmax", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "prthetao": {
             "modeling_realm": "ocean", 
             "standard_name": "sea_water_redistributed_potential_temperature", 
@@ -4757,16 +4485,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "qsat": {
-            "modeling_realm": "atmos", 
-            "standard_name": "saturated_humidity", 
-            "units": "", 
-            "cell_methods": "time: mean", 
+        "ps": {
+            "modeling_realm": "", 
+            "standard_name": "surface_air_pressure", 
+            "units": "Pa", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "Near-Surface Saturated Humidity", 
-            "comment": "", 
+            "long_name": "Surface Air Pressure", 
+            "comment": "surface pressure (not mean sea-level pressure), 2-D field to calculate the 3-D pressure field from hybrid coordinates", 
             "dimensions": "longitude latitude time", 
-            "out_name": "qsat", 
+            "out_name": "ps", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -4914,7 +4642,7 @@
             "modeling_realm": "land", 
             "standard_name": "plant_respiration_c13_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass Flux of 13C into Atmosphere due to Autotrophic (Plant) Respiration on Land", 
             "comment": "as specified by C4MIP", 
@@ -4931,7 +4659,7 @@
             "modeling_realm": "land", 
             "standard_name": "plant_respiration_c14_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass Flux of 14C into Atmosphere due to Autotrophic (Plant) Respiration on Land", 
             "comment": "as specified by C4MIP", 
@@ -5152,7 +4880,7 @@
             "modeling_realm": "land", 
             "standard_name": "heterotrophic_respiration_c14_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: mean where land time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass Flux of 14C into Atmosphere due to Heterotrophic Respiration on Land", 
             "comment": "as specified by C4MIP", 
@@ -5169,7 +4897,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_net_downward_longwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Net Longwave Surface Radiation", 
             "comment": "Net longwave surface radiation", 
@@ -5220,7 +4948,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Diffuse Downwelling Clear Sky Shortwave Radiation", 
             "comment": "", 
@@ -5237,7 +4965,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_diffuse_downwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Diffuse Downwelling Shortwave Radiation", 
             "comment": "", 
@@ -5254,7 +4982,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_net_downward_shortwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Net Shortwave Surface Radiation", 
             "comment": "Net downward shortwave radiation at the surface", 
@@ -5288,7 +5016,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_shortwave_flux_no_aerosol", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Clean-Sky Shortwave Radiation", 
             "comment": "Based on Ghan (2013, ACP)", 
@@ -5305,7 +5033,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_shortwave_flux_no_aerosol_assuming_clear_sky", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Clean-Sky Clear-Sky Shortwave Radiation", 
             "comment": "Based on Ghan (2013, ACP)", 
@@ -5322,7 +5050,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "mass_concentration_of_dust_dry_aerosol_in_air", 
             "units": "kg m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Concentration of Dust", 
             "comment": "mass concentration of dust dry aerosol in air in model lowest layer", 
@@ -5339,7 +5067,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "mass_concentration_of_sulfate_dry_aerosol_in_air", 
             "units": "kg m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Concentration of SO4", 
             "comment": "mass concentration of sulfate dry aerosol in air in model lowest layer.", 
@@ -5356,7 +5084,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "mass_concentration_of_seasalt_dry_aerosol_in_air", 
             "units": "kg m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Concentration of Seasalt", 
             "comment": "mass concentration of seasalt dry aerosol in air in model lowest layer", 
@@ -5373,7 +5101,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_sedimentation", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Sedimentation Flux of dust mode coarse insoluble", 
             "comment": "Balkanski - LSCE", 
@@ -5390,7 +5118,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "wind_speed", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Daily Maximum Near-Surface Wind Speed", 
             "comment": "Daily maximum near-surface (usually, 10 meters) wind speed.", 
@@ -5403,6 +5131,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "sithick": {
+            "modeling_realm": "seaIce ocean", 
+            "standard_name": "sea_ice_thickness", 
+            "units": "m", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Sea Ice Thickness", 
+            "comment": "Actual (floe) thickness of sea ice (NOT volume divided by grid area as was done in CMIP5)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "sithick", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "snowmxrat27": {
             "modeling_realm": "atmos", 
             "standard_name": "mass_fraction_of_snow_in_air", 
@@ -5458,7 +5203,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_all_sky_surface_shortwave_flux_due_to_dust_ambient_aerosol_particles", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "All-sky Surface Shortwave radiative flux due to Dust", 
             "comment": "Balkanski - LSCE", 
@@ -5475,7 +5220,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_clear_sky_surface_shortwave_flux_due_to_dust_ambient_aerosol_particles", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Clear-sky Surface Shortwave radiative flux due to Dust", 
             "comment": "Balkanski - LSCE", 
@@ -5488,6 +5233,40 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "swtoaasdust": {
+            "modeling_realm": "atmos", 
+            "standard_name": "toa_instantaneous_shortwave_forcing", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "all sky sw-rf dust at toa", 
+            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_dust_ambient_aerosol", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "swtoaasdust", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "swtoacsdust": {
+            "modeling_realm": "atmos", 
+            "standard_name": "toa_instantaneous_shortwave_forcing", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "clear sky sw-rf dust at toa", 
+            "comment": "proposed name: toa_instantaneous_shortwave_forcing_due_to_dust_ambient_aerosol_assuming_clear_sky", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "swtoacsdust", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "t2": {
             "modeling_realm": "atmos", 
             "standard_name": "square_of_air_temperature", 
@@ -5509,8 +5288,8 @@
             "modeling_realm": "ocean", 
             "standard_name": "depth_of_isosurface_of_sea_water_potential_temperature", 
             "units": "m", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
             "long_name": "20C isotherm depth", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
@@ -5573,11 +5352,45 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "tasmaxCrop": {
+            "modeling_realm": "atmos", 
+            "standard_name": "air_temperature", 
+            "units": "K", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Daily Maximum Near-Surface Air Temperature over Crop Tile", 
+            "comment": "maximum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: max')", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "tasmaxCrop", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tasminCrop": {
+            "modeling_realm": "atmos", 
+            "standard_name": "air_temperature", 
+            "units": "K", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Daily Minimum Near-Surface Air Temperature over Crop Tile", 
+            "comment": "minimum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: min')", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "tasminCrop", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "tdps": {
             "modeling_realm": "atmos", 
             "standard_name": "dew_point_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "2m dewpoint temperature", 
             "comment": "", 
@@ -5593,7 +5406,7 @@
         "thetaot": {
             "modeling_realm": "ocean", 
             "standard_name": "sea_water_potential_temperature", 
-            "units": "K", 
+            "units": "degC", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
             "long_name": "Vertically Averaged Sea Water Potential Temperature", 
@@ -5610,9 +5423,9 @@
         "thetaot2000": {
             "modeling_realm": "ocean", 
             "standard_name": "thetaot2000", 
-            "units": "K", 
+            "units": "degC", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_measures": "area: areacella", 
             "long_name": "Depth average potential temperature of upper 2000m", 
             "comment": "Upper 2000m, 2D field", 
             "dimensions": "longitude latitude time depth2000m", 
@@ -5627,9 +5440,9 @@
         "thetaot300": {
             "modeling_realm": "ocean", 
             "standard_name": "thetaot300", 
-            "units": "K", 
+            "units": "degC", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_measures": "area: areacella", 
             "long_name": "Depth average potential temperature of upper 300m", 
             "comment": "Upper 300m, 2D field", 
             "dimensions": "longitude latitude time depth300m", 
@@ -5644,9 +5457,9 @@
         "thetaot700": {
             "modeling_realm": "ocean", 
             "standard_name": "thetaot700", 
-            "units": "K", 
+            "units": "degC", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_measures": "area: areacella", 
             "long_name": "Depth average potential temperature of upper 700m", 
             "comment": "Upper 700m, 2D field", 
             "dimensions": "longitude latitude time depth700m", 
@@ -5709,23 +5522,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tntlw23": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", 
-            "units": "K s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Longwave heating rate", 
-            "comment": "Longwave heating rates", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "tntlw23", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "tntmp27": {
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_air_temperature_due_to_model_physics", 
@@ -5760,34 +5556,17 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tntrl": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", 
-            "units": "K s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "tendency_of_air_temperature_due_to_longwave_heating", 
-            "comment": "Tendency of air temperature due to longwave radiative heating", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "tntrl", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "tntrl27": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", 
             "units": "K s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "tendency_of_air_temperature_due_to_longwave_heating", 
+            "long_name": "Longwave heating rate", 
             "comment": "Tendency of air temperature due to longwave radiative heating", 
             "dimensions": "longitude latitude plev27 time", 
             "out_name": "tntrl27", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -5811,33 +5590,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tntrs": {
-            "modeling_realm": "atmos", 
+        "tntrs27": {
+            "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", 
             "units": "K s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "tendency_of_air_temperature_due_to_shortwave_heating", 
+            "long_name": "Shortwave heating rate", 
             "comment": "Tendency of air temperature due to shortwave radiative heating", 
-            "dimensions": "longitude latitude alevel time", 
-            "out_name": "tntrs", 
-            "type": "", 
+            "dimensions": "longitude latitude plev27 time", 
+            "out_name": "tntrs27", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tntrs27": {
+        "tntrscs": {
             "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", 
+            "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky", 
             "units": "K s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "tendency_of_air_temperature_due_to_shortwave_heating", 
-            "comment": "Tendency of air temperature due to shortwave radiative heating", 
-            "dimensions": "longitude latitude plev27 time", 
-            "out_name": "tntrs27", 
+            "long_name": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", 
+            "comment": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", 
+            "dimensions": "longitude latitude alevel time", 
+            "out_name": "tntrscs", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -5862,23 +5641,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tntsw": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", 
-            "units": "K s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Shortwave heating rate", 
-            "comment": "shortwave heating rates", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "tntsw", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "tomint": {
             "modeling_realm": "ocean", 
             "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_prognostic_temperature", 
@@ -5896,28 +5658,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "treeFrac": {
-            "modeling_realm": "land", 
-            "standard_name": "area_fraction", 
-            "units": "%", 
-            "cell_methods": "area: mean where land time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tree Cover Fraction", 
-            "comment": "Percentage of entire grid cell  that is covered by trees.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "treeFrac", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "treeFracBdlDcd": {
             "modeling_realm": "land", 
             "standard_name": "tree_fraction_broadleaf_deciduous", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Broadleaf deciduous tree fraction", 
             "comment": "as specified by C4MIP", 
@@ -5951,7 +5696,7 @@
             "modeling_realm": "land", 
             "standard_name": "tree_fraction_needleleaf_deciduous", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Needleleaf deciduous tree fraction", 
             "comment": "as specified by C4MIP", 
@@ -5968,7 +5713,7 @@
             "modeling_realm": "land", 
             "standard_name": "tree_fraction_needleleaf_evergreen", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Needleleaf evergreen tree fraction", 
             "comment": "as specified by C4MIP", 
@@ -6053,7 +5798,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "m2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "integrated_eastward_wind_times_humidity", 
             "comment": "Column integrated eastward wind times specific humidity", 
@@ -6090,43 +5835,9 @@
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "u-tendency nonorographic gravity wave drag", 
-            "comment": "Tendency of the eastward wind by parameterized nonorographic gravity waves.  ", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "utendnogw", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "utendnogw19": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", 
-            "units": "m s-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "u-tendency nonorographic gravity wave drag", 
-            "comment": "Tendency of the eastward wind by parameterized nonorographic gravity waves.  ", 
+            "comment": "Tendency of the eastward wind by parameterized nonorographic gravity waves.", 
             "dimensions": "longitude latitude plev19 time", 
-            "out_name": "utendnogw19", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "utendnogw23": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", 
-            "units": "m s-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "u-tendency nonorographic gravity wave drag", 
-            "comment": "Tendency of the eastward wind by parameterized nonorographic gravity waves.  ", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "utendnogw23", 
+            "out_name": "utendnogw", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -6141,43 +5852,9 @@
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "u-tendency orographic gravity wave drag", 
-            "comment": "Tendency of the eastward wind by parameterized orographic gravity waves. ", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "utendogw", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "utendogw19": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_eastward_wind_due_to_orographic_gravity_wave_drag", 
-            "units": "m s-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "u-tendency orographic gravity wave drag", 
-            "comment": "Tendency of the eastward wind by parameterized orographic gravity waves. ", 
+            "comment": "Tendency of the eastward wind by parameterized orographic gravity waves.", 
             "dimensions": "longitude latitude plev19 time", 
-            "out_name": "utendogw19", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "utendogw23": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_eastward_wind_due_to_orographic_gravity_wave_drag", 
-            "units": "m s-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "u-tendency orographic gravity wave drag", 
-            "comment": "Tendency of the eastward wind by parameterized orographic gravity waves. ", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "utendogw23", 
+            "out_name": "utendogw", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -6253,11 +5930,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "vas": {
+            "modeling_realm": "atmos", 
+            "standard_name": "northward_wind", 
+            "units": "m s-1", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Northward Near-Surface Wind", 
+            "comment": "Northward component of the near surface wind", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "vas", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "vegFrac": {
             "modeling_realm": "land", 
             "standard_name": "total_vegetated_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Total vegetated fraction", 
             "comment": "as specified by C4MIP", 
@@ -6274,7 +5968,7 @@
             "modeling_realm": "land", 
             "standard_name": "canopy_height", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Vegetation height averaged over all vegetation types and over the vegetated fraction of a grid cell.", 
             "comment": "as specified by C4MIP", 
@@ -6291,7 +5985,7 @@
             "modeling_realm": "land", 
             "standard_name": "canopy_height", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Vegetation height averaged over the crop fraction of a grid cell.", 
             "comment": "as specified by C4MIP", 
@@ -6308,7 +6002,7 @@
             "modeling_realm": "land", 
             "standard_name": "canopy_height", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Vegetation height averaged over the grass fraction of a grid cell.", 
             "comment": "as specified by C4MIP", 
@@ -6359,7 +6053,7 @@
             "modeling_realm": "land", 
             "standard_name": "canopy_height", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Vegetation height averaged over the tree fraction of a grid cell.", 
             "comment": "as specified by C4MIP", 
@@ -6376,7 +6070,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "", 
             "units": "m2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "integrated_northward_wind_times_humidity", 
             "comment": "Column integrated northward wind times specific humidity", 
@@ -6406,7 +6100,7 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "vtendnogw19": {
+        "vtendnogw": {
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_northward_wind_due_to_nonorographic_gravity_wave_drag", 
             "units": "m s-2", 
@@ -6415,7 +6109,7 @@
             "long_name": "v-tendency nonorographic gravity wave drag", 
             "comment": "Tendency of the northward wind by parameterized nonorographic gravity waves.  (Note that CF name tables only have a general northward tendency for all gravity waves, and we need it separated by type.)", 
             "dimensions": "longitude latitude plev19 time", 
-            "out_name": "vtendnogw19", 
+            "out_name": "vtendnogw", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -6423,24 +6117,7 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "vtendnogw23": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_northward_wind_due_to_nonorographic_gravity_wave_drag", 
-            "units": "m s-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "v-tendency nonorographic gravity wave drag", 
-            "comment": "Tendency of the northward wind by parameterized nonorographic gravity waves.  (Note that CF name tables only have a general northward tendency for all gravity waves, and we need it separated by type.)", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "vtendnogw23", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "vtendogw19": {
+        "vtendogw": {
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_northward_wind_due_to_orographic_gravity_wave_drag", 
             "units": "m s-2", 
@@ -6449,24 +6126,7 @@
             "long_name": "v-tendency orographic gravity wave drag", 
             "comment": "Tendency of the northward wind by parameterized orographic gravity waves.  (Note that CF name tables only have a general northward tendency for all gravity waves, and we need it separated by type.)", 
             "dimensions": "longitude latitude plev19 time", 
-            "out_name": "vtendogw19", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "vtendogw23": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_northward_wind_due_to_orographic_gravity_wave_drag", 
-            "units": "m s-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "v-tendency orographic gravity wave drag", 
-            "comment": "Tendency of the northward wind by parameterized orographic gravity waves.  (Note that CF name tables only have a general northward tendency for all gravity waves, and we need it separated by type.)", 
-            "dimensions": "longitude latitude plev23 time", 
-            "out_name": "vtendogw23", 
+            "out_name": "vtendogw", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -6546,7 +6206,7 @@
             "modeling_realm": "land", 
             "standard_name": "wetland_methane_emissions", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: mean where land time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Grid averaged methane emissions from wetlands", 
             "comment": "as specified by C4MIP", 
@@ -6597,7 +6257,7 @@
             "modeling_realm": "land", 
             "standard_name": "wetland_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Fraction of a grid cell covered by wetland.", 
             "comment": "as specified by C4MIP", 
@@ -6610,23 +6270,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "wo": {
-            "modeling_realm": "ocean", 
-            "standard_name": "upward_sea_water_velocity", 
-            "units": "m s-1", 
-            "cell_methods": "", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Sea Water Z Velocity", 
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "wo", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "xgwdparam": {
             "modeling_realm": "atmos", 
             "standard_name": "atmosphere_eastward_stress_due_to_gravity_wave_drag", 
@@ -6671,6 +6314,40 @@
             "comment": "", 
             "dimensions": "longitude latitude plev27 time", 
             "out_name": "zg27", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "zoomeso": {
+            "modeling_realm": "ocean", 
+            "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Mole Concentration of Mesozooplankton expressed as Carbon in Sea Water", 
+            "comment": "carbon  concentration from mesozooplankton (20-200 um) component alone", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "zoomeso", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "zoomicro": {
+            "modeling_realm": "ocean", 
+            "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Mole Concentration of Microzooplankton expressed as Carbon in Sea Water", 
+            "comment": "carbon  concentration from the microzooplankton (<20 um) component alone", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "zoomicro", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
diff --git a/TestTables/CMIP6_emMonZ.json b/TestTables/CMIP6_EmonZ.json
similarity index 55%
rename from TestTables/CMIP6_emMonZ.json
rename to TestTables/CMIP6_EmonZ.json
index f87420c..748a6f1 100644
--- a/TestTables/CMIP6_emMonZ.json
+++ b/TestTables/CMIP6_EmonZ.json
@@ -1,80 +1,29 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table emMonZ", 
-        "realm": "aerosol", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table EmonZ", 
+        "realm": "atmos", 
         "frequency": "mon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "30.00000", 
-        "generic_levels": "", 
+        "generic_levels": "alevel olevel", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
-        "bry": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_inorganic_bromine_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Total inorganic bromine volume mixing ratio", 
-            "comment": "Total family (the sum of all appropriate species in the model) ; list the species in the netCDF header, e.g. Bry = Br + BrO + HOBr + HBr + BrONO2 + BrCl Definition: Total inorganic bromine (e.g., HBr and inorganic bromine oxides and radicals (e.g., BrO, atomic bromine (Br), bromine nitrate (BrONO2)) resulting from degradation of bromine-containing organicsource gases (halons, methyl bromide, VSLS), and natural inorganic bromine sources (e.g., volcanoes, sea salt,  [...]
-            "dimensions": "latitude plev39 time", 
-            "out_name": "bry", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ch4": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_methane_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CH4 volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "latitude plev39 time", 
-            "out_name": "ch4", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "cly": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_inorganic_chlorine_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Total inorganic chlorine volume mixing ratio", 
-            "comment": "Total family (the sum of all appropriate species in the model) ; list the species in the netCDF header, e.g. Cly = HCl + ClONO2 + HOCl + ClO + Cl + 2*Cl2O2 +2Cl2 + OClO + BrCl Definition: Total inorganic stratospheric chlorine (e.g., HCl, ClO) resulting from degradation of chlorine-containing source gases (CFCs, HCFCs, VSLS), and natural inorganic chlorine sources (e.g., sea salt and other aerosols) add comment attribute with detailed description about how the mod [...]
-            "dimensions": "latitude plev39 time", 
-            "out_name": "cly", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "epfluxdiv": {
+        "co2totalmass": {
             "modeling_realm": "atmos", 
-            "standard_name": "eliassen_palm_flux_divergence", 
-            "units": "kg m-1 s-2", 
+            "standard_name": "CO2_total_mass_in_atmos", 
+            "units": "kg", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Divergence of Eliassen-Palm flux (zonal mean)", 
-            "comment": "Divergence of Eliassen-Palm flux (zonal mean)", 
-            "dimensions": "latitude plev39 time", 
-            "out_name": "epfluxdiv", 
+            "cell_measures": "", 
+            "long_name": "Globally integrated Carbon Mass in Atmosphere", 
+            "comment": "globally integrated mass of carbon as CO2 in atmsophere. Report as a single number for all emissions-driven runs", 
+            "dimensions": "time", 
+            "out_name": "co2totalmass", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -86,7 +35,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "northward_eliassen_palm_flux_in_air", 
             "units": "m3 s-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Northward Component of the Eliassen-Palm Flux", 
             "comment": "Transformed Eulerian Mean Diagnostics Meridional component Fy of Eliassen-Palm (EP) flux (Fy, Fz) derived from 6hr or higher frequency fields (use daily fields or 12 hr fields if the 6 hr are not available). Please use the definitions given by equation 3.5.3a of Andrews, Holton and Leovy text book, but scaled by density to have units m3 s-2.", 
@@ -103,7 +52,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "upward_eliassen_palm_flux_in_air", 
             "units": "m3 s-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Upward Component of the Eliassen-Palm Flux", 
             "comment": "Transformed Eulerian Mean Diagnostics Meridional component Fz of the Eliassen-Palm (EP) flux (Fy, Fz) derived from 6hr or higher frequency fields (use daily fields or 12 hr fields if the 6 hr are not available). Please use the definitions given by equation 3.5.3b of Andrews, Holton and Leovy text book, but scaled by density to have units m3 s-2.", 
@@ -116,79 +65,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "h2o": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_water_vapor_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "H2O volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "latitude plev39 time", 
-            "out_name": "h2o", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hcl": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_hydrogen_chloride_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "HCl volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "latitude plev39 time", 
-            "out_name": "hcl", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hno3": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_nitric_acid_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "HNO3 volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "latitude plev39 time", 
-            "out_name": "hno3", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ho2": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_hydroperoxyl_radical_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "HO2 volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "latitude plev39 time", 
-            "out_name": "ho2", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "jo2": {
             "modeling_realm": "atmos", 
             "standard_name": "photolysis_rate_of_molecular_oxygen", 
             "units": "s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "photoloysis rate of O2", 
             "comment": "rate of o2 -> o1d+o", 
@@ -205,7 +86,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "photolysis_rate_of_ozone", 
             "units": "s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "photoloysis rate of O3", 
             "comment": "sum of rates o3 -> o1d+o2 and o3 -> o+o2", 
@@ -218,85 +99,17 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "meanage": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "age_of_stratospheric_air", 
-            "units": "yr", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Mean Age of Stratospheric Air", 
-            "comment": "The mean age of air is defined as the mean time that a stratospheric air mass has been out of contact with the well-mixed troposphere.", 
-            "dimensions": "latitude plev39 time", 
-            "out_name": "meanage", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "n2o": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_nitrous_oxide_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "N2O volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "latitude plev39 time", 
-            "out_name": "n2o", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "noy": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_noy_expressed_as_nitrogen_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Total reactive nitrogen volume mixing ratio", 
-            "comment": "Total family (the sum of all appropriate species in the model); list the species in the netCDF header, e.g. NOy = N + NO + NO2 + NO3 + HNO3 + 2N2O5 + HNO4 + ClONO2 + BrONO2 Definition: Total reactive nitrogen; usually includes atomic nitrogen (N), nitric oxide (NO), NO2, nitrogen trioxide (NO3), dinitrogen radical (N2O5), nitric acid (HNO3), peroxynitric acid (HNO4), BrONO2, ClONO2 add comment attribute with detailed description about how the model calculates thes [...]
-            "dimensions": "latitude plev39 time", 
-            "out_name": "noy", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "o3": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_ozone_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Ozone volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "latitude plev39 time", 
-            "out_name": "o3", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "oh": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "mole_fraction_of_hydroxyl_radical_in_air", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "OH volume mixing ratio", 
-            "comment": "", 
-            "dimensions": "latitude plev39 time", 
-            "out_name": "oh", 
-            "type": "float", 
+        "mrsos": {
+            "modeling_realm": "land", 
+            "standard_name": "moisture_content_of_soil_layer", 
+            "units": "kg m-2", 
+            "cell_methods": "area: mean where land time: mean", 
+            "cell_measures": "", 
+            "long_name": "Moisture in Upper Portion of Soil Column", 
+            "comment": "The mass of water in all phases in the upper 10cm of the  soil layer.", 
+            "dimensions": "height10m time", 
+            "out_name": "mrsos", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -304,13 +117,13 @@
             "ok_max_mean_abs": ""
         }, 
         "oxloss": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "atmosChem", 
             "standard_name": "tendency_of_mole_concentration_of_ozone_and_atomic_oxygen_and_1D_oxygen_atom_due_to_chemical_destruction", 
             "units": "mol m-3 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "total Ox loss rate", 
-            "comment": "total chemical loss rate for o+o1d+o3 ", 
+            "comment": "total chemical loss rate for o+o1d+o3", 
             "dimensions": "latitude plev39 time", 
             "out_name": "oxloss", 
             "type": "", 
@@ -321,10 +134,10 @@
             "ok_max_mean_abs": ""
         }, 
         "oxprod": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "atmosChem", 
             "standard_name": "tendency_of_mole_concentration_of_ozone_and_atomic_oxygen_and_1D_oxygen_atom_due_to_chemical_production_and_photolysis", 
             "units": "mol m-3 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "total Ox production rate", 
             "comment": "total production rate of o+o1d+o3 including o2 photolysis and all o3 producing reactions", 
@@ -341,7 +154,7 @@
             "modeling_realm": "ocean", 
             "standard_name": "northward_ocean_salt_transport", 
             "units": "kg s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean (basin) time: mean", 
             "cell_measures": "", 
             "long_name": "Northward Ocean Salt Transport", 
             "comment": "function of latitude, basin", 
@@ -355,10 +168,10 @@
             "ok_max_mean_abs": ""
         }, 
         "sltnorth": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "ocean", 
             "standard_name": "northward_ocean_salt_transport", 
             "units": "kg s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "", 
             "long_name": "Northward Ocean Salt Transport", 
             "comment": "", 
@@ -372,10 +185,10 @@
             "ok_max_mean_abs": ""
         }, 
         "sltnortha": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "ocean", 
             "standard_name": "northward_ocean_salt_transport", 
             "units": "kg s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "", 
             "long_name": "Atlantic Northward Ocean Salt Transport", 
             "comment": "", 
@@ -388,17 +201,17 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ta": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "air_temperature", 
-            "units": "K", 
-            "cell_methods": "time: mean", 
+        "tntc": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_air_temperature_due_to_convection", 
+            "units": "K s-1", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Air Temperature", 
-            "comment": "Air Temperature", 
+            "long_name": "Tendency of Air Temperature due to Convection", 
+            "comment": "Tendencies from cumulus convection scheme.", 
             "dimensions": "latitude plev39 time", 
-            "out_name": "ta", 
-            "type": "float", 
+            "out_name": "tntc", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -409,7 +222,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_air_temperature_due_to_model_physics", 
             "units": "K s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Tendency of Air Temperature due to Model Physics", 
             "comment": "Tendency of air temperature due to model physics. This includes sources and sinks from parametrized physics (e.g. radiation, convection, boundary layer, stratiform condensation/evaporation, etc.). It excludes sources and sinks from resolved dynamics and numerical diffusion not associated with parametrized physics.  For example, any vertical diffusion which is part of the boundary layer mixing scheme should be included, while numerical diffusion applied in addition [...]
@@ -422,11 +235,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "tntnogw": {
+            "modeling_realm": "atmos", 
+            "standard_name": "temperature_tendency_due_to_dissipation_nonorographic_gravity_wave_drag", 
+            "units": "K s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "temperature tendency nonorographic gravity wave dissipation", 
+            "comment": "Temperature tendency due to dissipation of parameterized nonorographic gravity waves.", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "tntnogw", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "tntogw": {
             "modeling_realm": "atmos", 
             "standard_name": "temperature_tendency_due_to_dissipation_orographic_gravity_wave_drag", 
             "units": "K s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "temperature tendency orographic gravity wave dissipation", 
             "comment": "Temperature tendency due to dissipation of parameterized orographic gravity waves.", 
@@ -439,16 +269,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tntrscs": {
+        "tntrl": {
+            "modeling_realm": "aerosol", 
+            "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", 
+            "units": "K s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Longwave heating rate", 
+            "comment": "Tendency of air temperature due to longwave radiative heating", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "tntrl", 
+            "type": "float", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tntrlcs": {
             "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky", 
+            "standard_name": "tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky", 
             "units": "K s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", 
-            "comment": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", 
+            "long_name": "Tendency of Air Temperature due to Clear Sky Longwave Radiative Heating", 
+            "comment": "Tendency of Air Temperature due to Clear Sky Longwave Radiative Heating", 
             "dimensions": "latitude plev39 time", 
-            "out_name": "tntrscs", 
+            "out_name": "tntrlcs", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -456,16 +303,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ua": {
+        "tntrs": {
             "modeling_realm": "aerosol", 
-            "standard_name": "eastward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", 
+            "units": "K s-1", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Eastward Wind", 
-            "comment": "", 
+            "long_name": "Shortwave heating rate", 
+            "comment": "Tendency of air temperature due to shortwave radiative heating", 
             "dimensions": "latitude plev39 time", 
-            "out_name": "ua", 
+            "out_name": "tntrs", 
             "type": "float", 
             "positive": "", 
             "valid_min": "", 
@@ -473,16 +320,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "utendepfd": {
+        "tntrscs": {
             "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_eastward_wind_due_to_eliassen_palm_flux_divergence", 
-            "units": "m s-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky", 
+            "units": "K s-1", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Tendency of eastward wind due to Eliassen-Palm Flux divergence", 
-            "comment": "Tendency of the zonal mean zonal wind due to the divergence of the Eliassen-Palm flux.", 
+            "long_name": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", 
+            "comment": "Tendency of Air Temperature due to Clear Sky Shortwave Radiative Heating", 
             "dimensions": "latitude plev39 time", 
-            "out_name": "utendepfd", 
+            "out_name": "tntrscs", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -490,33 +337,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "va": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "northward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
+        "tntscp": {
+            "modeling_realm": "atmos", 
+            "standard_name": "tendency_of_air_temperature_due_to_stratiform_clouds_and_precipitation", 
+            "units": "K s-1", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Northward Wind", 
+            "long_name": "Tendency of Air Temperature Due to Stratiform Clouds and Precipitation", 
             "comment": "", 
             "dimensions": "latitude plev39 time", 
-            "out_name": "va", 
-            "type": "float", 
+            "out_name": "tntscp", 
+            "type": "", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "vmrox": {
+        "utendepfd": {
             "modeling_realm": "atmos", 
-            "standard_name": "mole_fraction_of_ozone_and_atomic_oxygen_and_1D_oxygen_atom", 
-            "units": "mol mol-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tendency_of_eastward_wind_due_to_eliassen_palm_flux_divergence", 
+            "units": "m s-2", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "mole fraction of o and o3 and o1d", 
-            "comment": "Mole Fraction of Ox", 
+            "long_name": "Tendency of eastward wind due to Eliassen-Palm Flux divergence", 
+            "comment": "Tendency of the zonal mean zonal wind due to the divergence of the Eliassen-Palm flux.", 
             "dimensions": "latitude plev39 time", 
-            "out_name": "vmrox", 
+            "out_name": "utendepfd", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -524,16 +371,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "vstarbar": {
+        "utendnogw": {
             "modeling_realm": "atmos", 
-            "standard_name": "northward_transformed_eulerian_mean_air_velocity", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tendency_of_eastward_wind_due_to_nonorographic_gravity_wave_drag", 
+            "units": "m s-2", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "residual_mean_merid_vstarbar", 
-            "comment": "TEM residual mean meridional circulation vstarbar, zonal mean on plev36", 
+            "long_name": "u-tendency nonorographic gravity wave drag", 
+            "comment": "Tendency of the eastward wind by parameterized nonorographic gravity waves.", 
             "dimensions": "latitude plev39 time", 
-            "out_name": "vstarbar", 
+            "out_name": "utendnogw", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -541,17 +388,17 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "vt100": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "northward_heat_flux_in_air_due_to_eddy_advection", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
+        "vmrox": {
+            "modeling_realm": "atmosChem", 
+            "standard_name": "mole_fraction_of_ozone_and_atomic_oxygen_and_1D_oxygen_atom", 
+            "units": "mol mol-1", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "Northward heat flux due to eddies", 
-            "comment": "Zonally averaged meridional heat flux at 100 hPa as monthly means derived from daily (or higher frequency) fields.", 
-            "dimensions": "latitude time", 
-            "out_name": "vt100", 
-            "type": "float", 
+            "long_name": "mole fraction of o and o3 and o1d", 
+            "comment": "Mole Fraction of Ox", 
+            "dimensions": "latitude plev39 time", 
+            "out_name": "vmrox", 
+            "type": "", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -562,7 +409,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "northward_transformed_eulerian_mean_air_velocity", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Transformed Eulerian Mean northward wind", 
             "comment": "Transformed Eulerian Mean Diagnostics v*, meridional component of the residual meridional circulation (v*, w*) derived from 6 hr or higher frequency data fields (use instantaneous daily fields or 12 hr fields if the 6 hr data are not available).", 
@@ -575,16 +422,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "wstarbar": {
+        "vtendnogw": {
             "modeling_realm": "atmos", 
-            "standard_name": "", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tendency_of_northward_wind_due_to_nonorographic_gravity_wave_drag", 
+            "units": "m s-2", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
-            "long_name": "residual_mean_vert_wstarbar", 
-            "comment": "TEM residual mean vertical circulation wstarbar, zonal mean on plev36", 
+            "long_name": "v-tendency nonorographic gravity wave drag", 
+            "comment": "Tendency of the northward wind by parameterized nonorographic gravity waves.  (Note that CF name tables only have a general northward tendency for all gravity waves, and we need it separated by type.)", 
             "dimensions": "latitude plev39 time", 
-            "out_name": "wstarbar", 
+            "out_name": "vtendnogw", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -596,7 +443,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "unset", 
             "units": "m s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Transformed Eulerian Mean upward wind", 
             "comment": "Transformed Eulerian Mean Diagnostics w*, meridional component of the residual meridional circulation (v*, w*) derived from 6 hr or higher frequency data fields (use instantaneous daily fields or 12 hr fields if the 6 hr data are not available). Scale height: 6950 m", 
@@ -609,16 +456,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "xnonoroggwdparam": {
+        "xgwdparam": {
             "modeling_realm": "atmos", 
-            "standard_name": "", 
-            "units": "m s-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "atmosphere_eastward_stress_due_to_gravity_wave_drag", 
+            "units": "Pa", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "x_gravity_wave_drag_param", 
-            "comment": "Parameterised x-component of non-orographic gravity wave drag", 
+            "comment": "Parameterised x-component of gravity wave drag", 
             "dimensions": "latitude plev39 time", 
-            "out_name": "xnonoroggwdparam", 
+            "out_name": "xgwdparam", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -626,16 +473,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ynonoroggwdparam": {
+        "ygwdparam": {
             "modeling_realm": "atmos", 
-            "standard_name": "", 
-            "units": "m s-2", 
-            "cell_methods": "time: mean", 
+            "standard_name": "atmosphere_northward_stress_due_to_gravity_wave_drag", 
+            "units": "Pa", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "y_gravity_wave_drag_param", 
-            "comment": "Parameterised y- component of non-orogrpahic  gravity wave drag", 
+            "comment": "Parameterised y- component of gravity wave drag", 
             "dimensions": "latitude plev39 time", 
-            "out_name": "ynonoroggwdparam", 
+            "out_name": "ygwdparam", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
@@ -643,28 +490,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zg": {
-            "modeling_realm": "aerosol", 
-            "standard_name": "geopotential_height", 
-            "units": "m", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Geopotential Height", 
-            "comment": "", 
-            "dimensions": "latitude plev39 time", 
-            "out_name": "zg", 
-            "type": "float", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "zmtnt": {
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_air_temperature_due_to_diabatic_processes", 
             "units": "K s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "longitude: mean time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Zonal Mean Diabatic Heating Rates", 
             "comment": "The diabatic heating rates due to all the processes that may change potential temperature", 
diff --git a/TestTables/CMIP6_emSubhr.json b/TestTables/CMIP6_Esubhr.json
similarity index 96%
rename from TestTables/CMIP6_emSubhr.json
rename to TestTables/CMIP6_Esubhr.json
index 9a00493..d78a417 100644
--- a/TestTables/CMIP6_emSubhr.json
+++ b/TestTables/CMIP6_Esubhr.json
@@ -1,30 +1,30 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table emSubhr", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table Esubhr", 
         "realm": "atmos", 
         "frequency": "subhr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "", 
-        "generic_levels": "", 
+        "product": "model-output", 
+        "approx_interval": "0.017361", 
+        "generic_levels": "alevel", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "bldep": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "aerosol", 
             "standard_name": "atmosphere_boundary_layer_thickness", 
             "units": "m", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "boundary_layer_depth", 
+            "long_name": "Boundary Layer Depth", 
             "comment": "Boundary layer depth", 
             "dimensions": "longitude latitude time1", 
             "out_name": "bldep", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -41,7 +41,7 @@
             "comment": "", 
             "dimensions": "longitude latitude time1", 
             "out_name": "hfls", 
-            "type": "", 
+            "type": "real", 
             "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
@@ -58,7 +58,7 @@
             "comment": "", 
             "dimensions": "longitude latitude time1", 
             "out_name": "hfss", 
-            "type": "", 
+            "type": "real", 
             "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
@@ -309,11 +309,11 @@
             "units": "K", 
             "cell_methods": "time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Near-Surface Air Temperature", 
+            "long_name": "Surface Temperature", 
             "comment": "near-surface (usually, 2 meter) air temperature", 
             "dimensions": "longitude latitude time1", 
             "out_name": "tas", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -423,16 +423,16 @@
             "ok_max_mean_abs": ""
         }, 
         "tntrl": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_air_temperature_due_to_longwave_heating", 
             "units": "K s-1", 
             "cell_methods": "time: point", 
             "cell_measures": "", 
-            "long_name": "tendency_of_air_temperature_due_to_longwave_heating", 
+            "long_name": "Longwave heating rate", 
             "comment": "Tendency of air temperature due to longwave radiative heating", 
             "dimensions": "alevel site time1", 
             "out_name": "tntrl", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -457,16 +457,16 @@
             "ok_max_mean_abs": ""
         }, 
         "tntrs": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "aerosol", 
             "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating", 
             "units": "K s-1", 
             "cell_methods": "time: point", 
             "cell_measures": "", 
-            "long_name": "tendency_of_air_temperature_due_to_shortwave_heating", 
+            "long_name": "Shortwave heating rate", 
             "comment": "Tendency of air temperature due to shortwave radiative heating", 
             "dimensions": "alevel site time1", 
             "out_name": "tntrs", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -515,7 +515,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Eastward Wind", 
             "comment": "", 
-            "dimensions": "longitude latitude time1", 
+            "dimensions": "longitude latitude alevel time1", 
             "out_name": "ua", 
             "type": "", 
             "positive": "", 
@@ -532,7 +532,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Northward Wind", 
             "comment": "", 
-            "dimensions": "longitude latitude time1", 
+            "dimensions": "longitude latitude alevel time1", 
             "out_name": "va", 
             "type": "", 
             "positive": "", 
diff --git a/TestTables/CMIP6_emYr.json b/TestTables/CMIP6_Eyr.json
similarity index 76%
rename from TestTables/CMIP6_emYr.json
rename to TestTables/CMIP6_Eyr.json
index c7b1ac6..04a36ba 100644
--- a/TestTables/CMIP6_emYr.json
+++ b/TestTables/CMIP6_Eyr.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table emYr", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table Eyr", 
         "realm": "land", 
         "frequency": "yr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "", 
-        "generic_levels": "", 
+        "product": "model-output", 
+        "approx_interval": "365", 
+        "generic_levels": "alevel olevel", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "baresoilFrac": {
@@ -22,7 +22,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Bare Soil Fraction", 
             "comment": "Percentage of entire grid cell  that is covered by bare soil.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude typebare time", 
             "out_name": "baresoilFrac", 
             "type": "real", 
             "positive": "", 
@@ -50,11 +50,11 @@
         }, 
         "cLitterLut": {
             "modeling_realm": "land", 
-            "standard_name": "", 
+            "standard_name": "litter_carbon_content", 
             "units": "kg m-2", 
-            "cell_methods": "area: mean where landUse time: point", 
+            "cell_methods": "area: mean where landuse time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Carbon  in Above and Below Ground Litter Pools on Landuse Tiles", 
+            "long_name": "carbon  in above and belowground litter pools on land use tiles", 
             "comment": "end of year values (not annual mean)", 
             "dimensions": "longitude latitude landUse time1", 
             "out_name": "cLitterLut", 
@@ -86,7 +86,7 @@
             "modeling_realm": "land", 
             "standard_name": "carbon_content_in_wood_and_agricultural_products", 
             "units": "kg m-2", 
-            "cell_methods": "area: mean where landUse time: point", 
+            "cell_methods": "area: mean where landuse time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "wood and agricultural product pool carbon associated with land use tiles; examples of products include paper, cardboard, timber for construction, and crop harvest for food or fuel.", 
             "comment": "anthropogenic pools associated with land use tiles into which harvests and cleared carbon are deposited before release into atmosphere PLUS any remaining anthropogenic pools that may be associated with lands which were converted into land use tiles during reported period . Does NOT include residue which is deposited into soil or litter; end of year values (not annual mean)", 
@@ -118,11 +118,11 @@
         }, 
         "cSoilLut": {
             "modeling_realm": "land", 
-            "standard_name": "", 
+            "standard_name": "soil_carbon_content", 
             "units": "kg m-2", 
-            "cell_methods": "area: mean where landUse time: point", 
+            "cell_methods": "area: mean where landuse time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Carbon in Soil Pool on Landuse Tiles", 
+            "long_name": "carbon  in soil pool on land use tiles", 
             "comment": "end of year values (not annual mean)", 
             "dimensions": "longitude latitude landUse time1", 
             "out_name": "cSoilLut", 
@@ -152,11 +152,11 @@
         }, 
         "cVegLut": {
             "modeling_realm": "land", 
-            "standard_name": "", 
+            "standard_name": "vegetation_carbon_content", 
             "units": "kg m-2", 
-            "cell_methods": "area: mean where landUse time: point", 
+            "cell_methods": "area: mean where landuse time: point", 
             "cell_measures": "area: areacella", 
-            "long_name": "Carbon in Vegetation on Land Use Tiles", 
+            "long_name": "carbon in vegetation on land use tiles", 
             "comment": "end of year values (not annual mean)", 
             "dimensions": "longitude latitude landUse time1", 
             "out_name": "cVegLut", 
@@ -175,7 +175,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Crop Fraction", 
             "comment": "Percentage of entire grid cell  that is covered by crop.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude typecrop time", 
             "out_name": "cropFrac", 
             "type": "real", 
             "positive": "", 
@@ -184,27 +184,10 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "dispkexyfo": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", 
-            "units": "W m-2 ", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to XY Friction", 
-            "comment": "Depth integrated impacts on kinetic energy arising from lateral frictional dissipation associated with Laplacian and/or biharmonic viscosity. For CMIP5, this diagnostic was 3d, whereas the CMIP6 depth integrated diagnostic is sufficient for many purposes and reduces archive requirements.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "dispkexyfo", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "fracInLut": {
             "modeling_realm": "land", 
-            "standard_name": "", 
-            "units": "fraction", 
+            "standard_name": "area_fraction", 
+            "units": "%", 
             "cell_methods": "area: mean time: sum", 
             "cell_measures": "area: areacella", 
             "long_name": "annual gross fraction that was transferred into this tile from other land use tiles", 
@@ -220,12 +203,12 @@
         }, 
         "fracLut": {
             "modeling_realm": "land", 
-            "standard_name": "", 
-            "units": "fraction", 
-            "cell_methods": "area: mean where landUse time: point", 
+            "standard_name": "area_fraction", 
+            "units": "%", 
+            "cell_methods": "area: mean where landuse time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "fraction of grid cell for each land use tile", 
-            "comment": "end of year values (not annual mean); note that fraction should be reported as fraction of atmospheric grid cell (example: frac_lnd = 0.5, frac_ocn = 0.5, frac_crop_lnd = 0.2 (of land portion of grid cell), then frac_lut(crp) = 0.5*0.2 = 0.1)", 
+            "comment": "end of year values (not annual mean); note that fraction should be reported as fraction of land grid cell (example: frac_lnd = 0.5, frac_ocn = 0.5, frac_crop_lnd = 0.2 (of land portion of grid cell), then frac_lut(crp) = 0.5*0.2 = 0.1)", 
             "dimensions": "longitude latitude landUse time1", 
             "out_name": "fracLut", 
             "type": "", 
@@ -237,8 +220,8 @@
         }, 
         "fracOutLut": {
             "modeling_realm": "land", 
-            "standard_name": "", 
-            "units": "fraction", 
+            "standard_name": "area_fraction", 
+            "units": "%", 
             "cell_methods": "area: mean time: sum", 
             "cell_measures": "area: areacella", 
             "long_name": "annual gross fraction of land use tile  that was transferred into other land use tiles", 
@@ -260,7 +243,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Natural Grass Fraction", 
             "comment": "Percentage of entire grid cell that is covered by natural grass.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude typenatgr time", 
             "out_name": "grassFrac", 
             "type": "real", 
             "positive": "", 
@@ -273,7 +256,7 @@
             "modeling_realm": "land", 
             "standard_name": "area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Fraction of Grid Cell that is Land but Neither Vegetation-Covered nor Bare Soil", 
             "comment": "Percentage of entire grid cell  that is land and is covered by  neither vegetation nor bare-soil (e.g., urban, ice, lakes, etc.)", 
@@ -286,23 +269,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "rsdoabsorb": {
-            "modeling_realm": "ocean", 
-            "standard_name": "net_rate_of_absorption_of_shortwave_energy_in_ocean_layer", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "net rate of absorption of shortwave energy in ocean layer", 
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "rsdoabsorb", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "shrubFrac": {
             "modeling_realm": "land", 
             "standard_name": "area_fraction", 
@@ -311,7 +277,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Shrub Fraction", 
             "comment": "Percentage of entire grid cell  that is covered by shrub.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude typeshrub time", 
             "out_name": "shrubFrac", 
             "type": "real", 
             "positive": "", 
@@ -320,16 +286,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "tnkebto": {
+        "tnpeo": {
             "modeling_realm": "ocean", 
-            "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_bolus_transport", 
-            "units": "W m-2 ", 
+            "standard_name": "tendency_of_ocean_potential_energy_content", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Tendency of Ocean Eddy Kinetic Energy Content due to Bolus Transport", 
-            "comment": "Depth integrated impacts on kinetic energy arising from parameterized eddy-induced advection. For CMIP5, this diagnostic was 3d, whereas the CMIP6 depth integrated diagnostic is sufficient for many purposes and reduces archive requirements.", 
+            "long_name": "tendency of ocean potential energy content", 
+            "comment": "Rate that work is done against vertical stratification, as measured by the vertical heat and salt diffusivity. Report here as depth integrated two-dimensional field.", 
             "dimensions": "longitude latitude time", 
-            "out_name": "tnkebto", 
+            "out_name": "tnpeo", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -345,7 +311,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Tree Cover Fraction", 
             "comment": "Percentage of entire grid cell  that is covered by trees.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude typetree time", 
             "out_name": "treeFrac", 
             "type": "real", 
             "positive": "", 
@@ -355,14 +321,14 @@
             "ok_max_mean_abs": ""
         }, 
         "vegFrac": {
-            "modeling_realm": "", 
+            "modeling_realm": "atmos", 
             "standard_name": "total_vegetated_fraction", 
             "units": "%", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Total vegetated fraction", 
             "comment": "as specified by C4MIP", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude typeveg time", 
             "out_name": "vegFrac", 
             "type": "", 
             "positive": "", 
@@ -372,7 +338,7 @@
             "ok_max_mean_abs": ""
         }, 
         "zfull": {
-            "modeling_realm": "land", 
+            "modeling_realm": "ocean", 
             "standard_name": "height_above_reference_ellipsoid", 
             "units": "m", 
             "cell_methods": "time: mean", 
@@ -381,7 +347,7 @@
             "comment": "", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "zfull", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
diff --git a/TestTables/CMIP6_LIfxgre.json b/TestTables/CMIP6_IfxAnt.json
similarity index 80%
rename from TestTables/CMIP6_LIfxgre.json
rename to TestTables/CMIP6_IfxAnt.json
index 3635849..e72cbef 100644
--- a/TestTables/CMIP6_LIfxgre.json
+++ b/TestTables/CMIP6_IfxAnt.json
@@ -1,28 +1,28 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table LIfxgre", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table IfxAnt", 
         "realm": "landIce", 
         "frequency": "fx", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "areacellg": {
             "modeling_realm": "land", 
             "standard_name": "cell_area", 
             "units": "m2", 
-            "cell_methods": "", 
+            "cell_methods": "area: mean", 
             "cell_measures": "area: areacellg", 
             "long_name": "Grid Cell Area for Interpolated Grids", 
-            "comment": "Area of the target grid (not the interpolated area of the source grid). ", 
-            "dimensions": "longitude latitude time", 
+            "comment": "Area of the target grid (not the interpolated area of the source grid).", 
+            "dimensions": "xant yant time", 
             "out_name": "areacellg", 
             "type": "", 
             "positive": "", 
@@ -35,11 +35,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "upward_geothermal_heat_flux_at_ground_level", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean", 
             "cell_measures": "area: areacellg", 
             "long_name": "Geothermal Heat flux beneath land ice", 
             "comment": "Upward geothermal heat flux per unit area beneath land ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "hfgeoubed", 
             "type": "", 
             "positive": "", 
@@ -52,11 +52,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_thickness", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean", 
             "cell_measures": "area: areacellg", 
             "long_name": "Ice Sheet Thickness", 
             "comment": "The thickness of the ice sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "lithk", 
             "type": "", 
             "positive": "", 
@@ -69,11 +69,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "bedrock_altitude", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean", 
             "cell_measures": "area: areacellg", 
             "long_name": "Bedrock Altitude", 
             "comment": "The bedrock topography beneath the land ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "topg", 
             "type": "", 
             "positive": "", 
diff --git a/TestTables/CMIP6_LIfxant.json b/TestTables/CMIP6_IfxGre.json
similarity index 80%
rename from TestTables/CMIP6_LIfxant.json
rename to TestTables/CMIP6_IfxGre.json
index eec8237..50954fc 100644
--- a/TestTables/CMIP6_LIfxant.json
+++ b/TestTables/CMIP6_IfxGre.json
@@ -1,28 +1,28 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table LIfxant", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table IfxGre", 
         "realm": "landIce", 
         "frequency": "fx", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "areacellg": {
             "modeling_realm": "land", 
             "standard_name": "cell_area", 
             "units": "m2", 
-            "cell_methods": "", 
+            "cell_methods": "area: mean", 
             "cell_measures": "area: areacellg", 
             "long_name": "Grid Cell Area for Interpolated Grids", 
-            "comment": "Area of the target grid (not the interpolated area of the source grid). ", 
-            "dimensions": "longitude latitude time", 
+            "comment": "Area of the target grid (not the interpolated area of the source grid).", 
+            "dimensions": "xgre ygre time", 
             "out_name": "areacellg", 
             "type": "", 
             "positive": "", 
@@ -35,11 +35,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "upward_geothermal_heat_flux_at_ground_level", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean", 
             "cell_measures": "area: areacellg", 
             "long_name": "Geothermal Heat flux beneath land ice", 
             "comment": "Upward geothermal heat flux per unit area beneath land ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "hfgeoubed", 
             "type": "", 
             "positive": "", 
@@ -52,11 +52,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_thickness", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean", 
             "cell_measures": "area: areacellg", 
             "long_name": "Ice Sheet Thickness", 
             "comment": "The thickness of the ice sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "lithk", 
             "type": "", 
             "positive": "", 
@@ -69,11 +69,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "bedrock_altitude", 
             "units": "m", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean", 
             "cell_measures": "area: areacellg", 
             "long_name": "Bedrock Altitude", 
             "comment": "The bedrock topography beneath the land ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "topg", 
             "type": "", 
             "positive": "", 
diff --git a/TestTables/CMIP6_LImongre.json b/TestTables/CMIP6_ImonAnt.json
similarity index 82%
rename from TestTables/CMIP6_LImongre.json
rename to TestTables/CMIP6_ImonAnt.json
index ea7a5ed..889589e 100644
--- a/TestTables/CMIP6_LImongre.json
+++ b/TestTables/CMIP6_ImonAnt.json
@@ -1,28 +1,28 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table LImongre", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table ImonAnt", 
         "realm": "atmos", 
         "frequency": "mon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "", 
+        "product": "model-output", 
+        "approx_interval": "30.00", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "acabf": {
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Mass Balance flux", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice surface. Computed as the total surface mass balance on the land ice portion of the grid cell divided by land ice area in the grid cell. A negative value means loss of ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "acabf", 
             "type": "", 
             "positive": "", 
@@ -35,13 +35,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_latent_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Upward Latent Heat Flux", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "hfls", 
-            "type": "", 
+            "type": "real", 
             "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
@@ -52,13 +52,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_sensible_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Upward Sensible Heat Flux", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "hfss", 
-            "type": "", 
+            "type": "real", 
             "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
@@ -69,11 +69,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_melt_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface ice melt flux", 
             "comment": "Loss of ice mass resulting from surface melting. Computed as the total surface melt water on the land ice portion of the grid cell divided by land ice area in the grid cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "icem", 
             "type": "", 
             "positive": "", 
@@ -86,11 +86,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_albedo", 
             "units": "1.0", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land ice or snow albedo", 
             "comment": "Mean surface albedo of entire land ice covered part of the grid cell", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "lialb", 
             "type": "", 
             "positive": "", 
@@ -103,11 +103,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where floating_ice_shelf", 
+            "cell_methods": "area: time: mean where floating_ice_shelf (comment: mask=sftflf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal specific mass balance flux of floating ice shelf", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice base.  A negative value means loss of ice. Computed as the total basal mass balance on the floating land ice (floating ice shelf) portion of the grid cell divided by floating land ice (floating ice shelf) area in the grid cell. Cell_methods: area: mean where floating_ice_shelf", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "libmassbffl", 
             "type": "", 
             "positive": "", 
@@ -120,11 +120,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal specific mass balance flux of grounded ice sheet", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice base.  A negative value means loss of ice. Computed as the total basal mass balance on the grounded land ice portion of the grid cell divided by grounded land ice area in the grid cell. Cell_methods: area: mean where grounded_ice_sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "libmassbfgr", 
             "type": "", 
             "positive": "", 
@@ -137,11 +137,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_specific_mass_flux_due_to_calving", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land ice calving flux", 
             "comment": "Loss of ice mass resulting from iceberg calving. Computed as the rate of mass loss by the ice shelf (in kg s-1) divided by the horizontal area of the ice sheet (m2) in the grid box.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "licalvf", 
             "type": "", 
             "positive": "", 
@@ -154,11 +154,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land ice vertical front mass balance flux", 
             "comment": "Total mass balance at the ice front (or vertical margin). It includes both iceberg calving and melt on vertical ice front", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "lifmassbf", 
             "type": "", 
             "positive": "", 
@@ -171,11 +171,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where floating_ice_shelf", 
+            "cell_methods": "area: time: mean where floating_ice_shelf (comment: mask=sftflf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal temperature of floating ice shelf", 
             "comment": "Basal temperature that is used to force the ice sheet models, it is the temperature AT ice shelf-ocean interface.  Cell_methods: area: mean where floating_ice_shelf", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "litempbotfl", 
             "type": "", 
             "positive": "", 
@@ -188,11 +188,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal temperature of grounded ice sheet", 
             "comment": "Basal temperature that is used to force the ice sheet models, it is the temperature AT ice sheet - bedrock interface. Cell_methods: area: mean where grounded_ice_sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "litempbotgr", 
             "type": "", 
             "positive": "", 
@@ -205,11 +205,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "temperature_at_top_of_ice_sheet_model", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Temperature at top of ice sheet model", 
             "comment": "Upper boundary temperature that is used to force ice sheet models. It is the temperature at the base of the snowpack models, and does not vary with seasons. Report surface temperature of ice sheet where snow thickness is zero", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "litemptop", 
             "type": "", 
             "positive": "", 
@@ -219,14 +219,14 @@
             "ok_max_mean_abs": ""
         }, 
         "mrroLi": {
-            "modeling_realm": "", 
+            "modeling_realm": "atmos", 
             "standard_name": "land_ice_runoff_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land Ice Runoff Flux", 
             "comment": "Runoff flux over land ice is the difference between any available liquid water in the snowpack less any refreezing. Computed as the sum of rainfall and melt of snow or ice less any refreezing or water retained in the snowpack", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "mrroLi", 
             "type": "", 
             "positive": "", 
@@ -239,13 +239,13 @@
             "modeling_realm": "land", 
             "standard_name": "surface_altitude", 
             "units": "m", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "surface altitude", 
+            "long_name": "Surface Altitude", 
             "comment": "The surface called 'surface' means the lower boundary of the atmosphere. Altitude is the (geometric) height above the geoid, which is the reference geopotential surface. The geoid is similar to mean sea level.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "orog", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -256,13 +256,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "rainfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "Rainfall rate over Land Ice", 
+            "long_name": "Rainfall Flux where Ice Free Ocean over Sea over Land Ice", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "prra", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -273,13 +273,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "snowfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Snowfall Flux", 
             "comment": "at surface; includes precipitation of all forms of water in the solid phase", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "prsn", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -290,13 +290,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Downwelling Longwave Radiation", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "rlds", 
-            "type": "", 
+            "type": "real", 
             "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
@@ -307,13 +307,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Upwelling Longwave Radiation", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "rlus", 
-            "type": "", 
+            "type": "real", 
             "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
@@ -324,13 +324,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Downwelling Shortwave Radiation", 
             "comment": "surface solar irradiance for UV calculations", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "rsds", 
-            "type": "", 
+            "type": "real", 
             "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
@@ -341,13 +341,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Upwelling Shortwave Radiation", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "rsus", 
-            "type": "", 
+            "type": "real", 
             "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
@@ -358,13 +358,13 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_sublimation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Snow and Ice Sublimation Flux", 
             "comment": "The snow and ice sublimation flux is the loss of snow and ice mass per unit area from the surface resulting from their direct conversion to water vapor that enters the atmosphere.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "sbl", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -375,13 +375,13 @@
             "modeling_realm": "landIce land", 
             "standard_name": "surface_snow_area_fraction", 
             "units": "%", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "Snow Area Fraction", 
+            "long_name": "snow cover fraction", 
             "comment": "Fraction of each grid cell that is occupied by snow that rests on land portion of cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "snc", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -392,11 +392,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_refreezing_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface snow and ice refreeze flux", 
             "comment": "Mass flux of surface meltwater which refreezes within the snowpack. Computed as the total refreezing on the land ice portion of the grid cell divided by land ice area in the grid cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "snicefreez", 
             "type": "", 
             "positive": "", 
@@ -409,11 +409,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_melt_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface snow and ice melt flux", 
             "comment": "Loss of snow and ice mass resulting from surface melting. Computed as the total surface melt on the land ice portion of the grid cell divided by land ice area in the grid cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "snicem", 
             "type": "", 
             "positive": "", 
@@ -426,11 +426,11 @@
             "modeling_realm": "landIce land", 
             "standard_name": "surface_snow_melt_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Snow Melt", 
             "comment": "The total surface snow melt rate on the land portion of the grid cell divided by the land area in the grid cell; report as zero for snow-free land regions and missing where there is no land.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "snm", 
             "type": "real", 
             "positive": "", 
@@ -443,13 +443,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "Near-Surface Air Temperature", 
+            "long_name": "Surface Temperature", 
             "comment": "near-surface (usually, 2 meter) air temperature", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "tas", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -460,11 +460,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Temperature", 
             "comment": "Temperature of the lower boundary of the atmosphere", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "ts", 
             "type": "real", 
             "positive": "", 
@@ -477,11 +477,11 @@
             "modeling_realm": "landIce land", 
             "standard_name": "temperature_in_surface_snow", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Snow Internal Temperature", 
             "comment": "This temperature is averaged over all the snow in the grid cell that rests on land or land ice.  When computing the time-mean here, the time samples, weighted by the mass of snow on the land portion of the grid cell, are accumulated and then divided by the sum of the weights.   Reported as missing in regions free of snow on land.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "tsn", 
             "type": "real", 
             "positive": "", 
diff --git a/TestTables/CMIP6_LImonant.json b/TestTables/CMIP6_ImonGre.json
similarity index 82%
rename from TestTables/CMIP6_LImonant.json
rename to TestTables/CMIP6_ImonGre.json
index 3c510ba..6a48b92 100644
--- a/TestTables/CMIP6_LImonant.json
+++ b/TestTables/CMIP6_ImonGre.json
@@ -1,28 +1,28 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table LImonant", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table ImonGre", 
         "realm": "atmos", 
         "frequency": "mon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "", 
+        "product": "model-output", 
+        "approx_interval": "30.00", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "acabf": {
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Mass Balance flux", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice surface. Computed as the total surface mass balance on the land ice portion of the grid cell divided by land ice area in the grid cell. A negative value means loss of ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "acabf", 
             "type": "", 
             "positive": "", 
@@ -35,13 +35,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_latent_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Upward Latent Heat Flux", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "hfls", 
-            "type": "", 
+            "type": "real", 
             "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
@@ -52,13 +52,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_sensible_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Upward Sensible Heat Flux", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "hfss", 
-            "type": "", 
+            "type": "real", 
             "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
@@ -69,11 +69,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_melt_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface ice melt flux", 
             "comment": "Loss of ice mass resulting from surface melting. Computed as the total surface melt water on the land ice portion of the grid cell divided by land ice area in the grid cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "icem", 
             "type": "", 
             "positive": "", 
@@ -86,11 +86,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_albedo", 
             "units": "1.0", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land ice or snow albedo", 
             "comment": "Mean surface albedo of entire land ice covered part of the grid cell", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "lialb", 
             "type": "", 
             "positive": "", 
@@ -103,11 +103,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where floating_ice_shelf", 
+            "cell_methods": "area: time: mean where floating_ice_shelf (comment: mask=sftflf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal specific mass balance flux of floating ice shelf", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice base.  A negative value means loss of ice. Computed as the total basal mass balance on the floating land ice (floating ice shelf) portion of the grid cell divided by floating land ice (floating ice shelf) area in the grid cell. Cell_methods: area: mean where floating_ice_shelf", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "libmassbffl", 
             "type": "", 
             "positive": "", 
@@ -120,11 +120,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal specific mass balance flux of grounded ice sheet", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice base.  A negative value means loss of ice. Computed as the total basal mass balance on the grounded land ice portion of the grid cell divided by grounded land ice area in the grid cell. Cell_methods: area: mean where grounded_ice_sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "libmassbfgr", 
             "type": "", 
             "positive": "", 
@@ -137,11 +137,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_specific_mass_flux_due_to_calving", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land ice calving flux", 
             "comment": "Loss of ice mass resulting from iceberg calving. Computed as the rate of mass loss by the ice shelf (in kg s-1) divided by the horizontal area of the ice sheet (m2) in the grid box.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "licalvf", 
             "type": "", 
             "positive": "", 
@@ -154,11 +154,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land ice vertical front mass balance flux", 
             "comment": "Total mass balance at the ice front (or vertical margin). It includes both iceberg calving and melt on vertical ice front", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "lifmassbf", 
             "type": "", 
             "positive": "", 
@@ -171,11 +171,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where floating_ice_shelf", 
+            "cell_methods": "area: time: mean where floating_ice_shelf (comment: mask=sftflf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal temperature of floating ice shelf", 
             "comment": "Basal temperature that is used to force the ice sheet models, it is the temperature AT ice shelf-ocean interface.  Cell_methods: area: mean where floating_ice_shelf", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "litempbotfl", 
             "type": "", 
             "positive": "", 
@@ -188,11 +188,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal temperature of grounded ice sheet", 
             "comment": "Basal temperature that is used to force the ice sheet models, it is the temperature AT ice sheet - bedrock interface. Cell_methods: area: mean where grounded_ice_sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "litempbotgr", 
             "type": "", 
             "positive": "", 
@@ -205,11 +205,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "temperature_at_top_of_ice_sheet_model", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Temperature at top of ice sheet model", 
             "comment": "Upper boundary temperature that is used to force ice sheet models. It is the temperature at the base of the snowpack models, and does not vary with seasons. Report surface temperature of ice sheet where snow thickness is zero", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "litemptop", 
             "type": "", 
             "positive": "", 
@@ -219,14 +219,14 @@
             "ok_max_mean_abs": ""
         }, 
         "mrroLi": {
-            "modeling_realm": "", 
+            "modeling_realm": "atmos", 
             "standard_name": "land_ice_runoff_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land Ice Runoff Flux", 
             "comment": "Runoff flux over land ice is the difference between any available liquid water in the snowpack less any refreezing. Computed as the sum of rainfall and melt of snow or ice less any refreezing or water retained in the snowpack", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "mrroLi", 
             "type": "", 
             "positive": "", 
@@ -239,13 +239,13 @@
             "modeling_realm": "land", 
             "standard_name": "surface_altitude", 
             "units": "m", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "surface altitude", 
+            "long_name": "Surface Altitude", 
             "comment": "The surface called 'surface' means the lower boundary of the atmosphere. Altitude is the (geometric) height above the geoid, which is the reference geopotential surface. The geoid is similar to mean sea level.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "orog", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -256,13 +256,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "rainfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "Rainfall rate over Land Ice", 
+            "long_name": "Rainfall Flux where Ice Free Ocean over Sea over Land Ice", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "prra", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -273,13 +273,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "snowfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Snowfall Flux", 
             "comment": "at surface; includes precipitation of all forms of water in the solid phase", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "prsn", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -290,13 +290,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Downwelling Longwave Radiation", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "rlds", 
-            "type": "", 
+            "type": "real", 
             "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
@@ -307,13 +307,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Upwelling Longwave Radiation", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "rlus", 
-            "type": "", 
+            "type": "real", 
             "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
@@ -324,13 +324,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Downwelling Shortwave Radiation", 
             "comment": "surface solar irradiance for UV calculations", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "rsds", 
-            "type": "", 
+            "type": "real", 
             "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
@@ -341,13 +341,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Upwelling Shortwave Radiation", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "rsus", 
-            "type": "", 
+            "type": "real", 
             "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
@@ -358,13 +358,13 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_sublimation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Snow and Ice Sublimation Flux", 
             "comment": "The snow and ice sublimation flux is the loss of snow and ice mass per unit area from the surface resulting from their direct conversion to water vapor that enters the atmosphere.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "sbl", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -375,13 +375,13 @@
             "modeling_realm": "landIce land", 
             "standard_name": "surface_snow_area_fraction", 
             "units": "%", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "Snow Area Fraction", 
+            "long_name": "snow cover fraction", 
             "comment": "Fraction of each grid cell that is occupied by snow that rests on land portion of cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "snc", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -392,11 +392,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_refreezing_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface snow and ice refreeze flux", 
             "comment": "Mass flux of surface meltwater which refreezes within the snowpack. Computed as the total refreezing on the land ice portion of the grid cell divided by land ice area in the grid cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "snicefreez", 
             "type": "", 
             "positive": "", 
@@ -409,11 +409,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_melt_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface snow and ice melt flux", 
             "comment": "Loss of snow and ice mass resulting from surface melting. Computed as the total surface melt on the land ice portion of the grid cell divided by land ice area in the grid cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "snicem", 
             "type": "", 
             "positive": "", 
@@ -426,11 +426,11 @@
             "modeling_realm": "landIce land", 
             "standard_name": "surface_snow_melt_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Snow Melt", 
             "comment": "The total surface snow melt rate on the land portion of the grid cell divided by the land area in the grid cell; report as zero for snow-free land regions and missing where there is no land.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "snm", 
             "type": "real", 
             "positive": "", 
@@ -443,13 +443,13 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "Near-Surface Air Temperature", 
+            "long_name": "Surface Temperature", 
             "comment": "near-surface (usually, 2 meter) air temperature", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "tas", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -460,11 +460,11 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Temperature", 
             "comment": "Temperature of the lower boundary of the atmosphere", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "ts", 
             "type": "real", 
             "positive": "", 
@@ -477,11 +477,11 @@
             "modeling_realm": "landIce land", 
             "standard_name": "temperature_in_surface_snow", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Snow Internal Temperature", 
             "comment": "This temperature is averaged over all the snow in the grid cell that rests on land or land ice.  When computing the time-mean here, the time samples, weighted by the mass of snow on the land portion of the grid cell, are accumulated and then divided by the sum of the weights.   Reported as missing in regions free of snow on land.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "tsn", 
             "type": "real", 
             "positive": "", 
diff --git a/TestTables/CMIP6_LIyrant.json b/TestTables/CMIP6_IyrAnt.json
similarity index 87%
rename from TestTables/CMIP6_LIyrant.json
rename to TestTables/CMIP6_IyrAnt.json
index 35eb0bd..ec87f6f 100644
--- a/TestTables/CMIP6_LIyrant.json
+++ b/TestTables/CMIP6_IyrAnt.json
@@ -1,28 +1,28 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table LIyrant", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table IyrAnt", 
         "realm": "landIce", 
         "frequency": "yr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "", 
+        "product": "model-output", 
+        "approx_interval": "365.00", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "acabf": {
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Mass Balance flux", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice surface. Computed as the total surface mass balance on the land ice portion of the grid cell divided by land ice area in the grid cell. A negative value means loss of ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "acabf", 
             "type": "", 
             "positive": "", 
@@ -39,7 +39,7 @@
             "cell_measures": "area: areacellg", 
             "long_name": "Ice-Sheet Grid Cell Area", 
             "comment": "Horizontal area of ice-sheet grid cells", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "areacelli", 
             "type": "", 
             "positive": "", 
@@ -52,11 +52,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "upward_geothermal_heat_flux_at_ground_level", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Geothermal Heat flux beneath land ice", 
             "comment": "Upward geothermal heat flux per unit area beneath land ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "hfgeoubed", 
             "type": "", 
             "positive": "", 
@@ -69,7 +69,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "floating_ice_shelf_area", 
             "units": "m2", 
-            "cell_methods": "area: time: mean where floating_ice_shelf", 
+            "cell_methods": "area: time: mean where floating_ice_shelf (comment: mask=sftflf)", 
             "cell_measures": "", 
             "long_name": "Area covered by floating ice shelves", 
             "comment": "Total area of the floating ice shelves (the component of ice sheet that flows over ocean)", 
@@ -86,7 +86,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "grounded_land_ice_area", 
             "units": "m2", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "", 
             "long_name": "Area covered by grounded ice sheet", 
             "comment": "Total area of the grounded ice sheets (the component of ice sheet resting over bedrock)", 
@@ -103,11 +103,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where floating_ice_shelf", 
+            "cell_methods": "area: time: mean where floating_ice_shelf (comment: mask=sftflf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal specific mass balance flux of floating ice shelf", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice base.  A negative value means loss of ice. Computed as the total basal mass balance on the floating land ice (floating ice shelf) portion of the grid cell divided by floating land ice (floating ice shelf) area in the grid cell. Cell_methods: area: mean where floating_ice_shelf", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "libmassbffl", 
             "type": "", 
             "positive": "", 
@@ -120,11 +120,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal specific mass balance flux of grounded ice sheet", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice base.  A negative value means loss of ice. Computed as the total basal mass balance on the grounded land ice portion of the grid cell divided by grounded land ice area in the grid cell. Cell_methods: area: mean where grounded_ice_sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "libmassbfgr", 
             "type": "", 
             "positive": "", 
@@ -137,11 +137,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_specific_mass_flux_due_to_calving", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land ice calving flux", 
             "comment": "Loss of ice mass resulting from iceberg calving. Computed as the rate of mass loss by the ice shelf (in kg s-1) divided by the horizontal area of the ice sheet (m2) in the grid box.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "licalvf", 
             "type": "", 
             "positive": "", 
@@ -154,11 +154,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land ice vertical front mass balance flux", 
             "comment": "Total mass balance at the ice front (or vertical margin). It includes both iceberg calving and melt on vertical ice front", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "lifmassbf", 
             "type": "", 
             "positive": "", 
@@ -171,7 +171,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "land_ice_mass", 
             "units": "kg", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "", 
             "long_name": "Ice sheet mass", 
             "comment": "The ice sheet mass is computed as the volume times density", 
@@ -188,7 +188,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "land_ice_mass_not_displacing_sea_water", 
             "units": "kg", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "", 
             "long_name": "Ice sheet mass that does not displace sea water", 
             "comment": "The ice sheet mass is computed as the volume above flotation times density. Changes in land_ice_mass_not_displacing_sea_water will always result in a change in sea level, unlike changes in land_ice_mass which may not result in sea level change (such as melting of the floating ice shelves, or portion of ice that sits on bedrock below sea level)", 
@@ -205,11 +205,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where floating_ice_shelf", 
+            "cell_methods": "area: time: mean where floating_ice_shelf (comment: mask=sftflf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal temperature of floating ice shelf", 
             "comment": "Basal temperature that is used to force the ice sheet models, it is the temperature AT ice shelf-ocean interface.  Cell_methods: area: mean where floating_ice_shelf", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "litempbotfl", 
             "type": "", 
             "positive": "", 
@@ -222,11 +222,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal temperature of grounded ice sheet", 
             "comment": "Basal temperature that is used to force the ice sheet models, it is the temperature AT ice sheet - bedrock interface. Cell_methods: area: mean where grounded_ice_sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "litempbotgr", 
             "type": "", 
             "positive": "", 
@@ -239,11 +239,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "temperature_at_top_of_ice_sheet_model", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Temperature at top of ice sheet model", 
             "comment": "Upper boundary temperature that is used to force ice sheet models. It is the temperature at the base of the snowpack models, and does not vary with seasons. Report surface temperature of ice sheet where snow thickness is zero", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "litemptop", 
             "type": "", 
             "positive": "", 
@@ -256,11 +256,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_thickness", 
             "units": "m", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Ice Sheet Thickness", 
             "comment": "The thickness of the ice sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "lithk", 
             "type": "", 
             "positive": "", 
@@ -273,13 +273,13 @@
             "modeling_realm": "land", 
             "standard_name": "surface_altitude", 
             "units": "m", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "surface altitude", 
+            "long_name": "Surface Altitude", 
             "comment": "The surface called 'surface' means the lower boundary of the atmosphere. Altitude is the (geometric) height above the geoid, which is the reference geopotential surface. The geoid is similar to mean sea level.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "orog", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -294,7 +294,7 @@
             "cell_measures": "area: areacellg", 
             "long_name": "Floating Ice Shelf  Area Fraction", 
             "comment": "Fraction of grid cell covered by floating ice shelf, the component of the ice sheet that is flowing over seawater", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "sftflf", 
             "type": "", 
             "positive": "", 
@@ -307,11 +307,11 @@
             "modeling_realm": "land", 
             "standard_name": "land_ice_area_fraction", 
             "units": "%", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Fraction of Grid Cell Covered with Glacier", 
             "comment": "Fraction of grid cell covered by land ice (ice sheet, ice shelf, ice cap, glacier)", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "sftgif", 
             "type": "real", 
             "positive": "", 
@@ -328,7 +328,7 @@
             "cell_measures": "area: areacellg", 
             "long_name": "Grounded Ice Sheet  Area Fraction", 
             "comment": "Fraction of grid cell covered by grounded ice sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "sftgrf", 
             "type": "", 
             "positive": "", 
@@ -341,13 +341,13 @@
             "modeling_realm": "landIce land", 
             "standard_name": "surface_snow_area_fraction", 
             "units": "%", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "Snow Area Fraction", 
+            "long_name": "snow cover fraction", 
             "comment": "Fraction of each grid cell that is occupied by snow that rests on land portion of cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "snc", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -358,11 +358,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "magnitude_of_basal_drag_at_land_ice_base", 
             "units": "Pa", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land Ice Basal Drag", 
             "comment": "Magnitude of basal drag at land ice base", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "strbasemag", 
             "type": "", 
             "positive": "", 
@@ -375,7 +375,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_land_ice_mass_due_to_surface_mass_balance", 
             "units": "kg s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "", 
             "long_name": "Total surface mass balance flux", 
             "comment": "The total surface mass balance flux over land ice is a spatial integration of the surface mass balance flux", 
@@ -392,7 +392,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_land_ice_mass_due_to_basal_mass_balance", 
             "units": "kg s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "", 
             "long_name": "Total basal mass balance flux", 
             "comment": "The total basal mass balance flux over land ice is a spatial integration of the basal mass balance flux", 
@@ -409,7 +409,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_land_ice_mass_due_to_calving", 
             "units": "kg s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "", 
             "long_name": "Total calving flux", 
             "comment": "The total calving flux over land ice is a spatial integration of the calving flux", 
@@ -426,11 +426,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "bedrock_altitude", 
             "units": "m", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Bedrock Altitude", 
             "comment": "The bedrock topography beneath the land ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "topg", 
             "type": "", 
             "positive": "", 
@@ -443,11 +443,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_x_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "X-component of land ice basal velocity", 
             "comment": "A velocity is a vector quantity. 'x' indicates a vector component along the grid x-axis, positive with increasing x. 'Land ice' means glaciers, ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. 'basal' means the lower boundary of the land ice.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "xvelbase", 
             "type": "", 
             "positive": "", 
@@ -460,11 +460,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_vertical_mean_x_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "X-component of land ice vertical mean velocity", 
             "comment": "The vertical mean land ice velocity is the average from the bedrock to the surface of the ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "xvelmean", 
             "type": "", 
             "positive": "", 
@@ -477,11 +477,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_x_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "X-component of land ice surface velocity", 
             "comment": "A velocity is a vector quantity. 'x' indicates a vector component along the grid x-axis, positive with increasing x. 'Land ice' means glaciers, ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. The surface called 'surface' means the lower boundary of the atmosphere.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "xvelsurf", 
             "type": "", 
             "positive": "", 
@@ -494,11 +494,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_y_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Y-component of land ice basal velocity", 
             "comment": "A velocity is a vector quantity. 'y' indicates a vector component along the grid y-axis, positive with increasing y. 'Land ice' means glaciers, ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. 'basal' means the lower boundary of the land ice.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "yvelbase", 
             "type": "", 
             "positive": "", 
@@ -511,11 +511,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_vertical_mean_y_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Y-component of land ice vertical mean velocity", 
             "comment": "The vertical mean land ice velocity is the average from the bedrock to the surface of the ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "yvelmean", 
             "type": "", 
             "positive": "", 
@@ -528,11 +528,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_y_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Y-component of land ice surface velocity", 
             "comment": "A velocity is a vector quantity. 'y' indicates a vector component along the grid y-axis, positive with increasing y. 'Land ice' means glaciers, ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. The surface called 'surface' means the lower boundary of the atmosphere.'", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "yvelsurf", 
             "type": "", 
             "positive": "", 
@@ -545,11 +545,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_upward_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Upward-component of land ice basal velocity", 
             "comment": "A velocity is a vector quantity. 'Upward' indicates a vector component which is positive when directed upward (negative downward). 'basal' means the lower boundary of the atmosphere", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "zvelbase", 
             "type": "", 
             "positive": "", 
@@ -562,11 +562,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_upward_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Upward component of land ice surface velocity", 
             "comment": "A velocity is a vector quantity. 'Upward' indicates a vector component which is positive when directed upward (negative downward). The surface called 'surface' means the lower boundary of the atmosphere", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xant yant time", 
             "out_name": "zvelsurf", 
             "type": "", 
             "positive": "", 
diff --git a/TestTables/CMIP6_LIyrgre.json b/TestTables/CMIP6_IyrGre.json
similarity index 87%
rename from TestTables/CMIP6_LIyrgre.json
rename to TestTables/CMIP6_IyrGre.json
index 60ba285..baeb1e2 100644
--- a/TestTables/CMIP6_LIyrgre.json
+++ b/TestTables/CMIP6_IyrGre.json
@@ -1,28 +1,28 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table LIyrgre", 
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table IyrGre", 
         "realm": "landIce", 
         "frequency": "yr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "", 
+        "product": "model-output", 
+        "approx_interval": "365.00", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "acabf": {
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Surface Mass Balance flux", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice surface. Computed as the total surface mass balance on the land ice portion of the grid cell divided by land ice area in the grid cell. A negative value means loss of ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "acabf", 
             "type": "", 
             "positive": "", 
@@ -39,7 +39,7 @@
             "cell_measures": "area: areacellg", 
             "long_name": "Ice-Sheet Grid Cell Area", 
             "comment": "Horizontal area of ice-sheet grid cells", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "areacelli", 
             "type": "", 
             "positive": "", 
@@ -52,11 +52,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "upward_geothermal_heat_flux_at_ground_level", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Geothermal Heat flux beneath land ice", 
             "comment": "Upward geothermal heat flux per unit area beneath land ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "hfgeoubed", 
             "type": "", 
             "positive": "", 
@@ -69,7 +69,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "floating_ice_shelf_area", 
             "units": "m2", 
-            "cell_methods": "area: time: mean where floating_ice_shelf", 
+            "cell_methods": "area: time: mean where floating_ice_shelf (comment: mask=sftflf)", 
             "cell_measures": "", 
             "long_name": "Area covered by floating ice shelves", 
             "comment": "Total area of the floating ice shelves (the component of ice sheet that flows over ocean)", 
@@ -86,7 +86,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "grounded_land_ice_area", 
             "units": "m2", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "", 
             "long_name": "Area covered by grounded ice sheet", 
             "comment": "Total area of the grounded ice sheets (the component of ice sheet resting over bedrock)", 
@@ -103,11 +103,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where floating_ice_shelf", 
+            "cell_methods": "area: time: mean where floating_ice_shelf (comment: mask=sftflf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal specific mass balance flux of floating ice shelf", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice base.  A negative value means loss of ice. Computed as the total basal mass balance on the floating land ice (floating ice shelf) portion of the grid cell divided by floating land ice (floating ice shelf) area in the grid cell. Cell_methods: area: mean where floating_ice_shelf", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "libmassbffl", 
             "type": "", 
             "positive": "", 
@@ -120,11 +120,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal specific mass balance flux of grounded ice sheet", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice base.  A negative value means loss of ice. Computed as the total basal mass balance on the grounded land ice portion of the grid cell divided by grounded land ice area in the grid cell. Cell_methods: area: mean where grounded_ice_sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "libmassbfgr", 
             "type": "", 
             "positive": "", 
@@ -137,11 +137,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_specific_mass_flux_due_to_calving", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land ice calving flux", 
             "comment": "Loss of ice mass resulting from iceberg calving. Computed as the rate of mass loss by the ice shelf (in kg s-1) divided by the horizontal area of the ice sheet (m2) in the grid box.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "licalvf", 
             "type": "", 
             "positive": "", 
@@ -154,11 +154,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_specific_mass_flux_due_to_calving_and_ice_front_melting", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land ice vertical front mass balance flux", 
             "comment": "Total mass balance at the ice front (or vertical margin). It includes both iceberg calving and melt on vertical ice front", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "lifmassbf", 
             "type": "", 
             "positive": "", 
@@ -171,7 +171,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "land_ice_mass", 
             "units": "kg", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "", 
             "long_name": "Ice sheet mass", 
             "comment": "The ice sheet mass is computed as the volume times density", 
@@ -188,7 +188,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "land_ice_mass_not_displacing_sea_water", 
             "units": "kg", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "", 
             "long_name": "Ice sheet mass that does not displace sea water", 
             "comment": "The ice sheet mass is computed as the volume above flotation times density. Changes in land_ice_mass_not_displacing_sea_water will always result in a change in sea level, unlike changes in land_ice_mass which may not result in sea level change (such as melting of the floating ice shelves, or portion of ice that sits on bedrock below sea level)", 
@@ -205,11 +205,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where floating_ice_shelf", 
+            "cell_methods": "area: time: mean where floating_ice_shelf (comment: mask=sftflf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal temperature of floating ice shelf", 
             "comment": "Basal temperature that is used to force the ice sheet models, it is the temperature AT ice shelf-ocean interface.  Cell_methods: area: mean where floating_ice_shelf", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "litempbotfl", 
             "type": "", 
             "positive": "", 
@@ -222,11 +222,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where grounded_ice_shelf", 
+            "cell_methods": "area: time: mean where grounded_ice_sheet (comment: mask=sfgrlf)", 
             "cell_measures": "area: areacellg", 
             "long_name": "Basal temperature of grounded ice sheet", 
             "comment": "Basal temperature that is used to force the ice sheet models, it is the temperature AT ice sheet - bedrock interface. Cell_methods: area: mean where grounded_ice_sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "litempbotgr", 
             "type": "", 
             "positive": "", 
@@ -239,11 +239,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "temperature_at_top_of_ice_sheet_model", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Temperature at top of ice sheet model", 
             "comment": "Upper boundary temperature that is used to force ice sheet models. It is the temperature at the base of the snowpack models, and does not vary with seasons. Report surface temperature of ice sheet where snow thickness is zero", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "litemptop", 
             "type": "", 
             "positive": "", 
@@ -256,11 +256,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_thickness", 
             "units": "m", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Ice Sheet Thickness", 
             "comment": "The thickness of the ice sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "lithk", 
             "type": "", 
             "positive": "", 
@@ -273,13 +273,13 @@
             "modeling_realm": "land", 
             "standard_name": "surface_altitude", 
             "units": "m", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "surface altitude", 
+            "long_name": "Surface Altitude", 
             "comment": "The surface called 'surface' means the lower boundary of the atmosphere. Altitude is the (geometric) height above the geoid, which is the reference geopotential surface. The geoid is similar to mean sea level.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "orog", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -294,7 +294,7 @@
             "cell_measures": "area: areacellg", 
             "long_name": "Floating Ice Shelf  Area Fraction", 
             "comment": "Fraction of grid cell covered by floating ice shelf, the component of the ice sheet that is flowing over seawater", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "sftflf", 
             "type": "", 
             "positive": "", 
@@ -307,11 +307,11 @@
             "modeling_realm": "land", 
             "standard_name": "land_ice_area_fraction", 
             "units": "%", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Fraction of Grid Cell Covered with Glacier", 
             "comment": "Fraction of grid cell covered by land ice (ice sheet, ice shelf, ice cap, glacier)", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "sftgif", 
             "type": "real", 
             "positive": "", 
@@ -328,7 +328,7 @@
             "cell_measures": "area: areacellg", 
             "long_name": "Grounded Ice Sheet  Area Fraction", 
             "comment": "Fraction of grid cell covered by grounded ice sheet", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "sftgrf", 
             "type": "", 
             "positive": "", 
@@ -341,13 +341,13 @@
             "modeling_realm": "landIce land", 
             "standard_name": "surface_snow_area_fraction", 
             "units": "%", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
-            "long_name": "Snow Area Fraction", 
+            "long_name": "snow cover fraction", 
             "comment": "Fraction of each grid cell that is occupied by snow that rests on land portion of cell.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "snc", 
-            "type": "", 
+            "type": "float", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -358,11 +358,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "magnitude_of_basal_drag_at_land_ice_base", 
             "units": "Pa", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Land Ice Basal Drag", 
             "comment": "Magnitude of basal drag at land ice base", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "strbasemag", 
             "type": "", 
             "positive": "", 
@@ -375,7 +375,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_land_ice_mass_due_to_surface_mass_balance", 
             "units": "kg s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "", 
             "long_name": "Total surface mass balance flux", 
             "comment": "The total surface mass balance flux over land ice is a spatial integration of the surface mass balance flux", 
@@ -392,7 +392,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_land_ice_mass_due_to_basal_mass_balance", 
             "units": "kg s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "", 
             "long_name": "Total basal mass balance flux", 
             "comment": "The total basal mass balance flux over land ice is a spatial integration of the basal mass balance flux", 
@@ -409,7 +409,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "tendency_of_land_ice_mass_due_to_calving", 
             "units": "kg s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "", 
             "long_name": "Total calving flux", 
             "comment": "The total calving flux over land ice is a spatial integration of the calving flux", 
@@ -426,11 +426,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "bedrock_altitude", 
             "units": "m", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Bedrock Altitude", 
             "comment": "The bedrock topography beneath the land ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "topg", 
             "type": "", 
             "positive": "", 
@@ -443,11 +443,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_x_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "X-component of land ice basal velocity", 
             "comment": "A velocity is a vector quantity. 'x' indicates a vector component along the grid x-axis, positive with increasing x. 'Land ice' means glaciers, ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. 'basal' means the lower boundary of the land ice.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "xvelbase", 
             "type": "", 
             "positive": "", 
@@ -460,11 +460,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_vertical_mean_x_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "X-component of land ice vertical mean velocity", 
             "comment": "The vertical mean land ice velocity is the average from the bedrock to the surface of the ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "xvelmean", 
             "type": "", 
             "positive": "", 
@@ -477,11 +477,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_x_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "X-component of land ice surface velocity", 
             "comment": "A velocity is a vector quantity. 'x' indicates a vector component along the grid x-axis, positive with increasing x. 'Land ice' means glaciers, ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. The surface called 'surface' means the lower boundary of the atmosphere.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "xvelsurf", 
             "type": "", 
             "positive": "", 
@@ -494,11 +494,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_y_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Y-component of land ice basal velocity", 
             "comment": "A velocity is a vector quantity. 'y' indicates a vector component along the grid y-axis, positive with increasing y. 'Land ice' means glaciers, ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. 'basal' means the lower boundary of the land ice.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "yvelbase", 
             "type": "", 
             "positive": "", 
@@ -511,11 +511,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_vertical_mean_y_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Y-component of land ice vertical mean velocity", 
             "comment": "The vertical mean land ice velocity is the average from the bedrock to the surface of the ice", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "yvelmean", 
             "type": "", 
             "positive": "", 
@@ -528,11 +528,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_y_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Y-component of land ice surface velocity", 
             "comment": "A velocity is a vector quantity. 'y' indicates a vector component along the grid y-axis, positive with increasing y. 'Land ice' means glaciers, ice-caps and ice-sheets resting on bedrock and also includes ice-shelves. The surface called 'surface' means the lower boundary of the atmosphere.'", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "yvelsurf", 
             "type": "", 
             "positive": "", 
@@ -545,11 +545,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_basal_upward_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Upward-component of land ice basal velocity", 
             "comment": "A velocity is a vector quantity. 'Upward' indicates a vector component which is positive when directed upward (negative downward). 'basal' means the lower boundary of the atmosphere", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "zvelbase", 
             "type": "", 
             "positive": "", 
@@ -562,11 +562,11 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_upward_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacellg", 
             "long_name": "Upward component of land ice surface velocity", 
             "comment": "A velocity is a vector quantity. 'Upward' indicates a vector component which is positive when directed upward (negative downward). The surface called 'surface' means the lower boundary of the atmosphere", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "xgre ygre time", 
             "out_name": "zvelsurf", 
             "type": "", 
             "positive": "", 
diff --git a/TestTables/CMIP6_LImon.json b/TestTables/CMIP6_LImon.json
index a126be6..94ed922 100644
--- a/TestTables/CMIP6_LImon.json
+++ b/TestTables/CMIP6_LImon.json
@@ -1,24 +1,24 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table LImon", 
         "realm": "landIce land", 
         "frequency": "mon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "30.00000", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "acabfIs": {
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_specific_mass_balance_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Mass Balance flux", 
             "comment": "Specific mass balance means the net rate at which ice is added per unit area at the land ice surface. Computed as the total surface mass balance on the land ice portion of the grid cell divided by land ice area in the grid cell. A negative value means loss of ice", 
@@ -69,7 +69,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_upward_latent_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Upward Latent Heat Flux", 
             "comment": "Upward latent heat flux from the ice sheet surface", 
@@ -86,7 +86,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_upward_sensible_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Upward Sensible Heat Flux", 
             "comment": "Upward sensible heat flux from the ice sheet surface", 
@@ -103,7 +103,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "land_ice_surface_melt_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Ice Melt Flux", 
             "comment": "Loss of ice mass resulting from surface melting. Computed as the total surface melt water on the land ice portion of the grid cell divided by land ice area in the grid cell.", 
@@ -120,7 +120,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_albedo", 
             "units": "1.0", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Ice or Snow Albedo", 
             "comment": "Mean surface albedo of entire land ice covered part of the grid cell", 
@@ -137,7 +137,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "temperature_at_top_of_ice_sheet_model", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Temperature at top of ice sheet model", 
             "comment": "Upper boundary temperature that is used to force ice sheet models. It is the temperature at the base of the snowpack models, and does not vary with seasons. Report surface temperature of ice sheet where snow thickness is zero", 
@@ -157,7 +157,7 @@
             "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Liquid Water Content of Snow Layer", 
-            "comment": "where land over land: this is computed as the total mass of liquid water contained interstitially within the snow layer of the land portion of a grid cell divided by the area of the land portion of the cell.", 
+            "comment": "The total mass of liquid water contained interstitially within the whole depth of the snow layer of the land portion of a grid cell divided by the area of the land portion of the cell.", 
             "dimensions": "longitude latitude time", 
             "out_name": "lwsnl", 
             "type": "real", 
@@ -171,7 +171,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "runoff_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Total Run-off", 
             "comment": "The total run-off (including drainage through the base of the soil model) per unit area leaving the land portion of the grid cell.", 
@@ -188,7 +188,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_altitude", 
             "units": "m", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Altitude", 
             "comment": "The surface called 'surface' means the lower boundary of the atmosphere. Altitude is the (geometric) height above the geoid, which is the reference geopotential surface. The geoid is similar to mean sea level.", 
@@ -208,7 +208,7 @@
             "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Liquid Water Content of Permafrost Layer", 
-            "comment": "''where land over land'', i.e., this is the total mass of liquid water contained within the permafrost layer within the land portion of a grid cell divided by the area of the land portion of the cell.", 
+            "comment": "*where land over land*, i.e., this is the total mass of liquid water contained within the permafrost layer within the land portion of a grid cell divided by the area of the land portion of the cell.", 
             "dimensions": "longitude latitude time", 
             "out_name": "pflw", 
             "type": "real", 
@@ -222,7 +222,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "rainfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Rainfall rate", 
             "comment": "Rainfall rate over the ice sheet", 
@@ -239,7 +239,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "snowfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Snowfall Flux", 
             "comment": "at surface; includes precipitation of all forms of water in the solid phase", 
@@ -256,7 +256,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_downwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Downwelling Longwave Radiation", 
             "comment": "", 
@@ -273,7 +273,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_upwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Upwelling Longwave Radiation", 
             "comment": "", 
@@ -290,7 +290,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Downwelling Shortwave Radiation", 
             "comment": "Surface solar irradiance for UV calculations", 
@@ -307,7 +307,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Upwelling Shortwave Radiation", 
             "comment": "", 
@@ -321,7 +321,7 @@
             "ok_max_mean_abs": ""
         }, 
         "sbl": {
-            "modeling_realm": "landIce land", 
+            "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_sublimation_flux", 
             "units": "kg m-2 s-1", 
             "cell_methods": "area: mean where land time: mean", 
@@ -341,7 +341,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_sublimation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Snow and Ice Sublimation Flux", 
             "comment": "The snow and ice sublimation flux is the loss of snow and ice mass per unit area from the surface resulting from their direct conversion to water vapor that enters the atmosphere.", 
@@ -358,7 +358,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "floating_ice_shelf_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean where floating_ice_shelf (comment: mask=sftflf)", 
             "cell_measures": "area: areacella", 
             "long_name": "Floating Ice Shelf  Area Fraction", 
             "comment": "Fraction of grid cell covered by floating ice shelf, the component of the ice sheet that is flowing over seawater", 
@@ -375,7 +375,7 @@
             "modeling_realm": "land", 
             "standard_name": "land_ice_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Fraction of Grid Cell Covered with Glacier", 
             "comment": "Fraction of grid cell covered by land ice (ice sheet, ice shelf, ice cap, glacier)", 
@@ -392,7 +392,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "grounded_ice_sheet_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Grounded Ice Sheet  Area Fraction", 
             "comment": "Fraction of grid cell covered by grounded ice sheet", 
@@ -409,7 +409,7 @@
             "modeling_realm": "landIce land", 
             "standard_name": "surface_snow_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow Area Fraction", 
             "comment": "Fraction of each grid cell that is occupied by snow that rests on land portion of cell.", 
@@ -426,10 +426,10 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_area_fraction", 
             "units": "%", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
-            "long_name": "Ice Sheet Snow Area Fraction", 
-            "comment": "Fraction of each grid cell that is occupied by snow that rests on land portion of cell.", 
+            "long_name": "Ice Sheet Snow Cover Percentage", 
+            "comment": "Percentage of each grid cell that is occupied by snow that rests on land portion of cell.", 
             "dimensions": "longitude latitude time", 
             "out_name": "sncIs", 
             "type": "", 
@@ -460,7 +460,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_refreezing_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Snow and Ice Refreeze Flux", 
             "comment": "Mass flux of surface meltwater which refreezes within the snowpack. Computed as the total refreezing on the land ice portion of the grid cell divided by land ice area in the grid cell.", 
@@ -477,7 +477,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_and_ice_melt_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Snow and Ice Melt Flux", 
             "comment": "Loss of snow and ice mass resulting from surface melting. Computed as the total surface melt on the land ice portion of the grid cell divided by land ice area in the grid cell.", 
@@ -511,7 +511,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_snow_melt_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Snow Melt", 
             "comment": "The total surface snow melt rate on the land portion of the grid cell divided by the land area in the grid cell; report as zero for snow-free land regions and missing where there is no land.", 
@@ -562,7 +562,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Near-Surface Air Temperature", 
             "comment": "near-surface (usually, 2 meter) air temperature", 
@@ -596,7 +596,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "surface_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Surface Temperature", 
             "comment": "Temperature of the lower boundary of the atmosphere", 
@@ -630,7 +630,7 @@
             "modeling_realm": "landIce", 
             "standard_name": "temperature_in_surface_snow", 
             "units": "K", 
-            "cell_methods": "area: time: mean where ice_shelf", 
+            "cell_methods": "area: time: mean where ice_sheet", 
             "cell_measures": "area: areacella", 
             "long_name": "Ice Sheet Snow Internal Temperature", 
             "comment": "This temperature is averaged over all the snow in the grid cell that rests on land or land ice.  When computing the time-mean here, the time samples, weighted by the mass of snow on the land portion of the grid cell, are accumulated and then divided by the sum of the weights.   Reported as missing in regions free of snow on land.", 
diff --git a/TestTables/CMIP6_Lmon.json b/TestTables/CMIP6_Lmon.json
index 8193740..bd2fb2a 100644
--- a/TestTables/CMIP6_Lmon.json
+++ b/TestTables/CMIP6_Lmon.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table Lmon", 
         "realm": "land", 
         "frequency": "mon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "30.00000", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "baresoilFrac": {
@@ -39,7 +39,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Burnt Area Fraction", 
             "comment": "Fraction of entire grid cell  that is covered by burnt vegetation.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time typeburnt", 
             "out_name": "burntArea", 
             "type": "real", 
             "positive": "", 
@@ -167,23 +167,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "cMisc": {
-            "modeling_realm": "land", 
-            "standard_name": "miscellaneous_living_matter_carbon_content", 
-            "units": "kg m-2", 
-            "cell_methods": "area: mean where land time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Carbon Mass in Other Living Compartments on Land", 
-            "comment": "e.g., labile, fruits, reserves, etc.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "cMisc", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "cProduct": {
             "modeling_realm": "land", 
             "standard_name": "carbon_content_of_products_of_anthropogenic_land_use_change", 
@@ -286,23 +269,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "cWood": {
-            "modeling_realm": "land", 
-            "standard_name": "wood_carbon_content", 
-            "units": "kg m-2", 
-            "cell_methods": "area: mean where land time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Carbon Mass in Wood", 
-            "comment": "Carbon mass per unit area in wood, including sapwood and hardwood.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "cWood", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "cropFrac": {
             "modeling_realm": "land", 
             "standard_name": "area_fraction", 
@@ -311,7 +277,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Crop Fraction", 
             "comment": "Percentage of entire grid cell  that is covered by crop.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time typecrop", 
             "out_name": "cropFrac", 
             "type": "real", 
             "positive": "", 
@@ -422,23 +388,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fLuc": {
-            "modeling_realm": "land", 
-            "standard_name": "surface_net_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_anthropogenic_land_use_change", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "area: mean where land time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Net Carbon Mass Flux into Atmosphere due to Land Use Change", 
-            "comment": "Carbon mass flux per unit area into atmosphere due to human changes to land (excluding forest regrowth) accounting possibly for different time-scales related to fate of the wood, for example.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fLuc", 
-            "type": "real", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "fVegLitter": {
             "modeling_realm": "land", 
             "standard_name": "litter_carbon_flux", 
@@ -498,7 +447,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Natural Grass Fraction", 
             "comment": "Percentage of entire grid cell that is covered by natural grass.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time typenatgr", 
             "out_name": "grassFrac", 
             "type": "real", 
             "positive": "", 
@@ -660,23 +609,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "nep": {
-            "modeling_realm": "land", 
-            "standard_name": "surface_net_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_all_land_processes_excluding_anthropogenic_land_use_change", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "area: mean where land time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Net Carbon Mass Flux out of Atmophere due to Net Ecosystem Productivity on Land.", 
-            "comment": "Natural flux of CO2 (expressed as a mass flux of carbon) from the atmosphere to the land calculated as the difference between uptake associated will photosynthesis and the release of CO2 from the sum of plant and soil respiration and fire.  Positive flux is into the land.  emissions from natural fires and human ignition fires as calculated by the fire module of the dynamic vegetation model, but excluding any CO2 flux from fire included in fLuc (CO2 Flux to Atmosph [...]
-            "dimensions": "longitude latitude time", 
-            "out_name": "nep", 
-            "type": "real", 
-            "positive": "down", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "npp": {
             "modeling_realm": "land", 
             "standard_name": "net_primary_productivity_of_carbon", 
@@ -753,7 +685,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Anthropogenic Pasture Fraction", 
             "comment": "Percentage of entire grid cell  that is covered by anthropogenic pasture.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time typepasture", 
             "out_name": "pastureFrac", 
             "type": "real", 
             "positive": "", 
@@ -820,7 +752,7 @@
             "cell_methods": "area: mean where land time: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Carbon Mass Flux into Atmosphere due to Autotrophic (Plant) Respiration on Land", 
-            "comment": "Carbon mass flux per unit area into atmosphere due to autotrophic respiration on land (respiration by producers) [see rh for heterotrophic production] ", 
+            "comment": "Carbon mass flux per unit area into atmosphere due to autotrophic respiration on land (respiration by producers) [see rh for heterotrophic production]", 
             "dimensions": "longitude latitude time", 
             "out_name": "ra", 
             "type": "real", 
@@ -834,7 +766,7 @@
             "modeling_realm": "land", 
             "standard_name": "area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Fraction of Grid Cell that is Land but Neither Vegetation-Covered nor Bare Soil", 
             "comment": "Percentage of entire grid cell  that is land and is covered by  neither vegetation nor bare-soil (e.g., urban, ice, lakes, etc.)", 
@@ -872,7 +804,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Shrub Fraction", 
             "comment": "Percentage of entire grid cell  that is covered by shrub.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time typeshrub", 
             "out_name": "shrubFrac", 
             "type": "real", 
             "positive": "", 
@@ -906,7 +838,7 @@
             "cell_measures": "area: areacella", 
             "long_name": "Tree Cover Fraction", 
             "comment": "Percentage of entire grid cell  that is covered by trees.", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time typetree", 
             "out_name": "treeFrac", 
             "type": "real", 
             "positive": "", 
diff --git a/TestTables/CMIP6_Oclim.json b/TestTables/CMIP6_Oclim.json
index a6cc156..02897a0 100644
--- a/TestTables/CMIP6_Oclim.json
+++ b/TestTables/CMIP6_Oclim.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table Oclim", 
         "realm": "ocean", 
         "frequency": "monClim", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "30.00000", 
         "generic_levels": "olevel", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "difmxybo": {
@@ -442,7 +442,7 @@
         "dispkexyfo": {
             "modeling_realm": "ocean", 
             "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", 
-            "units": "W m-2 ", 
+            "units": "W m-2", 
             "cell_methods": "time: mean within years time: mean over years", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to XY Friction", 
@@ -459,7 +459,7 @@
         "dispkexyfo2d": {
             "modeling_realm": "ocean", 
             "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", 
-            "units": "W m-2 ", 
+            "units": "W m-2", 
             "cell_methods": "time: mean within years time: mean over years", 
             "cell_measures": "area: areacello", 
             "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to XY Friction", 
@@ -476,7 +476,7 @@
         "tnkebto": {
             "modeling_realm": "ocean", 
             "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_bolus_transport", 
-            "units": "W m-2 ", 
+            "units": "W m-2", 
             "cell_methods": "time: mean within years time: mean over years", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Tendency of Ocean Eddy Kinetic Energy Content due to Bolus Transport", 
@@ -493,7 +493,7 @@
         "tnkebto2d": {
             "modeling_realm": "ocean", 
             "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_bolus_transport", 
-            "units": "W m-2 ", 
+            "units": "W m-2", 
             "cell_methods": "time: mean within years time: mean over years", 
             "cell_measures": "area: areacello", 
             "long_name": "Tendency of Ocean Eddy Kinetic Energy Content due to Bolus Transport", 
@@ -510,7 +510,7 @@
         "tnpeo": {
             "modeling_realm": "ocean", 
             "standard_name": "tendency_of_ocean_potential_energy_content", 
-            "units": "W m-2 ", 
+            "units": "W m-2", 
             "cell_methods": "time: mean within years time: mean over years", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Tendency of Ocean Potential Energy Content", 
@@ -563,7 +563,7 @@
             "standard_name": "depth_below_geoid", 
             "units": "m", 
             "cell_methods": "time: mean within years time: mean over years", 
-            "cell_measures": "area: areacello", 
+            "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Depth Below Geoid of Ocean Layer", 
             "comment": "Depth below geoid", 
             "dimensions": "longitude latitude olevel time2", 
@@ -580,7 +580,7 @@
             "standard_name": "depth_below_geoid", 
             "units": "m", 
             "cell_methods": "time: mean within years time: mean over years", 
-            "cell_measures": "area: areacello", 
+            "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Depth Below Geoid of Interfaces Between Ocean Layers", 
             "comment": "Depth below geoid", 
             "dimensions": "longitude latitude olevel time2", 
diff --git a/TestTables/CMIP6_Oday.json b/TestTables/CMIP6_Oday.json
index 3d673a8..da22d8e 100644
--- a/TestTables/CMIP6_Oday.json
+++ b/TestTables/CMIP6_Oday.json
@@ -1,25 +1,25 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table Oday", 
-        "realm": "ocean", 
+        "realm": "ocnBgchem", 
         "frequency": "day", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "1.00000", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "chlos": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", 
             "units": "kg m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Sea Surface Total Chlorophyll Mass Concentration", 
             "comment": "Sum of chlorophyll from all phytoplankton group concentrations at the sea surface.  In most models this is equal to chldiat+chlmisc, that is the sum of 'Diatom Chlorophyll Mass Concentration' plus 'Other Phytoplankton Chlorophyll Mass Concentration'", 
             "dimensions": "longitude latitude time", 
@@ -31,12 +31,29 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "omldamax": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", 
+            "units": "m", 
+            "cell_methods": "area: mean time: maximum", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "omldamax", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "phycos": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Sea Surface Phytoplankton Carbon Concentration", 
             "comment": "sum of phytoplankton organic carbon component concentrations at the sea surface", 
             "dimensions": "longitude latitude time", 
@@ -84,12 +101,12 @@
         }, 
         "tos": {
             "modeling_realm": "ocean", 
-            "standard_name": "sea_surface_temperature", 
+            "standard_name": "surface_temperature", 
             "units": "K", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
             "long_name": "Sea Surface Temperature", 
-            "comment": "this may differ from 'surface temperature' in regions of sea ice.", 
+            "comment": "temperature of liquid ocean.  Note that the correct standard_name for this variable is 'sea_surface_temperature', not 'surface_temperature', but this was discovered too late to correct.  To maintain consistency across CMIP5 models, the wrong standard_name will continue to be used.", 
             "dimensions": "longitude latitude time", 
             "out_name": "tos", 
             "type": "real", 
diff --git a/TestTables/CMIP6_Odec.json b/TestTables/CMIP6_Odec.json
new file mode 100644
index 0000000..8793ec3
--- /dev/null
+++ b/TestTables/CMIP6_Odec.json
@@ -0,0 +1,426 @@
+{
+    "Header": {
+        "data_specs_version": "01.00.06", 
+        "table_id": "Table Odec", 
+        "realm": "ocean", 
+        "frequency": "dec", 
+        "cmor_version": "3.2", 
+        "table_date": "10 April 2017", 
+        "missing_value": "1e20", 
+        "product": "model-output", 
+        "approx_interval": "", 
+        "generic_levels": "", 
+        "mip_era": "CMIP6", 
+        "Conventions": "CF-1.7 CMIP-6.0"
+    }, 
+    "variable_entry": {
+        "agessc": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_age_since_surface_contact", 
+            "units": "yr", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Sea Water Age Since Surface Contact", 
+            "comment": "Time elapsed since water was last in surface layer of the ocean.", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "agessc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "bigthetaoga": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_conservative_temperature", 
+            "units": "degC", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "", 
+            "long_name": "Global Average Sea Water Conservative Temperature", 
+            "comment": "Diagnostic should be contributed only for models using conservative temperature as prognostic field.", 
+            "dimensions": "time", 
+            "out_name": "bigthetaoga", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "hfbasin": {
+            "modeling_realm": "ocean", 
+            "standard_name": "northward_ocean_heat_transport", 
+            "units": "W", 
+            "cell_methods": "longitude: mean (basin) time: mean", 
+            "cell_measures": "", 
+            "long_name": "Northward Ocean Heat Transport", 
+            "comment": "Contains contributions from all physical processes affecting the northward heat transport, including resolved advection, parameterized advection, lateral diffusion, etc. Diagnosed here as a function of latitude and basin.   Use Celsius for temperature scale.", 
+            "dimensions": "latitude basin time", 
+            "out_name": "hfbasin", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "hfds": {
+            "modeling_realm": "ocean", 
+            "standard_name": "surface_downward_heat_flux_in_sea_water", 
+            "units": "W m-2", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Downward Heat Flux at Sea Water Surface", 
+            "comment": "This is the net flux of heat entering the liquid water column through its upper surface (excluding any 'flux adjustment') .", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "hfds", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "masso": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_mass", 
+            "units": "kg", 
+            "cell_methods": "area: sum where sea time: mean", 
+            "cell_measures": "", 
+            "long_name": "Sea Water Mass", 
+            "comment": "Total mass of liquid seawater. For Boussinesq models, report this diagnostic as Boussinesq reference density times total volume.", 
+            "dimensions": "time", 
+            "out_name": "masso", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftmyz": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_meridional_overturning_mass_streamfunction", 
+            "units": "kg s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "Ocean Meridional Overturning Mass Streamfunction", 
+            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
+            "dimensions": "latitude olevel basin time", 
+            "out_name": "msftmyz", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "sfdsi": {
+            "modeling_realm": "ocean seaIce", 
+            "standard_name": "downward_sea_ice_basal_salt_flux", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Downward Sea Ice Basal Salt Flux", 
+            "comment": "This field is physical, and it arises since sea ice has a nonzero salt content, so it exchanges salt with the liquid ocean upon melting and freezing.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "sfdsi", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "sfriver": {
+            "modeling_realm": "ocean", 
+            "standard_name": "salt_flux_into_sea_water_from_rivers", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Salt Flux into Sea Water from Rivers", 
+            "comment": "This field is physical, and it arises when rivers carry a nonzero salt content.  Often this is zero, with rivers assumed to be fresh.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "sfriver", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "so": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_salinity", 
+            "units": "0.001", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Sea Water Salinity", 
+            "comment": "", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "so", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "soga": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_salinity", 
+            "units": "0.001", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "", 
+            "long_name": "Global Mean Sea Water Salinity", 
+            "comment": "", 
+            "dimensions": "time", 
+            "out_name": "soga", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "sos": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_surface_salinity", 
+            "units": "0.001", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Sea Surface Salinity", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "sos", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "sosga": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_surface_salinity", 
+            "units": "0.001", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "", 
+            "long_name": "Global Average Sea Surface Salinity", 
+            "comment": "", 
+            "dimensions": "time", 
+            "out_name": "sosga", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tauuo": {
+            "modeling_realm": "ocean", 
+            "standard_name": "surface_downward_x_stress", 
+            "units": "N m-2", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Surface Downward X Stress", 
+            "comment": "This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "tauuo", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tauvo": {
+            "modeling_realm": "ocean", 
+            "standard_name": "surface_downward_y_stress", 
+            "units": "N m-2", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Surface Downward Y Stress", 
+            "comment": "This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "tauvo", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "thetao": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_potential_temperature", 
+            "units": "degC", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Sea Water Potential Temperature", 
+            "comment": "Diagnostic should be contributed even for models using conservative temperature as prognostic field.", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "thetao", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "thetaoga": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_potential_temperature", 
+            "units": "degC", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "", 
+            "long_name": "Global Average Sea Water Potential Temperature", 
+            "comment": "Diagnostic should be contributed even for models using conservative temperature as prognostic field", 
+            "dimensions": "time", 
+            "out_name": "thetaoga", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "thkcello": {
+            "modeling_realm": "ocean", 
+            "standard_name": "cell_thickness", 
+            "units": "m", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Ocean Model Cell Thickness", 
+            "comment": "", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "thkcello", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tos": {
+            "modeling_realm": "ocean", 
+            "standard_name": "surface_temperature", 
+            "units": "K", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Sea Surface Temperature", 
+            "comment": "temperature of liquid ocean.  Note that the correct standard_name for this variable is 'sea_surface_temperature', not 'surface_temperature', but this was discovered too late to correct.  To maintain consistency across CMIP5 models, the wrong standard_name will continue to be used.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "tos", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "tosga": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_surface_temperature", 
+            "units": "degC", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "", 
+            "long_name": "Global Average Sea Surface Temperature", 
+            "comment": "This may differ from 'surface temperature' in regions of sea ice.This may differ from 'surface temperature' in regions of sea ice.For models using conservative temperature as prognostic field, they should report the SST as surface potent", 
+            "dimensions": "time", 
+            "out_name": "tosga", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "uo": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_x_velocity", 
+            "units": "m s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "--OPT", 
+            "long_name": "Sea Water X Velocity", 
+            "comment": "Prognostic x-ward velocity component resolved by the model.", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "uo", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "vo": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_y_velocity", 
+            "units": "m s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "--OPT", 
+            "long_name": "Sea Water Y Velocity", 
+            "comment": "Prognostic x-ward velocity component resolved by the model.", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "vo", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "volo": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_volume", 
+            "units": "m3", 
+            "cell_methods": "area: sum where sea time: mean", 
+            "cell_measures": "", 
+            "long_name": "Sea Water Volume", 
+            "comment": "Total volume of liquid seawater.", 
+            "dimensions": "time", 
+            "out_name": "volo", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "wfo": {
+            "modeling_realm": "ocean", 
+            "standard_name": "water_flux_into_sea_water", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Water Flux into Sea Water", 
+            "comment": "computed as the water  flux into the ocean divided by the area of the ocean portion of the grid cell.  This is the sum of the next two variables in this table.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "wfo", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "wo": {
+            "modeling_realm": "ocean", 
+            "standard_name": "upward_sea_water_velocity", 
+            "units": "m s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "--OPT", 
+            "long_name": "Sea Water Z Velocity", 
+            "comment": "", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "wo", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }
+    }
+}
diff --git a/TestTables/CMIP6_Ofx.json b/TestTables/CMIP6_Ofx.json
index dbe1868..1d94f51 100644
--- a/TestTables/CMIP6_Ofx.json
+++ b/TestTables/CMIP6_Ofx.json
@@ -1,25 +1,25 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table Ofx", 
         "realm": "ocean", 
         "frequency": "fx", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "areacello": {
             "modeling_realm": "ocean", 
             "standard_name": "cell_area", 
             "units": "m2", 
-            "cell_methods": "", 
-            "cell_measures": "", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacello", 
             "long_name": "Ocean Grid-Cell Area", 
             "comment": "Horizontal area of ocean grid cells", 
             "dimensions": "longitude latitude", 
@@ -35,7 +35,7 @@
             "modeling_realm": "ocean", 
             "standard_name": "region", 
             "units": "1.0", 
-            "cell_methods": "area: point", 
+            "cell_methods": "area: mean", 
             "cell_measures": "area: areacello", 
             "long_name": "Region Selection Index", 
             "comment": "", 
@@ -45,21 +45,20 @@
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
-            "flag_values": "0 1 2 3 4 5 6 7 8 9 10", 
             "flag_meanings": "global_land southern_ocean atlantic_ocean pacific_ocean arctic_ocean indian_ocean mediterranean_sea black_sea hudson_bay baltic_sea red_sea", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "cpocean": {
+        "deptho": {
             "modeling_realm": "ocean", 
-            "standard_name": "specific_heat_capacity_of_seawater", 
-            "units": "J kg-1 K-1", 
-            "cell_methods": "", 
-            "cell_measures": "", 
-            "long_name": "Sea water specific heat capacity", 
-            "comment": "A global constant used to convert between temperature flux and heat flux, and to compute heat content of sea water.", 
-            "dimensions": "", 
-            "out_name": "cpocean", 
+            "standard_name": "sea_floor_depth_below_geoid", 
+            "units": "m", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Sea Floor Depth Below Geoid", 
+            "comment": "Ocean bathymetry.   Reported here is the sea floor depth for present day relative to z=0 geoid. Reported as missing for land grid cells.", 
+            "dimensions": "longitude latitude", 
+            "out_name": "deptho", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -67,18 +66,18 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "deptho": {
+        "hfgeou": {
             "modeling_realm": "ocean", 
-            "standard_name": "sea_floor_depth_below_geoid", 
-            "units": "m", 
+            "standard_name": "upward_geothermal_heat_flux_at_sea_floor", 
+            "units": "W m-2", 
             "cell_methods": "area: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Sea Floor Depth Below Geoid", 
-            "comment": "Ocean bathymetry.   Reported here is the sea floor depth for present day relative to z=0 geoid. Reported as missing for land grid cells.", 
+            "long_name": "Upward Geothermal Heat Flux at Sea Floor", 
+            "comment": "", 
             "dimensions": "longitude latitude", 
-            "out_name": "deptho", 
+            "out_name": "hfgeou", 
             "type": "real", 
-            "positive": "", 
+            "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
@@ -88,8 +87,8 @@
             "modeling_realm": "ocean", 
             "standard_name": "sea_water_mass_per_unit_area", 
             "units": "kg m-2", 
-            "cell_methods": "", 
-            "cell_measures": "", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Ocean Grid-Cell Mass per area", 
             "comment": "Tracer grid-cell mass per unit area used for computing tracer budgets. For Boussinesq models with static ocean grid cell thickness, masscello = rhozero*thickcello, where thickcello is static cell thickness and rhozero is constant Boussinesq reference density. More generally, masscello is time dependent and reported as part of Omon.", 
             "dimensions": "longitude latitude olevel", 
@@ -101,16 +100,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "rhozero": {
+        "sftof": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_area_fraction", 
+            "units": "%", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Sea Area Fraction", 
+            "comment": "This is the area fraction at the ocean surface.", 
+            "dimensions": "longitude latitude", 
+            "out_name": "sftof", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "thkcello": {
             "modeling_realm": "ocean", 
-            "standard_name": "reference_sea_water_density_for_Boussinesq_approximation", 
-            "units": "kg m-3", 
-            "cell_methods": "", 
-            "cell_measures": "", 
-            "long_name": "Boussinesq reference density", 
-            "comment": "Relevant only for Boussinesq ocean models", 
-            "dimensions": "", 
-            "out_name": "rhozero", 
+            "standard_name": "cell_thickness", 
+            "units": "m", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Ocean Model Cell Thickness", 
+            "comment": "", 
+            "dimensions": "longitude latitude olevel", 
+            "out_name": "thkcello", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "volcello": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_volume", 
+            "units": "m3", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Ocean Grid-Cell Volume", 
+            "comment": "grid-cell volume ca. 2000.", 
+            "dimensions": "longitude latitude olevel", 
+            "out_name": "volcello", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
diff --git a/TestTables/CMIP6_Omon.json b/TestTables/CMIP6_Omon.json
index fda0808..a2b9fe2 100644
--- a/TestTables/CMIP6_Omon.json
+++ b/TestTables/CMIP6_Omon.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table Omon", 
         "realm": "ocnBgchem", 
         "frequency": "mon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "30.00000", 
         "generic_levels": "olevel", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "agessc": {
@@ -35,11 +35,11 @@
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
             "long_name": "Aragonite Concentration", 
             "comment": "Sum of particulate aragonite components (e.g. Phytoplankton, Detrital, etc.)", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "arag", 
             "type": "real", 
             "positive": "", 
@@ -48,15 +48,32 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "aragos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_aragonite_epressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Aragonite Concentration", 
+            "comment": "sum of particulate aragonite components (e.g. Phytoplankton, Detrital, etc.)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "aragos", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "bacc": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
             "long_name": "Bacterial Carbon Concentration", 
             "comment": "Sum of bacterial carbon component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "bacc", 
             "type": "real", 
             "positive": "", 
@@ -65,15 +82,32 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "baccos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Bacterial Carbon Concentration", 
+            "comment": "sum of bacterial carbon component concentrations", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "baccos", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "bfe": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Particulate Biogenic Iron Concentration", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Particulate Organic Matter expressed as Iron in sea water", 
             "comment": "Sum of particulate organic iron component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "bfe", 
             "type": "real", 
             "positive": "", 
@@ -82,6 +116,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "bfeos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Iron in sea water", 
+            "comment": "sum of particulate organic iron component concentrations", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "bfeos", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "bigthetao": {
             "modeling_realm": "ocean", 
             "standard_name": "sea_water_conservative_temperature", 
@@ -120,11 +171,11 @@
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Particulate Biogenic Silica Concentration", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Particulate Organic Matter expressed as silicon in sea water", 
             "comment": "Sum of particulate silica component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "bsi", 
             "type": "real", 
             "positive": "", 
@@ -133,15 +184,32 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "bsios": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Silicon in sea water", 
+            "comment": "sum of particulate silica component concentrations", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "bsios", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "calc": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
             "long_name": "Calcite Concentration", 
             "comment": "Sum of particulate calcite component concentrations (e.g. Phytoplankton, Detrital, etc.)", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "calc", 
             "type": "real", 
             "positive": "", 
@@ -150,10 +218,27 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "calcos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_calcite_epressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Calcite Concentration", 
+            "comment": "sum of particulate calcite component concentrations (e.g. Phytoplankton, Detrital, etc.)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "calcos", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "cfc11": {
             "modeling_realm": "ocean", 
-            "standard_name": "moles_of_cfc11_per_unit_mass_in_sea_water", 
-            "units": "mol kg-1", 
+            "standard_name": "mole_concentration_of_cfc11_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Moles Per Unit Mass of CFC-11 in sea water", 
@@ -169,8 +254,8 @@
         }, 
         "cfc12": {
             "modeling_realm": "ocean", 
-            "standard_name": "moles_of_cfc12_per_unit_mass_in_sea_water", 
-            "units": "mol kg-1", 
+            "standard_name": "mole_concentration_of_cfc12_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Moles Per Unit Mass of CFC-12 in sea water", 
@@ -188,11 +273,11 @@
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", 
             "units": "kg m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Total Chlorophyll Mass Concentration", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mass Concentration of Total Chlorophyll in sea water", 
             "comment": "Sum of chlorophyll from all phytoplankton group concentrations.  In most models this is equal to chldiat+chlmisc, that is the sum of Diatom Chlorophyll Mass Concentration and Other Phytoplankton Chlorophyll Mass Concentration", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "chl", 
             "type": "real", 
             "positive": "", 
@@ -205,11 +290,11 @@
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", 
             "units": "kg m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in Sea Water", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in sea water", 
             "comment": "chlorophyll concentration from the calcite-producing phytoplankton component alone", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "chlcalc", 
             "type": "real", 
             "positive": "", 
@@ -218,15 +303,32 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "chlcalcos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", 
+            "units": "kg m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in sea water", 
+            "comment": "chlorophyll concentration from the calcite-producing phytoplankton component alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "chlcalcos", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "chldiat": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", 
             "units": "kg m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Diatom Chlorophyll Mass Concentration", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mass Concentration of Diatom expressed as Chlorophyll in sea water", 
             "comment": "Chlorophyll from diatom phytoplankton component concentration alone", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "chldiat", 
             "type": "real", 
             "positive": "", 
@@ -235,15 +337,32 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "chldiatos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", 
+            "units": "kg m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Mass Concentration of Diatoms expressed as Chlorophyll in sea water", 
+            "comment": "chlorophyll from diatom phytoplankton component concentration alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "chldiatos", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "chldiaz": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", 
             "units": "kg m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in Sea Water", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in sea water", 
             "comment": "Chlorophyll concentration from the diazotrophic phytoplankton component alone", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "chldiaz", 
             "type": "real", 
             "positive": "", 
@@ -252,16 +371,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "chlmisc": {
+        "chldiazos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", 
+            "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", 
             "units": "kg m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Other Phytoplankton Chlorophyll Mass Concentration", 
-            "comment": "Chlorophyll from additional phytoplankton component concentrations alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "chlmisc", 
+            "long_name": "Surface Mass Concentration of Diazotrophs expressed as Chlorophyll in sea water", 
+            "comment": "chlorophyll concentration from the diazotrophic phytoplankton component alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "chldiazos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -269,16 +388,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "chlpico": {
+        "chlmisc": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", 
+            "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", 
             "units": "kg m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in Sea Water", 
-            "comment": "chlorophyll concentration from the picophytoplankton (<2 um) component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "chlpico", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mass Concentration of Other Phytoplankton expressed as Chlorophyll in sea water", 
+            "comment": "Chlorophyll from additional phytoplankton component concentrations alone", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "chlmisc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -286,16 +405,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "co3": {
+        "chlmiscos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", 
-            "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", 
+            "units": "kg m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Carbonate ion in Seawater", 
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "co3", 
+            "long_name": "Surface Mass Concentration of Other Phytoplankton expressed as Chlorophyll in sea water", 
+            "comment": "chlorophyll from additional phytoplankton component concentrations alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "chlmiscos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -303,16 +422,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "co3satarag": {
+        "chlos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_at_saturation", 
-            "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", 
+            "units": "kg m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Carbonate ion for Seawater in equilibrium with pure Aragonite", 
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "co3satarag", 
+            "long_name": "Surface Mass Concentration of Total Phytoplankton expressed as Chlorophyll in sea water", 
+            "comment": "Sum of chlorophyll from all phytoplankton group concentrations at the sea surface.  In most models this is equal to chldiat+chlmisc, that is the sum of 'Diatom Chlorophyll Mass Concentration' plus 'Other Phytoplankton Chlorophyll Mass Concentration'", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "chlos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -320,16 +439,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "co3satcalc": {
+        "chlpico": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_at_saturation", 
-            "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Carbonate ion for Seawater in equilibrium with pure Calcite", 
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "co3satcalc", 
+            "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", 
+            "units": "kg m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in sea water", 
+            "comment": "chlorophyll concentration from the picophytoplankton (<2 um) component alone", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "chlpico", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -337,16 +456,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "detoc": {
+        "chlpicoos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", 
-            "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", 
+            "units": "kg m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Detrital Organic Carbon Concentration", 
-            "comment": "Sum of detrital organic carbon component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "detoc", 
+            "long_name": "Surface Mass Concentration of Picophytoplankton expressed as Chlorophyll in sea water", 
+            "comment": "chlorophyll concentration from the picophytoplankton (<2 um) component alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "chlpicoos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -354,16 +473,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "dfe": {
+        "co3": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", 
+            "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dissolved Iron Concentration", 
-            "comment": "Dissolved iron in sea water,  including both Fe2+ and Fe3+ ions (but not particulate detrital iron)", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "dfe", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Carbonate ion Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "co3", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -371,16 +490,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "dissi14cabio": {
+        "co3abio": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_dissolved_inorganic_14carbon_in_sea_water_abiotic_component", 
+            "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water_due_to_abiotic_component", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Abiotic Dissolved Inorganic 14Carbon Concentration", 
-            "comment": "Abiotic Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "dissi14cabio", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Abiotic Carbonate ion Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "co3abio", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -388,16 +507,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "dissic": {
+        "co3abioos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", 
+            "standard_name": "surface_mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water_due_to_abiotic_component", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dissolved Inorganic Carbon Concentration", 
-            "comment": "Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "dissic", 
+            "long_name": "Surface Abiotic Carbonate ion Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "co3abioos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -405,16 +524,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "dissicabio": {
+        "co3nat": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_abiotic_component", 
+            "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water_due_to_natural_component", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Abiotic Dissolved Inorganic Carbon Concentration", 
-            "comment": "Abiotic Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "dissicabio", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Natural Carbonate ion Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "co3nat", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -422,16 +541,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "dissicnat": {
+        "co3natos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_natural_component", 
+            "standard_name": "surface_mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water_due_to_natural_component", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Natural Dissolved Inorganic Carbon Concentration", 
-            "comment": "Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration at preindustrial atmospheric xCO2", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "dissicnat", 
+            "long_name": "Surface Natural Carbonate ion Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "co3natos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -439,16 +558,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "dissoc": {
+        "co3os": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", 
+            "standard_name": "surface_mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dissolved Organic Carbon Concentration", 
-            "comment": "Sum of dissolved carbon component concentrations explicitly represented (i.e. not ~40 uM refractory unless explicit)", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "dissoc", 
+            "long_name": "Surface Carbonate ion Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "co3os", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -456,16 +575,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "dms": {
+        "co3satarag": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_fraction_of_dimethyl_sulfide_in_air", 
-            "units": "mol mol-1", 
+            "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_at_saturation", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Dimethyl Sulphide Concentration", 
+            "long_name": "Carbonate ion Concentration for sea water in equilibrium with pure Aragonite", 
             "comment": "", 
             "dimensions": "longitude latitude time depth0m", 
-            "out_name": "dms", 
+            "out_name": "co3satarag", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -473,33 +592,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "dmso": {
+        "co3sataragos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_dimethyl_sulfide_in_sea_water", 
+            "standard_name": "surface_mole_concentration_of_carbonate_expressed_as_carbon_for_sea_water_in_equilibrium_with_pure_aragonite", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dimethyl Sulphide Concentration", 
-            "comment": "Mole concentration of dimethyl sulphide in water", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "dmso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "dpco2": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air", 
-            "units": "Pa", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Delta PCO2", 
+            "long_name": "Surface Mole Concentration of Carbonate Ion in Equilibrium with Pure Aragonite in sea water", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "dpco2", 
+            "out_name": "co3sataragos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -507,16 +609,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "dpo2": {
+        "co3satcalc": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "surface_molecular_oxygen_partial_pressure_difference_between_sea_water_and_air", 
-            "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_at_saturation", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Delta PO2", 
+            "long_name": "Carbonate ion Concentration for sea water in equilibrium with pure Calcite", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "dpo2", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "co3satcalc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -524,16 +626,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "evs": {
-            "modeling_realm": "ocean", 
-            "standard_name": "water_evaporation_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Water Evaporation Flux Where Ice Free Ocean over Sea", 
-            "comment": "computed as the total mass of water vapor evaporating from the ice-free portion of the ocean  divided by the area of the ocean portion of the grid cell.", 
+        "co3satcalcos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_carbonate_expressed_as_carbon_for_sea_water_in_equilibrium_with_pure_calcite", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Mole Concentration of Carbonate Ion in Equilibrium with Pure Calcite in sea water", 
+            "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "evs", 
+            "out_name": "co3satcalcos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -541,152 +643,152 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "exparag100": {
+        "detoc": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Aragonite", 
-            "comment": "Downward flux of Aragonite at 100m", 
-            "dimensions": "longitude latitude time depth100m", 
-            "out_name": "exparag100", 
+            "long_name": "Detrital Organic Carbon Concentration", 
+            "comment": "Sum of detrital organic carbon component concentrations", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "detoc", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "expc": {
+        "detocos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "surface_mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Sinking Particulate Organic Carbon Flux", 
-            "comment": "Downward flux of particulate organic carbon", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "expc", 
+            "long_name": "Surface Detrital Organic Carbon Concentration", 
+            "comment": "sum of detrital organic carbon component concentrations", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "detocos", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "expc100": {
+        "dfe": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Particle Organic Carbon", 
-            "comment": "Downward flux of particulate organic carbon at 100m", 
-            "dimensions": "longitude latitude time depth100m", 
-            "out_name": "expc100", 
+            "long_name": "Mole Concentration of Dissolved Iron in sea water", 
+            "comment": "Dissolved iron in sea water,  including both Fe2+ and Fe3+ ions (but not particulate detrital iron)", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dfe", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "expcalc100": {
+        "dfeos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "surface_mole_concentration_of_dissolved_iron_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Calcite", 
-            "comment": "Downward flux of Calcite at 100m", 
-            "dimensions": "longitude latitude time depth100m", 
-            "out_name": "expcalc100", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Dissolved Iron Concentration", 
+            "comment": "dissolved iron in sea water is meant to include both Fe2+ and Fe3+ ions (but not, e.g., particulate detrital iron)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "dfeos", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "expfe100": {
+        "dissi13c": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon13_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Particulate Iron", 
-            "comment": "", 
-            "dimensions": "longitude latitude time depth100m", 
-            "out_name": "expfe100", 
+            "long_name": "Dissolved Inorganic 13Carbon Concentration", 
+            "comment": "Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dissi13c", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "expn100": {
+        "dissi13cos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "sinking_mole_flux_of_particulate_nitrogen_in_sea_water", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "surface_mole_concentration_of_dissolved_inorganic_carbon13_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Particulate Nitrogen", 
-            "comment": "", 
-            "dimensions": "longitude latitude time depth100m", 
-            "out_name": "expn100", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Dissolved Inorganic 13Carbon Concentration", 
+            "comment": "Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "dissi13cos", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "expp100": {
+        "dissi14cabio": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "sinking_mole_flux_of_particulate_phosphorus_in_sea_water", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon14_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Particulate Phosphorus", 
-            "comment": "", 
-            "dimensions": "longitude latitude time depth100m", 
-            "out_name": "expp100", 
+            "long_name": "Abiotic Dissolved Inorganic 14Carbon Concentration", 
+            "comment": "Abiotic Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dissi14cabio", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "expsi100": {
+        "dissi14cabioos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "surface_mole_concentration_of_dissolved_inorganic_carbon14_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Downward Flux of Particulate Silica", 
-            "comment": "", 
-            "dimensions": "longitude latitude time depth100m", 
-            "out_name": "expsi100", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Abiotic Dissolved Inorganic 14Carbon Concentration", 
+            "comment": "Abiotic Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "dissi14cabioos", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fbddtalk": {
+        "dissic": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Biological Alkalinity due to Biological Activity", 
-            "comment": "vertical integral of net biological terms in time rate of change of alkalinity", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fbddtalk", 
+            "long_name": "Dissolved Inorganic Carbon Concentration", 
+            "comment": "Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dissic", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -694,16 +796,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fbddtdic": {
+        "dissicabio": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon_due_to_biological_processes", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_abiotic_component", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", 
-            "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic carbon", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fbddtdic", 
+            "long_name": "Abiotic Dissolved Inorganic Carbon Concentration", 
+            "comment": "Abiotic Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dissicabio", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -711,16 +813,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fbddtdife": {
+        "dissicabioos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron_due_to_biological_processes", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "surface_mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_due_to_abiotic_component", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Dissolved Inorganic Iron due to Biological Activity", 
-            "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic iron", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fbddtdife", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Abiotic Dissolved Inorganic Carbon Concentration", 
+            "comment": "Abiotic Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "dissicabioos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -728,16 +830,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fbddtdin": {
+        "dissicnat": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen_due_to_biological_processes", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_natural_component", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Dissolved Inorganic Nitrogen due to Biological Activity", 
-            "comment": "vertical integral of net biological terms in time rate of change of nitrogen nutrients (e.g. NO3+NH4)", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fbddtdin", 
+            "long_name": "Natural Dissolved Inorganic Carbon Concentration", 
+            "comment": "Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration at preindustrial atmospheric xCO2", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dissicnat", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -745,16 +847,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fbddtdip": {
+        "dissicnatos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus_due_to_biological_processes", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "surface_mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_due_to_natural_component", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Dissolved Inorganic Phosphate due to Biological Activity", 
-            "comment": "vertical integral of net biological terms in time rate of change of phosphate", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fbddtdip", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Natural Dissolved Inorganic Carbon Concentration", 
+            "comment": "Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration at preindustrial atmospheric xCO2", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "dissicnatos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -762,16 +864,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fbddtdisi": {
+        "dissicos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon_due_to_biological_processes", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "surface_mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Dissolved Inorganic Silicate due to Biological Activity", 
-            "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic silicate", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fbddtdisi", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Dissolved Inorganic Carbon Concentration", 
+            "comment": "Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "dissicos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -779,16 +881,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fddtalk": {
+        "dissoc": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Alkalinity", 
-            "comment": "vertical integral of net time rate of change of alkalinity", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fddtalk", 
+            "long_name": "Dissolved Organic Carbon Concentration", 
+            "comment": "Sum of dissolved carbon component concentrations explicitly represented (i.e. not ~40 uM refractory unless explicit)", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dissoc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -796,16 +898,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fddtdic": {
+        "dissocos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "surface_mole_concentration_of_dissolved_organic_carbon_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Net Dissolved Inorganic Carbon", 
-            "comment": "", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fddtdic", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Dissolved Organic Carbon Concentration", 
+            "comment": "Sum of dissolved carbon component concentrations explicitly represented (i.e. not ~40 uM refractory unless explicit)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "dissocos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -813,16 +915,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fddtdife": {
+        "dms": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "mole_fraction_of_dimethyl_sulfide_in_air", 
+            "units": "mol mol-1", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Net Dissolved Inorganic Iron", 
-            "comment": "vertical integral of net time rate of change of dissolved inorganic iron", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fddtdife", 
+            "long_name": "Mole Concentration of Dimethyl Sulphide in sea water", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dms", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -830,16 +932,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fddtdin": {
+        "dmso": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "mole_concentration_of_dimethyl_sulfide_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Mole Concentration of Dimethyl Sulphide in sea water", 
+            "comment": "Mole concentration of dimethyl sulphide in water", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "dmso", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "dmsos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_dimethyl_sulfide_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Net Dissolved Inorganic Nitrogen", 
-            "comment": "Net time rate of change of nitrogen nutrients (e.g. NO3+NH4)", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fddtdin", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Mole Concentration of Dimethyl Sulphide in sea water", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "dmsos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -847,16 +966,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fddtdip": {
+        "dpco2": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air", 
+            "units": "Pa", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Net Dissolved Inorganic Phosphate", 
-            "comment": "vertical integral of net  time rate of change of phosphate", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fddtdip", 
+            "long_name": "Delta PCO2", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dpco2", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -864,16 +983,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fddtdisi": {
+        "dpco2abio": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air_due_to_abiotic_component", 
+            "units": "Pa", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Rate of Change of Net Dissolved Inorganic Silicate", 
-            "comment": "vertical integral of net time rate of change of dissolved inorganic silicate", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "out_name": "fddtdisi", 
+            "long_name": "Abiotic Delta PCO2", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dpco2abio", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -881,169 +1000,169 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fg14co2abio": {
+        "dpco2nat": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "surface_downward_mass_flux_of_abiotic_14_carbon_dioxide_expressed_as_carbon", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air_due_to_natural_component", 
+            "units": "Pa", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward abiotic 14CO2 Flux", 
-            "comment": "Gas exchange flux of abiotic 14CO2 (positive into ocean)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fg14co2abio", 
+            "long_name": "Natural Delta PCO2", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dpco2nat", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fgcfc11": {
-            "modeling_realm": "ocean", 
-            "standard_name": "surface_downward_mole_flux_of_cfc11", 
-            "units": "mol sec-1 m-2", 
-            "cell_methods": "time: mean", 
+        "dpo2": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_molecular_oxygen_partial_pressure_difference_between_sea_water_and_air", 
+            "units": "Pa", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward CFC11 flux", 
-            "comment": "gas exchange flux of CFC11", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fgcfc11", 
+            "long_name": "Delta PO2", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "dpo2", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fgcfc12": {
-            "modeling_realm": "ocean", 
-            "standard_name": "surface_downward_mole_flux_of_cfc12", 
-            "units": "mol sec-1 m-2", 
-            "cell_methods": "time: mean", 
+        "eparag100": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward CFC12 flux", 
-            "comment": "gas exchange flux of CFC12", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fgcfc12", 
+            "long_name": "Downward Flux of Aragonite", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth100m", 
+            "out_name": "eparag100", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fgco2": {
+        "epc100": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward CO2 Flux", 
-            "comment": "Gas exchange flux of CO2 (positive into ocean)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fgco2", 
+            "long_name": "Downward Flux of Particle Organic Carbon", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth100m", 
+            "out_name": "epc100", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fgco2abio": {
+        "epcalc100": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "surface_downward_mass_flux_of_abiotic_carbon_dioxide_expressed_as_carbon", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward abiotic CO2 Flux", 
-            "comment": "Gas exchange flux of abiotic CO2 (positive into ocean)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fgco2abio", 
+            "long_name": "Downward Flux of Calcite", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth100m", 
+            "out_name": "epcalc100", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fgco2nat": {
+        "epfe100": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "surface_downward_mass_flux_of_natural_carbon_dioxide_expressed_as_carbon", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward natural CO2 Flux", 
-            "comment": "Gas exchange flux of natural CO2 (positive into ocean)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fgco2nat", 
+            "long_name": "Downward Flux of Particulate Iron", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth100m", 
+            "out_name": "epfe100", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fgdms": {
+        "epn100": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "surface_upward_mole_flux_of_dimethyl_sulfide", 
+            "standard_name": "sinking_mole_flux_of_particulate_nitrogen_in_sea_water", 
             "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Upward DMS Flux", 
-            "comment": "Gas exchange flux of DMS (positive into atmosphere)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fgdms", 
+            "long_name": "Downward Flux of Particulate Nitrogen", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth100m", 
+            "out_name": "epn100", 
             "type": "real", 
-            "positive": "up", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fgo2": {
+        "epp100": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "surface_downward_mole_flux_of_molecular_oxygen", 
+            "standard_name": "sinking_mole_flux_of_particulate_phosphorus_in_sea_water", 
             "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward O2 Flux", 
-            "comment": "Gas exchange flux of O2 (positive into ocean)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fgo2", 
+            "long_name": "Downward Flux of Particulate Phosphorus", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth100m", 
+            "out_name": "epp100", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fgsf6": {
-            "modeling_realm": "ocean", 
-            "standard_name": "surface_downward_mole_flux_of_sf6", 
-            "units": "mol sec-1 m-2", 
-            "cell_methods": "time: mean", 
+        "epsi100": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward SF6 flux", 
-            "comment": "gas exchange flux of SF6", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fgsf6", 
+            "long_name": "Downward Flux of Particulate Silica", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth100m", 
+            "out_name": "epsi100", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ficeberg": {
+        "evs": {
             "modeling_realm": "ocean", 
-            "standard_name": "water_flux_into_sea_water_from_icebergs", 
+            "standard_name": "water_evaporation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Water Flux into Sea Water From Icebergs", 
-            "comment": "computed as the iceberg melt water  flux into the ocean divided by the area of the ocean portion of the grid cell.", 
+            "long_name": "Water Evaporation Flux Where Ice Free Ocean over Sea", 
+            "comment": "computed as the total mass of water vapor evaporating from the ice-free portion of the ocean  divided by the area of the ocean portion of the grid cell.", 
             "dimensions": "longitude latitude time", 
-            "out_name": "ficeberg", 
+            "out_name": "evs", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1051,50 +1170,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "frfe": {
+        "expc": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_sedimentation", 
+            "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", 
             "units": "mol m-2 s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Iron Loss to Sediments", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "frfe", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Sinking Particulate Organic Carbon Flux", 
+            "comment": "Downward flux of particulate organic carbon", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "expc", 
             "type": "real", 
-            "positive": "", 
+            "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fric": {
+        "fbddtalk": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_sedimentation", 
+            "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", 
             "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Downward Inorganic Carbon Flux at Ocean Bottom", 
-            "comment": "Inorganic Carbon loss to sediments", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fric", 
+            "long_name": "Rate of Change of Biological Alkalinity due to Biological Activity", 
+            "comment": "vertical integral of net biological terms in time rate of change of alkalinity", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fbddtalk", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "friver": {
-            "modeling_realm": "ocean", 
-            "standard_name": "water_flux_into_sea_water_from_rivers", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+        "fbddtdic": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon_due_to_biological_processes", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Water Flux into Sea Water From Rivers", 
-            "comment": "computed as the river flux of water into the ocean divided by the area of the ocean portion of the grid cell.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "friver", 
+            "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", 
+            "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic carbon", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fbddtdic", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1102,16 +1221,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "frn": {
+        "fbddtdife": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_denitrification_and_sedimentation", 
+            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron_due_to_biological_processes", 
             "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Nitrogen Loss to Sediments and through Denitrification", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "frn", 
+            "long_name": "Rate of Change of Dissolved Inorganic Iron due to Biological Activity", 
+            "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic iron", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fbddtdife", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1119,50 +1238,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "froc": {
+        "fbddtdin": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_sedimentation", 
+            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen_due_to_biological_processes", 
             "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Downward Organic Carbon Flux at Ocean Bottom", 
-            "comment": "Organic Carbon loss to sediments", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "froc", 
+            "long_name": "Rate of Change of Dissolved Inorganic Nitrogen due to Biological Activity", 
+            "comment": "vertical integral of net biological terms in time rate of change of nitrogen nutrients (e.g. NO3+NH4)", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fbddtdin", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fsfe": {
+        "fbddtdip": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_deposition_and_runoff_and_sediment_dissolution", 
+            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus_due_to_biological_processes", 
             "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward Net Flux of Iron", 
-            "comment": "Iron supply through deposition flux onto sea surface, runoff, coasts, sediments, etc", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fsfe", 
+            "long_name": "Rate of Change of Dissolved Inorganic Phosphorus due to Biological Activity", 
+            "comment": "vertical integral of net biological terms in time rate of change of phosphate", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fbddtdip", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fsitherm": {
-            "modeling_realm": "ocean seaIce", 
-            "standard_name": "water_flux_into_sea_water_due_to_sea_ice_thermodynamics", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+        "fbddtdisi": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon_due_to_biological_processes", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Water Flux into Sea Water due to Sea Ice Thermodynamics", 
-            "comment": "computed as the sea ice thermodynamic water flux into the ocean divided by the area of the ocean portion of the grid cell.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fsitherm", 
+            "long_name": "Rate of Change of Dissolved Inorganic Silicon due to Biological Activity", 
+            "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic silicate", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fbddtdisi", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1170,33 +1289,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "fsn": {
+        "fddtalk": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_deposition_and_fixation_and_runoff", 
+            "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent", 
             "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward Net Flux of Nitrogen", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "fsn", 
+            "long_name": "Rate of Change of Total Alkalinity", 
+            "comment": "vertical integral of net time rate of change of alkalinity", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fddtalk", 
             "type": "real", 
-            "positive": "down", 
+            "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "graz": {
+        "fddtdic": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_mole_concentration_of_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton", 
-            "units": "mol m-3 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Total Grazing of Phytoplankton by Zooplankton", 
+            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Rate of Change of Net Dissolved Inorganic Carbon", 
             "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "graz", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fddtdic", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1204,16 +1323,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfbasin": {
-            "modeling_realm": "ocean", 
-            "standard_name": "northward_ocean_heat_transport", 
-            "units": "W", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "Northward Ocean Heat Transport", 
-            "comment": "Contains contributions from all physical processes affecting the northward heat transport, including resolved advection, parameterized advection, lateral diffusion, etc. Diagnosed here as a function of latitude and basin.   Use Celsius for temperature scale.", 
-            "dimensions": "latitude basin time", 
-            "out_name": "hfbasin", 
+        "fddtdife": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Rate of Change of Net Dissolved Inorganic Iron", 
+            "comment": "vertical integral of net time rate of change of dissolved inorganic iron", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fddtdife", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1221,16 +1340,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfbasinpadv": {
-            "modeling_realm": "ocean", 
-            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_eddy_advection", 
-            "units": "W", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "northward ocean heat transport due to parameterized eddy advection", 
-            "comment": "Contributions to heat transport from parameterized eddy-induced advective transport due to any subgrid advective process. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale.", 
-            "dimensions": "latitude basin time", 
-            "out_name": "hfbasinpadv", 
+        "fddtdin": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Rate of Change of Net Dissolved Inorganic Nitrogen", 
+            "comment": "Net time rate of change of nitrogen nutrients (e.g. NO3+NH4)", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fddtdin", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1238,16 +1357,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfbasinpmadv": {
-            "modeling_realm": "ocean", 
-            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_advection", 
-            "units": "W", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "northward ocean heat transport due to parameterized mesoscale advection", 
-            "comment": "Contributions to heat transport from parameterized mesoscale eddy-induced advective transport. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale.", 
-            "dimensions": "latitude basin time", 
-            "out_name": "hfbasinpmadv", 
+        "fddtdip": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Rate of Change of Net Dissolved Inorganic Phosphate", 
+            "comment": "vertical integral of net  time rate of change of phosphate", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fddtdip", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1255,16 +1374,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfbasinpmdiff": {
-            "modeling_realm": "ocean", 
-            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_diffusion", 
-            "units": "W", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "northward ocean heat transport due to parameterized mesoscale diffusion", 
-            "comment": "Contributions to heat transport from parameterized mesoscale eddy-induced diffusive transport (i.e., neutral diffusion). Diagnosed here as a function of latitude and basin.", 
-            "dimensions": "latitude basin time", 
-            "out_name": "hfbasinpmdiff", 
+        "fddtdisi": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Rate of Change of Net Dissolved Inorganic Silicon", 
+            "comment": "vertical integral of net time rate of change of dissolved inorganic silicate", 
+            "dimensions": "longitude latitude time olayer100m", 
+            "out_name": "fddtdisi", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1272,33 +1391,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfbasinpsmadv": {
-            "modeling_realm": "ocean", 
-            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_submesoscale_advection", 
-            "units": "W", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "northward ocean heat transport due to parameterized submesoscale advection", 
-            "comment": "Contributions to heat transport from parameterized mesoscale eddy-induced advective transport. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale.", 
-            "dimensions": "latitude basin time", 
-            "out_name": "hfbasinpsmadv", 
+        "fg13co2": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "air_sea_flux_of_13CO2", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Surface Downward Flux of Abiotic 13CO2", 
+            "comment": "as specified by C4MIP", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "fg13co2", 
             "type": "real", 
-            "positive": "", 
+            "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfcorr": {
-            "modeling_realm": "ocean", 
-            "standard_name": "heat_flux_correction", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
+        "fg14co2abio": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_downward_mass_flux_of_abiotic_14_carbon_dioxide_expressed_as_carbon", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Heat Flux Correction", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "hfcorr", 
+            "long_name": "Surface Downward Flux of Abiotic 14CO2", 
+            "comment": "Gas exchange flux of abiotic 14CO2 (positive into ocean)", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "fg14co2abio", 
             "type": "real", 
             "positive": "down", 
             "valid_min": "", 
@@ -1306,16 +1425,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfds": {
+        "fgcfc11": {
             "modeling_realm": "ocean", 
-            "standard_name": "surface_downward_heat_flux_in_sea_water", 
-            "units": "W m-2", 
+            "standard_name": "surface_downward_mole_flux_of_cfc11", 
+            "units": "mol sec-1 m-2", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Downward Heat Flux at Sea Water Surface", 
-            "comment": "This is the net flux of heat entering the liquid water column through its upper surface (excluding any 'flux adjustment') .", 
+            "long_name": "Surface Downward CFC11 flux", 
+            "comment": "gas exchange flux of CFC11", 
             "dimensions": "longitude latitude time", 
-            "out_name": "hfds", 
+            "out_name": "fgcfc11", 
             "type": "real", 
             "positive": "down", 
             "valid_min": "", 
@@ -1323,67 +1442,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfevapds": {
+        "fgcfc12": {
             "modeling_realm": "ocean", 
-            "standard_name": "temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water", 
-            "units": "W m-2", 
-            "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
+            "standard_name": "surface_downward_mole_flux_of_cfc12", 
+            "units": "mol sec-1 m-2", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Temperature Flux due to Evaporation Expressed as Heat Flux Out of Sea Water", 
-            "comment": "This is defined as 'where ice_free_sea over sea'", 
+            "long_name": "Surface Downward CFC12 flux", 
+            "comment": "gas exchange flux of CFC12", 
             "dimensions": "longitude latitude time", 
-            "out_name": "hfevapds", 
+            "out_name": "fgcfc12", 
             "type": "real", 
-            "positive": "up", 
+            "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfgeou": {
-            "modeling_realm": "ocean", 
-            "standard_name": "upward_geothermal_heat_flux_at_sea_floor", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Upward Geothermal Heat Flux at Sea Floor", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "hfgeou", 
-            "type": "real", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfibthermds": {
-            "modeling_realm": "ocean", 
-            "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
+        "fgco2": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "hfibthermds", 
+            "long_name": "Surface Downward Flux of Total CO2", 
+            "comment": "Gas exchange flux of CO2 (positive into ocean)", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "fgco2", 
             "type": "real", 
-            "positive": "", 
+            "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hflso": {
-            "modeling_realm": "ocean", 
-            "standard_name": "surface_downward_latent_heat_flux", 
-            "units": "W m-2", 
-            "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
+        "fgco2abio": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_downward_mass_flux_of_abiotic_carbon_dioxide_expressed_as_carbon", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward Latent Heat Flux", 
-            "comment": "'This is defined as ''where ice_free_sea over sea'''", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "hflso", 
+            "long_name": "Surface Downward Flux of Abiotic CO2", 
+            "comment": "Gas exchange flux of abiotic CO2 (positive into ocean)", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "fgco2abio", 
             "type": "real", 
             "positive": "down", 
             "valid_min": "", 
@@ -1391,16 +1493,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfrainds": {
-            "modeling_realm": "ocean", 
-            "standard_name": "temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water", 
-            "units": "W m-2", 
-            "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
+        "fgco2nat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_downward_mass_flux_of_natural_carbon_dioxide_expressed_as_carbon", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Temperature Flux due to Rainfall Expressed as Heat Flux into Sea Water", 
-            "comment": "This is defined as 'where ice_free_sea over sea'; i.e., the total flux (considered here) entering the ice-free portion of the grid cell divided by the area of the ocean portion of the grid cell.  All such heat fluxes are computed based on Celsius scale.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "hfrainds", 
+            "long_name": "Surface Downward Flux of Natural CO2", 
+            "comment": "Gas exchange flux of natural CO2 (positive into ocean)", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "fgco2nat", 
             "type": "real", 
             "positive": "down", 
             "valid_min": "", 
@@ -1408,16 +1510,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfrunoffds": {
-            "modeling_realm": "ocean", 
-            "standard_name": "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
+        "fgdms": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_upward_mole_flux_of_dimethyl_sulfide", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "hfrunoffds", 
+            "long_name": "Surface Upward Flux of DMS", 
+            "comment": "Gas exchange flux of DMS (positive into atmosphere)", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "fgdms", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1425,16 +1527,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfsifrazil": {
-            "modeling_realm": "ocean seaIce", 
-            "standard_name": "heat_flux_into_sea_water_due_to_freezing_of_frazil_ice", 
-            "units": "W m-2", 
-            "cell_methods": "time: mean", 
+        "fgo2": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_downward_mole_flux_of_molecular_oxygen", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Heat Flux into Sea Water due to Frazil Ice Formation", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "hfsifrazil", 
+            "long_name": "Surface Downward Flux of O2", 
+            "comment": "Gas exchange flux of O2 (positive into ocean)", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "fgo2", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1442,33 +1544,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfsnthermds": {
+        "fgsf6": {
             "modeling_realm": "ocean", 
-            "standard_name": "heat_flux_into_sea_water_due_to_snow_thermodynamics", 
-            "units": "W m-2", 
+            "standard_name": "surface_downward_mole_flux_of_sf6", 
+            "units": "mol sec-1 m-2", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Heat Flux into Sea Water due to Snow Thermodynamics", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "hfsnthermds", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfsso": {
-            "modeling_realm": "ocean", 
-            "standard_name": "surface_downward_sensible_heat_flux", 
-            "units": "W m-2", 
-            "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Surface Downward Sensible Heat Flux", 
-            "comment": "This is defined as 'where ice_free_sea over sea'", 
+            "long_name": "Surface Downward SF6 flux", 
+            "comment": "gas exchange flux of SF6", 
             "dimensions": "longitude latitude time", 
-            "out_name": "hfsso", 
+            "out_name": "fgsf6", 
             "type": "real", 
             "positive": "down", 
             "valid_min": "", 
@@ -1476,16 +1561,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfx": {
+        "ficeberg": {
             "modeling_realm": "ocean", 
-            "standard_name": "ocean_heat_x_transport", 
-            "units": "W", 
+            "standard_name": "water_flux_into_sea_water_from_icebergs", 
+            "units": "kg m-2 s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "Ocean Heat X Transport", 
-            "comment": "Contains all contributions to 'x-ward' heat transport from resolved and parameterized processes.  Use Celsius for temperature scale.", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Water Flux into Sea Water From Icebergs", 
+            "comment": "computed as the iceberg melt water  flux into the ocean divided by the area of the ocean portion of the grid cell.", 
             "dimensions": "longitude latitude olevel time", 
-            "out_name": "hfx", 
+            "out_name": "ficeberg", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1493,33 +1578,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfy": {
+        "ficeberg2d": {
             "modeling_realm": "ocean", 
-            "standard_name": "ocean_heat_y_transport", 
-            "units": "W", 
+            "standard_name": "water_flux_into_sea_water_from_icebergs", 
+            "units": "kg m-2 s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "Ocean Heat Y Transport", 
-            "comment": "Contains all contributions to 'y-ward' heat transport from resolved and parameterized processes. Use Celsius for temperature scale.", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "hfy", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "htovgyre": {
-            "modeling_realm": "ocean", 
-            "standard_name": "northward_ocean_heat_transport_due_to_gyre", 
-            "units": "W", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "Northward Ocean Heat Transport due to Gyre", 
-            "comment": "From all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude basin time", 
-            "out_name": "htovgyre", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Water Flux into Sea Water From Icebergs", 
+            "comment": "computed as the iceberg melt water  flux into the ocean divided by the area of the ocean portion of the grid cell.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "ficeberg2d", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1527,16 +1595,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "htovovrt": {
-            "modeling_realm": "ocean", 
-            "standard_name": "northward_ocean_heat_transport_due_to_overturning", 
-            "units": "W", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "Northward Ocean Heat Transport due to Overturning", 
-            "comment": "From all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude basin time", 
-            "out_name": "htovovrt", 
+        "frfe": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_sedimentation", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Iron Loss to Sediments", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "frfe", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1544,16 +1612,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "icfriver": {
+        "fric": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_runoff_and_sediment_dissolution", 
+            "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_sedimentation", 
             "units": "mol m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Flux of Inorganic Carbon Into Ocean Surface by Runoff", 
-            "comment": "Inorganic Carbon supply to ocean through runoff (separate from gas exchange)", 
+            "long_name": "Downward Inorganic Carbon Flux at Ocean Bottom", 
+            "comment": "Inorganic Carbon loss to sediments", 
             "dimensions": "longitude latitude time", 
-            "out_name": "icfriver", 
+            "out_name": "fric", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1561,16 +1629,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intdissic": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "ocean_mass_content_of_dissolved_inorganic_carbon", 
-            "units": "kg m-2", 
+        "friver": {
+            "modeling_realm": "ocean", 
+            "standard_name": "water_flux_into_sea_water_from_rivers", 
+            "units": "kg m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Dissolved Inorganic Carbon Content", 
-            "comment": "Vertically integrated DIC", 
+            "long_name": "Water Flux into Sea Water From Rivers", 
+            "comment": "computed as the river flux of water into the ocean divided by the area of the ocean portion of the grid cell.", 
             "dimensions": "longitude latitude time", 
-            "out_name": "intdissic", 
+            "out_name": "friver", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1578,16 +1646,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intdissoc": {
+        "frn": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "ocean_mass_content_of_dissolved_organic_carbon", 
-            "units": "kg m-2", 
+            "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_denitrification_and_sedimentation", 
+            "units": "mol m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Dissolved Organic Carbon Content", 
-            "comment": "Vertically integrated DOC (explicit pools only)", 
+            "long_name": "Nitrogen Loss to Sediments and through Denitrification", 
+            "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "intdissoc", 
+            "out_name": "frn", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1595,16 +1663,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intparag": {
+        "froc": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_aragonite_expressed_as_carbon_due_to_biological_production", 
+            "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_sedimentation", 
             "units": "mol m-2 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Aragonite Production", 
-            "comment": "Vertically integrated aragonite production", 
+            "long_name": "Downward Organic Carbon Flux at Ocean Bottom", 
+            "comment": "Organic Carbon loss to sediments", 
             "dimensions": "longitude latitude time", 
-            "out_name": "intparag", 
+            "out_name": "froc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1612,16 +1680,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intpbfe": {
+        "fsfe": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_biological_production", 
+            "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_deposition_and_runoff_and_sediment_dissolution", 
             "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Iron Production", 
-            "comment": "Vertically integrated biogenic iron production", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "intpbfe", 
+            "long_name": "Surface Downward Net Flux of Iron", 
+            "comment": "Iron supply through deposition flux onto sea surface, runoff, coasts, sediments, etc", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "fsfe", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1629,16 +1697,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intpbn": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_nitrogen_due_to_biological_production", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+        "fsitherm": {
+            "modeling_realm": "ocean seaIce", 
+            "standard_name": "water_flux_into_sea_water_due_to_sea_ice_thermodynamics", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Nitrogen Production", 
-            "comment": "Vertically integrated biogenic nitrogen production", 
+            "long_name": "Water Flux into Sea Water due to Sea Ice Thermodynamics", 
+            "comment": "computed as the sea ice thermodynamic water flux into the ocean divided by the area of the ocean portion of the grid cell.", 
             "dimensions": "longitude latitude time", 
-            "out_name": "intpbn", 
+            "out_name": "fsitherm", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1646,16 +1714,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intpbp": {
+        "fsn": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_phosphorus_due_to_biological_production", 
+            "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_deposition_and_fixation_and_runoff", 
             "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Phosphorus Production", 
-            "comment": "Vertically integrated biogenic phosphorus production", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "intpbp", 
+            "long_name": "Surface Downward Net Flux of Nitrogen", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "fsn", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1663,16 +1731,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intpbsi": {
+        "graz": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_silicon_due_to_biological_production", 
-            "units": "mol m-2 s-1", 
+            "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton", 
+            "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Silica Production", 
-            "comment": "Vertically integrated biogenic silica production", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "intpbsi", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Total Grazing of Phytoplankton by Zooplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "graz", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1680,16 +1748,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intpcalcite": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_calcite_expressed_as_carbon_due_to_biological_production", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Calcite Production", 
-            "comment": "Vertically integrated calcite production", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "intpcalcite", 
+        "hfbasin": {
+            "modeling_realm": "ocean", 
+            "standard_name": "northward_ocean_heat_transport", 
+            "units": "W", 
+            "cell_methods": "longitude: mean (basin) time: mean", 
+            "cell_measures": "", 
+            "long_name": "Northward Ocean Heat Transport", 
+            "comment": "Contains contributions from all physical processes affecting the northward heat transport, including resolved advection, parameterized advection, lateral diffusion, etc. Diagnosed here as a function of latitude and basin.   Use Celsius for temperature scale.", 
+            "dimensions": "latitude basin time", 
+            "out_name": "hfbasin", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1697,16 +1765,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intpn2": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_fixation", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Nitrogen Fixation Rate in Ocean", 
-            "comment": "Vertically integrated nitrogen fixation", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "intpn2", 
+        "hfbasinpadv": {
+            "modeling_realm": "ocean", 
+            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_eddy_advection", 
+            "units": "W", 
+            "cell_methods": "longitude: mean (basin) time: mean", 
+            "cell_measures": "", 
+            "long_name": "northward ocean heat transport due to parameterized eddy advection", 
+            "comment": "Contributions to heat transport from parameterized eddy-induced advective transport due to any subgrid advective process. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale.", 
+            "dimensions": "latitude basin time", 
+            "out_name": "hfbasinpadv", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1714,16 +1782,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intpnitrate": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_due_to_nitrate_utilization", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Primary Organic Carbon Production by Phytoplankton Based on Nitrate Uptake Alone", 
-            "comment": "Vertically integrated primary (organic carbon) production by phytoplankton based on nitrate uptake alone", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "intpnitrate", 
+        "hfbasinpmadv": {
+            "modeling_realm": "ocean", 
+            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_advection", 
+            "units": "W", 
+            "cell_methods": "longitude: mean (basin) time: mean", 
+            "cell_measures": "", 
+            "long_name": "northward ocean heat transport due to parameterized mesoscale advection", 
+            "comment": "Contributions to heat transport from parameterized mesoscale eddy-induced advective transport. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale.", 
+            "dimensions": "latitude basin time", 
+            "out_name": "hfbasinpmadv", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1731,16 +1799,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intpoc": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "ocean_mass_content_of_particulate_organic_carbon", 
-            "units": "kg m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Particulate Organic Carbon Content", 
-            "comment": "Vertically integrated POC", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "intpoc", 
+        "hfbasinpmdiff": {
+            "modeling_realm": "ocean", 
+            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_diffusion", 
+            "units": "W", 
+            "cell_methods": "longitude: mean (basin) time: mean", 
+            "cell_measures": "", 
+            "long_name": "northward ocean heat transport due to parameterized mesoscale diffusion", 
+            "comment": "Contributions to heat transport from parameterized mesoscale eddy-induced diffusive transport (i.e., neutral diffusion). Diagnosed here as a function of latitude and basin.", 
+            "dimensions": "latitude basin time", 
+            "out_name": "hfbasinpmdiff", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1748,16 +1816,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intpp": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_phytoplankton", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Primary Organic Carbon Production by All Types of Phytoplankton", 
-            "comment": "Vertically integrated total primary (organic carbon) production by phytoplankton.  This should equal the sum of intpdiat+intpphymisc, but those individual components may be unavailable in some models.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "intpp", 
+        "hfbasinpsmadv": {
+            "modeling_realm": "ocean", 
+            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_submesoscale_advection", 
+            "units": "W", 
+            "cell_methods": "longitude: mean (basin) time: mean", 
+            "cell_measures": "", 
+            "long_name": "northward ocean heat transport due to parameterized submesoscale advection", 
+            "comment": "Contributions to heat transport from parameterized mesoscale eddy-induced advective transport. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale.", 
+            "dimensions": "latitude basin time", 
+            "out_name": "hfbasinpsmadv", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1765,84 +1833,84 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intppcalc": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_calcareous_phytoplankton", 
-            "units": "mol m-2 s-1", 
+        "hfcorr": {
+            "modeling_realm": "ocean", 
+            "standard_name": "heat_flux_correction", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton", 
+            "long_name": "Heat Flux Correction", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "intppcalc", 
+            "out_name": "hfcorr", 
             "type": "real", 
-            "positive": "", 
+            "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intppdiat": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_diatoms", 
-            "units": "mol m-2 s-1", 
+        "hfds": {
+            "modeling_realm": "ocean", 
+            "standard_name": "surface_downward_heat_flux_in_sea_water", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Primary Organic Carbon Production by Diatoms", 
-            "comment": "Vertically integrated primary (organic carbon) production by the diatom phytoplankton component alone", 
+            "long_name": "Downward Heat Flux at Sea Water Surface", 
+            "comment": "This is the net flux of heat entering the liquid water column through its upper surface (excluding any 'flux adjustment') .", 
             "dimensions": "longitude latitude time", 
-            "out_name": "intppdiat", 
+            "out_name": "hfds", 
             "type": "real", 
-            "positive": "", 
+            "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intppdiaz": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_diazotrophs", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
+        "hfevapds": {
+            "modeling_realm": "ocean", 
+            "standard_name": "temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water", 
+            "units": "W m-2", 
+            "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", 
-            "comment": "", 
+            "long_name": "Temperature Flux due to Evaporation Expressed as Heat Flux Out of Sea Water", 
+            "comment": "This is defined as 'where ice_free_sea over sea'", 
             "dimensions": "longitude latitude time", 
-            "out_name": "intppdiaz", 
+            "out_name": "hfevapds", 
             "type": "real", 
-            "positive": "", 
+            "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intppmisc": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_miscellaneous_phytoplankton", 
-            "units": "mol m-2 s-1", 
+        "hfgeou": {
+            "modeling_realm": "ocean", 
+            "standard_name": "upward_geothermal_heat_flux_at_sea_floor", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Primary Organic Carbon Production by Other Phytoplankton", 
-            "comment": "Vertically integrated total primary (organic carbon) production by other phytoplankton components alone", 
+            "long_name": "Upward Geothermal Heat Flux at Sea Floor", 
+            "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "intppmisc", 
+            "out_name": "hfgeou", 
             "type": "real", 
-            "positive": "", 
+            "positive": "up", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "intpppico": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_picophytoplankton", 
-            "units": "mol m-2 s-1", 
+        "hfibthermds": {
+            "modeling_realm": "ocean", 
+            "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "intpppico", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "hfibthermds", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1850,16 +1918,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limfecalc": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "iron_limitation_of_calcareous_phytoplankton", 
-            "units": "1.0", 
+        "hfibthermds2d": {
+            "modeling_realm": "ocean", 
+            "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Iron limitation of Calcareous Phytoplankton", 
+            "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "limfecalc", 
+            "out_name": "hfibthermds2d", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1867,50 +1935,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limfediat": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "iron_limitation_of_diatoms", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+        "hflso": {
+            "modeling_realm": "ocean", 
+            "standard_name": "surface_downward_latent_heat_flux", 
+            "units": "W m-2", 
+            "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Iron limitation of Diatoms", 
-            "comment": "", 
+            "long_name": "Surface Downward Latent Heat Flux", 
+            "comment": "This is defined as with the cell methods string: where ice_free_sea over sea", 
             "dimensions": "longitude latitude time", 
-            "out_name": "limfediat", 
+            "out_name": "hflso", 
             "type": "real", 
-            "positive": "", 
+            "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limfediaz": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "iron_limitation_of_diazotrophs", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+        "hfrainds": {
+            "modeling_realm": "ocean", 
+            "standard_name": "temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water", 
+            "units": "W m-2", 
+            "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Iron limitation of Diazotrophs", 
-            "comment": "", 
+            "long_name": "Temperature Flux due to Rainfall Expressed as Heat Flux into Sea Water", 
+            "comment": "This is defined as 'where ice_free_sea over sea'; i.e., the total flux (considered here) entering the ice-free portion of the grid cell divided by the area of the ocean portion of the grid cell.  All such heat fluxes are computed based on Celsius scale.", 
             "dimensions": "longitude latitude time", 
-            "out_name": "limfediaz", 
+            "out_name": "hfrainds", 
             "type": "real", 
-            "positive": "", 
+            "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limfemisc": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "iron_limitation_of_miscellaneous_phytoplankton", 
-            "units": "1.0", 
+        "hfrunoffds": {
+            "modeling_realm": "ocean", 
+            "standard_name": "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Iron Limitation of Other Phytoplankton", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "limfemisc", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "hfrunoffds", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1918,16 +1986,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limfepico": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "iron_limitation_of_picophytoplankton", 
-            "units": "1.0", 
+        "hfrunoffds2d": {
+            "modeling_realm": "ocean", 
+            "standard_name": "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Iron limitation of Picophytoplankton", 
+            "long_name": "Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "limfepico", 
+            "out_name": "hfrunoffds2d", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1935,16 +2003,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limirrcalc": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "irradiance_limitation_of_calcareous_phytoplankton", 
-            "units": "1.0", 
+        "hfsifrazil": {
+            "modeling_realm": "ocean seaIce", 
+            "standard_name": "heat_flux_into_sea_water_due_to_freezing_of_frazil_ice", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Irradiance limitation of Calcareous Phytoplankton", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Heat Flux into Sea Water due to Frazil Ice Formation", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "limirrcalc", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "hfsifrazil", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1952,16 +2020,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limirrdiat": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "irradiance_limitation_of_diatoms", 
-            "units": "1.0", 
+        "hfsifrazil2d": {
+            "modeling_realm": "ocean seaIce", 
+            "standard_name": "heat_flux_into_sea_water_due_to_freezing_of_frazil_ice", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Irradiance limitation of Diatoms", 
+            "long_name": "Heat Flux into Sea Water due to Frazil Ice Formation", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "limirrdiat", 
+            "out_name": "hfsifrazil2d", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1969,16 +2037,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limirrdiaz": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "irradiance_limitation_of_diazotrophs", 
-            "units": "1.0", 
+        "hfsnthermds": {
+            "modeling_realm": "ocean", 
+            "standard_name": "heat_flux_into_sea_water_due_to_snow_thermodynamics", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Irradiance limitation of Diazotrophs", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Heat Flux into Sea Water due to Snow Thermodynamics", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "limirrdiaz", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "hfsnthermds", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1986,16 +2054,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limirrmisc": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "irradiance_limitation_of_miscellaneous_phytoplankton", 
-            "units": "1.0", 
+        "hfsnthermds2d": {
+            "modeling_realm": "ocean", 
+            "standard_name": "heat_flux_into_sea_water_due_to_snow_thermodynamics", 
+            "units": "W m-2", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Irradiance Limitation of Other Phytoplankton", 
+            "long_name": "Heat Flux into Sea Water due to Snow Thermodynamics", 
             "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "limirrmisc", 
+            "out_name": "hfsnthermds2d", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2003,33 +2071,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limirrpico": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "irradiance_limitation_of_picophytoplankton", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+        "hfsso": {
+            "modeling_realm": "ocean", 
+            "standard_name": "surface_downward_sensible_heat_flux", 
+            "units": "W m-2", 
+            "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Irradiance limitation of Picophytoplankton", 
-            "comment": "", 
+            "long_name": "Surface Downward Sensible Heat Flux", 
+            "comment": "This is defined as 'where ice_free_sea over sea'", 
             "dimensions": "longitude latitude time", 
-            "out_name": "limirrpico", 
+            "out_name": "hfsso", 
             "type": "real", 
-            "positive": "", 
+            "positive": "down", 
             "valid_min": "", 
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limncalc": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "nitrogen_limitation_of_calcareous_phytoplankton", 
-            "units": "1.0", 
+        "hfx": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_heat_x_transport", 
+            "units": "W", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Nitrogen limitation of Calcareous Phytoplankton", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "limncalc", 
+            "cell_measures": "--OPT", 
+            "long_name": "Ocean Heat X Transport", 
+            "comment": "Contains all contributions to 'x-ward' heat transport from resolved and parameterized processes.  Use Celsius for temperature scale.", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "hfx", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2037,16 +2105,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limndiat": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "nitrogen_limitation_of_diatoms", 
-            "units": "1.0", 
+        "hfy": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_heat_y_transport", 
+            "units": "W", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Nitrogen limitation of Diatoms", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "limndiat", 
+            "cell_measures": "--OPT", 
+            "long_name": "Ocean Heat Y Transport", 
+            "comment": "Contains all contributions to 'y-ward' heat transport from resolved and parameterized processes. Use Celsius for temperature scale.", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "hfy", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2054,16 +2122,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limndiaz": {
-            "modeling_realm": "ocnBgchem", 
-            "standard_name": "nitrogen_limitation_of_diazotrophs", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Nitrogen limitation of Diazotrophs", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "limndiaz", 
+        "htovgyre": {
+            "modeling_realm": "ocean", 
+            "standard_name": "northward_ocean_heat_transport_due_to_gyre", 
+            "units": "W", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "Northward Ocean Heat Transport due to Gyre", 
+            "comment": "From all advective mass transport processes, resolved and parameterized.", 
+            "dimensions": "latitude basin time", 
+            "out_name": "htovgyre", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2071,16 +2139,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limnmisc": {
+        "htovovrt": {
+            "modeling_realm": "ocean", 
+            "standard_name": "northward_ocean_heat_transport_due_to_overturning", 
+            "units": "W", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "Northward Ocean Heat Transport due to Overturning", 
+            "comment": "From all advective mass transport processes, resolved and parameterized.", 
+            "dimensions": "latitude basin time", 
+            "out_name": "htovovrt", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "icfriver": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "nitrogen_limitation_of_miscellaneous_phytoplankton", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_runoff_and_sediment_dissolution", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Nitrogen Limitation of Other Phytoplankton", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "limnmisc", 
+            "long_name": "Flux of Inorganic Carbon Into Ocean Surface by Runoff", 
+            "comment": "Inorganic Carbon supply to ocean through runoff (separate from gas exchange)", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "icfriver", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2088,16 +2173,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "limnpico": {
+        "intdic": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "nitrogen_limitation_of_picophytoplankton", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "standard_name": "ocean_mass_content_of_dissolved_inorganic_carbon", 
+            "units": "kg m-2", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Nitrogen limitation of Picophytoplankton", 
-            "comment": "", 
+            "long_name": "Dissolved Inorganic Carbon Content", 
+            "comment": "Vertically integrated DIC", 
             "dimensions": "longitude latitude time", 
-            "out_name": "limnpico", 
+            "out_name": "intdic", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2105,16 +2190,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "masscello": {
-            "modeling_realm": "ocean", 
-            "standard_name": "sea_water_mass_per_unit_area", 
+        "intdoc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "ocean_mass_content_of_dissolved_organic_carbon", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Sea Water Mass Per Unit Area", 
-            "comment": "Tracer grid-cell mass per unit area used for computing tracer budgets. For Boussinesq models with static ocean grid cell thickness, masscello = rhozero*thickcello, where thickcello is static cell thickness and rhozero is constant Boussinesq reference density. More generally, masscello is time dependent and reported as part of Omon.", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "masscello", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Dissolved Organic Carbon Content", 
+            "comment": "Vertically integrated DOC (explicit pools only)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intdoc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2122,16 +2207,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "masso": {
-            "modeling_realm": "ocean", 
-            "standard_name": "sea_water_mass", 
-            "units": "kg", 
-            "cell_methods": "area: sum where sea time: mean", 
-            "cell_measures": "", 
-            "long_name": "Sea Water Mass", 
-            "comment": "Total mass of liquid seawater. For Boussinesq models, report this diagnostic as Boussinesq reference density times total volume.", 
-            "dimensions": "time", 
-            "out_name": "masso", 
+        "intparag": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_aragonite_expressed_as_carbon_due_to_biological_production", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Aragonite Production", 
+            "comment": "Vertically integrated aragonite production", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intparag", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2139,16 +2224,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "mfo": {
-            "modeling_realm": "ocean", 
-            "standard_name": "sea_water_transport_across_line", 
-            "units": "kg s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "", 
-            "long_name": "Sea Water Transport", 
-            "comment": "", 
-            "dimensions": "oline time", 
-            "out_name": "mfo", 
+        "intpbfe": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_biological_production", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Iron Production", 
+            "comment": "Vertically integrated biogenic iron production", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intpbfe", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2156,16 +2241,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "mlotst": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", 
-            "units": "m", 
-            "cell_methods": "time: mean", 
+        "intpbn": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_nitrogen_due_to_biological_production", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", 
-            "comment": "Sigma T is potential density referenced to ocean surface.", 
+            "long_name": "Nitrogen Production", 
+            "comment": "Vertically integrated biogenic nitrogen production", 
             "dimensions": "longitude latitude time", 
-            "out_name": "mlotst", 
+            "out_name": "intpbn", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2173,16 +2258,866 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "mlotstmax": {
-            "modeling_realm": "ocean", 
-            "standard_name": "", 
+        "intpbp": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_phosphorus_due_to_biological_production", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Phosphorus Production", 
+            "comment": "Vertically integrated biogenic phosphorus production", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intpbp", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "intpbsi": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_silicon_due_to_biological_production", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Silica Production", 
+            "comment": "Vertically integrated biogenic silica production", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intpbsi", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "intpcalcite": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_calcite_expressed_as_carbon_due_to_biological_production", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Calcite Production", 
+            "comment": "Vertically integrated calcite production", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intpcalcite", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "intpn2": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_fixation", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Nitrogen Fixation Rate in Ocean", 
+            "comment": "Vertically integrated nitrogen fixation", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intpn2", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "intpoc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "ocean_mass_content_of_particulate_organic_matter_expressed_as_carbon", 
+            "units": "kg m-2", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Particulate Organic Carbon Content", 
+            "comment": "Vertically integrated POC", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intpoc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "intpp": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_phytoplankton", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Primary Organic Carbon Production by All Types of Phytoplankton", 
+            "comment": "Vertically integrated total primary (organic carbon) production by phytoplankton.  This should equal the sum of intpdiat+intpphymisc, but those individual components may be unavailable in some models.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intpp", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "intppcalc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_calcareous_phytoplankton", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intppcalc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "intppdiat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_diatoms", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Net Primary Organic Carbon Production by Diatoms", 
+            "comment": "Vertically integrated primary (organic carbon) production by the diatom phytoplankton component alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intppdiat", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "intppdiaz": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_diazotrophs", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intppdiaz", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "intppmisc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_miscellaneous_phytoplankton", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Net Primary Organic Carbon Production by Other Phytoplankton", 
+            "comment": "Vertically integrated total primary (organic carbon) production by other phytoplankton components alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intppmisc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "intppnitrate": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_due_to_nitrate_utilization", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Primary Organic Carbon Production by Phytoplankton Based on Nitrate Uptake Alone", 
+            "comment": "Vertically integrated primary (organic carbon) production by phytoplankton based on nitrate uptake alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intppnitrate", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "intpppico": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_picophytoplankton", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea depth: sum where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "intpppico", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limfecalc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "iron_limitation_of_calcareous_phytoplankton", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Iron limitation of Calcareous Phytoplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limfecalc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limfediat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "iron_limitation_of_diatoms", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Iron limitation of Diatoms", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limfediat", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limfediaz": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "iron_limitation_of_diazotrophs", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Iron limitation of Diazotrophs", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limfediaz", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limfemisc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "iron_limitation_of_miscellaneous_phytoplankton", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Iron Limitation of Other Phytoplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limfemisc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limfepico": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "iron_limitation_of_picophytoplankton", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Iron limitation of Picophytoplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limfepico", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limirrcalc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "irradiance_limitation_of_calcareous_phytoplankton", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Irradiance limitation of Calcareous Phytoplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limirrcalc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limirrdiat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "irradiance_limitation_of_diatoms", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Irradiance limitation of Diatoms", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limirrdiat", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limirrdiaz": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "irradiance_limitation_of_diazotrophs", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Irradiance limitation of Diazotrophs", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limirrdiaz", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limirrmisc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "irradiance_limitation_of_miscellaneous_phytoplankton", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Irradiance Limitation of Other Phytoplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limirrmisc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limirrpico": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "irradiance_limitation_of_picophytoplankton", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Irradiance limitation of Picophytoplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limirrpico", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limncalc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "nitrogen_limitation_of_calcareous_phytoplankton", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Nitrogen limitation of Calcareous Phytoplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limncalc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limndiat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "nitrogen_limitation_of_diatoms", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Nitrogen limitation of Diatoms", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limndiat", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limndiaz": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "nitrogen_limitation_of_diazotrophs", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Nitrogen limitation of Diazotrophs", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limndiaz", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limnmisc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "nitrogen_limitation_of_miscellaneous_phytoplankton", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Nitrogen Limitation of Other Phytoplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limnmisc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "limnpico": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "nitrogen_limitation_of_picophytoplankton", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Nitrogen limitation of Picophytoplankton", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "limnpico", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "masscello": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_mass_per_unit_area", 
+            "units": "kg m-2", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Sea Water Mass Per Unit Area", 
+            "comment": "Tracer grid-cell mass per unit area used for computing tracer budgets. For Boussinesq models with static ocean grid cell thickness, masscello = rhozero*thickcello, where thickcello is static cell thickness and rhozero is constant Boussinesq reference density. More generally, masscello is time dependent and reported as part of Omon.", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "masscello", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "masso": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_mass", 
+            "units": "kg", 
+            "cell_methods": "area: sum where sea time: mean", 
+            "cell_measures": "", 
+            "long_name": "Sea Water Mass", 
+            "comment": "Total mass of liquid seawater. For Boussinesq models, report this diagnostic as Boussinesq reference density times total volume.", 
+            "dimensions": "time", 
+            "out_name": "masso", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "mfo": {
+            "modeling_realm": "ocean", 
+            "standard_name": "sea_water_transport_across_line", 
+            "units": "kg s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "", 
+            "long_name": "Sea Water Transport", 
+            "comment": "", 
+            "dimensions": "oline time", 
+            "out_name": "mfo", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "mlotst": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", 
+            "units": "m", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", 
+            "comment": "Sigma T is potential density referenced to ocean surface.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "mlotst", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "mlotstmax": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", 
+            "units": "m", 
+            "cell_methods": "area: mean time: maximum", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Maximum Ocean Mixed Layer Thickness Defined by Sigma T", 
+            "comment": "Sigma T is potential density referenced to ocean surface.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "mlotstmax", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "mlotstmin": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", 
             "units": "m", 
-            "cell_methods": "time: max", 
+            "cell_methods": "area: mean time: minimum", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Minimum Ocean Mixed Layer Thickness Defined by Sigma T", 
+            "comment": "Sigma T is potential density referenced to ocean surface.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "mlotstmin", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "mlotstsq": {
+            "modeling_realm": "ocean", 
+            "standard_name": "square_of_ocean_mixed_layer_thickness_defined_by_sigma_t", 
+            "units": "m2", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Square of Ocean Mixed Layer Thickness Defined by Sigma T", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "mlotstsq", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftbarot": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_barotropic_mass_streamfunction", 
+            "units": "kg s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Ocean Barotropic Mass Streamfunction", 
+            "comment": "Streamfunction or its approximation for free surface models. See OMDP document for details.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "msftbarot", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftmrho": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_meridional_overturning_mass_streamfunction", 
+            "units": "kg s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "Ocean Meridional Overturning Mass Streamfunction", 
+            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
+            "dimensions": "latitude rho basin time", 
+            "out_name": "msftmrho", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftmrhompa": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
+            "units": "kg s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "ocean meridional overturning mass streamfunction due to parameterized mesoscale advection", 
+            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
+            "dimensions": "latitude rho basin time", 
+            "out_name": "msftmrhompa", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftmyz": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_meridional_overturning_mass_streamfunction", 
+            "units": "kg s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "Ocean Meridional Overturning Mass Streamfunction", 
+            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
+            "dimensions": "latitude olevel basin time", 
+            "out_name": "msftmyz", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftmzmpa": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
+            "units": "kg s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "ocean meridional overturning mass streamfunction due to parameterized mesoscale advection", 
+            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
+            "dimensions": "latitude olevel basin time", 
+            "out_name": "msftmzmpa", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftmzsmpa": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_advection", 
+            "units": "kg s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "ocean meridional overturning mass streamfunction due to parameterized submesoscale advection", 
+            "comment": "Report only if there is a submesoscale eddy parameterization.", 
+            "dimensions": "latitude olevel basin time", 
+            "out_name": "msftmzsmpa", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftyrho": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_y_overturning_mass_streamfunction", 
+            "units": "kg s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "Ocean Y Overturning Mass Streamfunction", 
+            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
+            "dimensions": "latitude rho basin time", 
+            "out_name": "msftyrho", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftyrhompa": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
+            "units": "kg s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "ocean Y overturning mass streamfunction due to parameterized mesoscale advection", 
+            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
+            "dimensions": "latitude rho basin time", 
+            "out_name": "msftyrhompa", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftyyz": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_y_overturning_mass_streamfunction", 
+            "units": "kg s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "Ocean Y Overturning Mass Streamfunction", 
+            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
+            "dimensions": "latitude olevel basin time", 
+            "out_name": "msftyyz", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftyzmpa": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
+            "units": "kg s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "ocean Y overturning mass streamfunction due to parameterized mesoscale advection", 
+            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
+            "dimensions": "latitude olevel basin time", 
+            "out_name": "msftyzmpa", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "msftyzsmpa": {
+            "modeling_realm": "ocean", 
+            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_advection", 
+            "units": "kg s-1", 
+            "cell_methods": "longitude: mean time: mean", 
+            "cell_measures": "", 
+            "long_name": "ocean Y overturning mass streamfunction due to parameterized submesoscale advection", 
+            "comment": "Report only if there is a submesoscale eddy parameterization.", 
+            "dimensions": "latitude olevel basin time", 
+            "out_name": "msftyzsmpa", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "nh4": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_ammonium_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Dissolved Ammonium Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "nh4", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "nh4os": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_ammonium_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Dissolved Ammonium Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "nh4os", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "no3": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_nitrate_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Dissolved Nitrate Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "no3", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "no3os": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_nitrate_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Dissolved Nitrate Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "no3os", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "o2": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Dissolved Oxygen Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "o2", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "o2min": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_shallowest_local_minimum_in_vertical_profile", 
+            "units": "mol m-3", 
+            "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Maximum Ocean Mixed Layer Thickness Defined by Sigma T", 
-            "comment": "Sigma T is potential density referenced to ocean surface.", 
+            "long_name": "Oxygen Minimum Concentration", 
+            "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "mlotstmax", 
+            "out_name": "o2min", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2190,16 +3125,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "mlotstmin": {
-            "modeling_realm": "ocean", 
-            "standard_name": "", 
-            "units": "m", 
-            "cell_methods": "time: min", 
+        "o2os": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Dissolved Oxygen Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "o2os", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "o2sat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Minimum Ocean Mixed Layer Thickness Defined by Sigma T", 
-            "comment": "Sigma T is potential density referenced to ocean surface.", 
+            "long_name": "Dissolved Oxygen Concentration at Saturation", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "o2sat", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "o2satos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Dissolved Oxygen Concentration at Saturation", 
+            "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "mlotstmin", 
+            "out_name": "o2satos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2207,16 +3176,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "mlotstsq": {
+        "obvfsq": {
             "modeling_realm": "ocean", 
-            "standard_name": "square_of_ocean_mixed_layer_thickness_defined_by_sigma_t", 
-            "units": "m2", 
+            "standard_name": "square_of_brunt_vaisala_frequency_in_sea_water", 
+            "units": "s-2", 
             "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Square of Brunt Vaisala Frequency in Sea Water", 
+            "comment": "", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "obvfsq", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "ocfriver": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_runoff_and_sediment_dissolution", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Square of Ocean Mixed Layer Thickness Defined by Sigma T", 
+            "long_name": "Flux of Organic Carbon Into Ocean Surface by Runoff", 
+            "comment": "Organic Carbon supply to ocean through runoff (separate from gas exchange)", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "ocfriver", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "pbfe": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_mole_concentration_of_iron_in_sea_water_due_to_biological_production", 
+            "units": "mol m-3 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Biogenic Iron Production", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "mlotstsq", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "pbfe", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2224,16 +3227,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "msftbarot": {
+        "pbo": {
             "modeling_realm": "ocean", 
-            "standard_name": "ocean_barotropic_mass_streamfunction", 
-            "units": "kg s-1", 
+            "standard_name": "sea_water_pressure_at_sea_floor", 
+            "units": "Pa", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Ocean Barotropic Mass Streamfunction", 
-            "comment": "Streamfunction or its approximation for free surface models. See OMDP document for details.", 
+            "long_name": "Sea Water Pressure at Sea floor", 
+            "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "msftbarot", 
+            "out_name": "pbo", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2241,16 +3244,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "msftmrho": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction", 
-            "units": "kg s-1", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "Ocean Meridional Overturning Mass Streamfunction", 
-            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude rho basin time", 
-            "out_name": "msftmrho", 
+        "pbsi": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_mole_concentration_of_silicon_in_sea_water_due_to_biological_production", 
+            "units": "mol m-3 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Biogenic Silica Production", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "pbsi", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2258,16 +3261,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "msftmrhompa": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
-            "units": "kg s-1", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "ocean meridional overturning mass streamfunction due to parameterized mesoscale advection", 
-            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
-            "dimensions": "latitude rho basin time", 
-            "out_name": "msftmrhompa", 
+        "ph": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sea_water_ph_reported_on_total_scale", 
+            "units": "1.0", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "pH", 
+            "comment": "negative log of hydrogen ion concentration with the concentration expressed as mol H kg-1.", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "ph", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2275,16 +3278,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "msftmyz": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction", 
-            "units": "kg s-1", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "Ocean Meridional Overturning Mass Streamfunction", 
-            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude olevel basin time", 
-            "out_name": "msftmyz", 
+        "phabio": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sea_water_ph_reported_on_total_scale_due_to_abiotic_component", 
+            "units": "1.0", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Abiotic pH", 
+            "comment": "negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1 (abiotic component)..", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "phabio", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2292,16 +3295,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "msftmzmpa": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
-            "units": "kg s-1", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "ocean meridional overturning mass streamfunction due to parameterized mesoscale advection", 
-            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
-            "dimensions": "latitude olevel basin time", 
-            "out_name": "msftmzmpa", 
+        "phabioos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sea_water_ph_reported_on_total_scale_due_to_abiotic_component", 
+            "units": "1.0", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Abiotic pH", 
+            "comment": "negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "phabioos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2309,16 +3312,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "msftmzsmpa": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_advection", 
-            "units": "kg s-1", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "ocean meridional overturning mass streamfunction due to parameterized submesoscale advection", 
-            "comment": "Report only if there is a submesoscale eddy parameterization.", 
-            "dimensions": "latitude olevel basin time", 
-            "out_name": "msftmzsmpa", 
+        "phnat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sea_water_ph_reported_on_total_scale_due_to_natural_component", 
+            "units": "1.0", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Natural pH", 
+            "comment": "negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1.", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "phnat", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2326,16 +3329,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "msftyrho": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_y_overturning_mass_streamfunction", 
-            "units": "kg s-1", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "Ocean Y Overturning Mass Streamfunction", 
-            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude rho basin time", 
-            "out_name": "msftyrho", 
+        "phnatos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sea_water_ph_reported_on_total_scale_due_to_natural_component", 
+            "units": "1.0", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Natural pH", 
+            "comment": "negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "phnatos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2343,16 +3346,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "msftyrhompa": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
-            "units": "kg s-1", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "ocean Y overturning mass streamfunction due to parameterized mesoscale advection", 
-            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
-            "dimensions": "latitude rho basin time", 
-            "out_name": "msftyrhompa", 
+        "phos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sea_water_ph_reported_on_total_scale", 
+            "units": "1.0", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface pH", 
+            "comment": "negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "phos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2360,16 +3363,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "msftyyz": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_y_overturning_mass_streamfunction", 
-            "units": "kg s-1", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "Ocean Y Overturning Mass Streamfunction", 
-            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude olevel basin time", 
-            "out_name": "msftyyz", 
+        "phyc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Phytoplankton Carbon Concentration", 
+            "comment": "sum of phytoplankton carbon component concentrations.  In most (all?) cases this is the sum of phycdiat and phycmisc (i.e., 'Diatom Carbon Concentration' and 'Non-Diatom Phytoplankton Carbon Concentration'", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "phyc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2377,16 +3380,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "msftyzmpa": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
-            "units": "kg s-1", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "ocean Y overturning mass streamfunction due to parameterized mesoscale advection", 
-            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
-            "dimensions": "latitude olevel basin time", 
-            "out_name": "msftyzmpa", 
+        "phycalc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Calcareous Phytoplankton expressed as Carbon in sea water", 
+            "comment": "carbon concentration from calcareous (calcite-producing) phytoplankton component alone", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "phycalc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2394,16 +3397,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "msftyzsmpa": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_advection", 
-            "units": "kg s-1", 
-            "cell_methods": "longitude: mean time: mean", 
-            "cell_measures": "", 
-            "long_name": "ocean Y overturning mass streamfunction due to parameterized submesoscale advection", 
-            "comment": "Report only if there is a submesoscale eddy parameterization.", 
-            "dimensions": "latitude olevel basin time", 
-            "out_name": "msftyzsmpa", 
+        "phycalcos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Mole Concentration of Calcareous Phytoplankton expressed as Carbon in Sea Water", 
+            "comment": "carbon concentration from calcareous (calcite-producing) phytoplankton component alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "phycalcos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2411,16 +3414,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "nh4": {
+        "phycos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_ammonium_in_sea_water", 
+            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dissolved Ammonium Concentration", 
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "nh4", 
+            "long_name": "Surface Phytoplankton Carbon Concentration", 
+            "comment": "sum of phytoplankton organic carbon component concentrations at the sea surface", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "phycos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2428,16 +3431,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "no3": {
+        "phydiat": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_nitrate_in_sea_water", 
+            "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dissolved Nitrate Concentration", 
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "no3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Diatoms expressed as Carbon in sea water", 
+            "comment": "carbon from the diatom phytoplankton component concentration alone", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "phydiat", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2445,16 +3448,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "o2": {
+        "phydiatos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water", 
+            "standard_name": "surface_mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dissolved Oxygen Concentration", 
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "o2", 
+            "long_name": "Surface Mole Concentration of Diatoms expressed as Carbon in Sea Water", 
+            "comment": "carbon from the diatom phytoplankton component concentration alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "phydiatos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2462,16 +3465,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "o2min": {
+        "phydiaz": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_shallowest_local_minimum_in_vertical_profile", 
+            "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "area: mean where sea depth: minimum (shallowest local minimum) time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Oxygen Minimum Concentration", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "o2min", 
+            "long_name": "Mole Concentration of Diazotrophs Expressed as Carbon in sea water", 
+            "comment": "carbon concentration from the diazotrophic phytoplankton component alone", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "phydiaz", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2479,16 +3482,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "o2sat": {
+        "phydiazos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water_at_saturation", 
+            "standard_name": "surface_mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
             "cell_methods": "area: mean where sea time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Dissolved Oxygen Concentration at Saturation", 
-            "comment": "", 
-            "dimensions": "longitude latitude time depth0m", 
-            "out_name": "o2sat", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Mole Concentration of Diazotrophs Expressed as Carbon in Sea Water", 
+            "comment": "carbon concentration from the diazotrophic phytoplankton component alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "phydiazos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2496,16 +3499,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "obvfsq": {
-            "modeling_realm": "ocean", 
-            "standard_name": "square_of_brunt_vaisala_frequency_in_sea_water", 
-            "units": "s-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Square of Brunt Vaisala Frequency in Sea Water", 
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "obvfsq", 
+        "phyfe": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Total Phytoplankton expressed as Iron in sea water", 
+            "comment": "sum of phytoplankton iron component concentrations", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "phyfe", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2513,16 +3516,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ocfriver": {
+        "phyfeos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_runoff_and_sediment_dissolution", 
-            "units": "mol m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Flux of Organic Carbon Into Ocean Surface by Runoff", 
-            "comment": "Organic Carbon supply to ocean through runoff (separate from gas exchange)", 
+            "standard_name": "surface_mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Mass Concentration of Diazotrophs expressed as Chlorophyll in sea water", 
+            "comment": "sum of phytoplankton iron component concentrations", 
             "dimensions": "longitude latitude time", 
-            "out_name": "ocfriver", 
+            "out_name": "phyfeos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2530,16 +3533,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "pbo": {
-            "modeling_realm": "ocean", 
-            "standard_name": "sea_water_pressure_at_sea_floor", 
-            "units": "Pa", 
-            "cell_methods": "time: mean", 
+        "phymisc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Sea Water Pressure at Sea floor", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "pbo", 
+            "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in sea water", 
+            "comment": "carbon concentration from additional phytoplankton component alone", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "phymisc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2547,16 +3550,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "ph": {
+        "phymiscos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "sea_water_ph_reported_on_total_scale", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "standard_name": "surface_mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "pH", 
-            "comment": "negative log of hydrogen ion concentration with the concentration expressed as mol H kg-1.", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "ph", 
+            "long_name": "Surface Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in Sea Water", 
+            "comment": "carbon concentration from additional phytoplankton component alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "phymiscos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2564,16 +3567,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "phyc": {
+        "phyn": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", 
+            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Phytoplankton Carbon Concentration", 
-            "comment": "sum of phytoplankton carbon component concentrations.  In most (all?) cases this is the sum of phycdiat and phycmisc (i.e., 'Diatom Carbon Concentration' and 'Non-Diatom Phytoplankton Carbon Concentration'", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "phyc", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Total Phytoplankton expressed as Nitrogen in sea water", 
+            "comment": "sum of phytoplankton nitrogen component concentrations", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "phyn", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2581,16 +3584,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "phycalc": {
+        "phynos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water", 
+            "standard_name": "surface_mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Calcareous Phytoplankton expressed as Carbon in Sea Water", 
-            "comment": "carbon concentration from calcareous (calcite-producing) phytoplankton component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "phycalc", 
+            "long_name": "Surface Mole Concentration of Phytoplankton Nitrogen in sea water", 
+            "comment": "sum of phytoplankton nitrogen component concentrations", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "phynos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2598,16 +3601,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "phydiat": {
+        "phyp": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", 
+            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Diatoms expressed as Carbon in Sea Water", 
-            "comment": "carbon from the diatom phytoplankton component concentration alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "phydiat", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Total Phytoplankton expressed as Phosphorus in sea water", 
+            "comment": "sum of phytoplankton phosphorus components", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "phyp", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2615,16 +3618,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "phydiaz": {
+        "phypico": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", 
+            "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Diazotrophs Expressed as Carbon in Sea Water", 
-            "comment": "carbon concentration from the diazotrophic phytoplankton component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "phydiaz", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in sea water", 
+            "comment": "carbon concentration from the picophytoplankton (<2 um) component alone", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "phypico", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2632,16 +3635,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "phyfe": {
+        "phypicoos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", 
+            "standard_name": "surface_mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Phytoplankton Iron Concentration", 
-            "comment": "sum of phytoplankton iron component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "phyfe", 
+            "long_name": "Surface Mole Concentration of Picophytoplankton expressed as Carbon in Sea Water", 
+            "comment": "carbon concentration from the picophytoplankton (<2 um) component alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "phypicoos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2649,16 +3652,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "phymisc": {
+        "phypos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", 
+            "standard_name": "surface_mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in Sea Water", 
-            "comment": "carbon concentration from additional phytoplankton component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "phymisc", 
+            "long_name": "Surface Mole Concentration of Total Phytoplankton expressed as Phosphorus in sea water", 
+            "comment": "sum of phytoplankton phosphorus components", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "phypos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2666,16 +3669,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "phyn": {
+        "physi": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", 
+            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Phytoplankton Nitrogen Concentration", 
-            "comment": "sum of phytoplankton nitrogen component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "phyn", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Total Phytoplankton expressed as Silicon in sea water", 
+            "comment": "sum of phytoplankton silica component concentrations", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "physi", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2683,16 +3686,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "phyp": {
+        "physios": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", 
+            "standard_name": "surface_mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Phytoplankton Phosphorus Concentration", 
-            "comment": "sum of phytoplankton phosphorus components", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "phyp", 
+            "long_name": "Surface Mole Concentration of Total Phytoplankton expressed as Silicon in sea water", 
+            "comment": "sum of phytoplankton silica component concentrations", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "physios", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2700,16 +3703,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "phypico": {
+        "pnitrate": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", 
-            "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in Sea Water", 
-            "comment": "carbon concentration from the picophytoplankton (<2 um) component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "phypico", 
+            "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_nitrate_utilization", 
+            "units": "mol m-3 s-1", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Primary Carbon Production by Phytoplankton due to Nitrate Uptake Alone", 
+            "comment": "Primary (organic carbon) production by phytoplankton due to nitrate uptake alone", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "pnitrate", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2717,16 +3720,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "physi": {
+        "po4": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Phytoplankton Silica Concentration", 
-            "comment": "sum of phytoplankton silica component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "physi", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Total Dissolved Inorganic Phosphorus Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "po4", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2734,16 +3737,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "po4": {
+        "po4os": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_phosphate_in_sea_water", 
+            "standard_name": "surface_mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dissolved Phosphate Concentration", 
+            "long_name": "Surface Total Dissolved Inorganic Phosphorus Concentration", 
             "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "po4", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "po4os", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2751,16 +3754,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "poc": {
+        "pon": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", 
+            "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Particulate Organic Carbon Concentration", 
-            "comment": "sum of particulate organic carbon component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "poc", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Particulate Organic Matter expressed as Nitrogen in sea water", 
+            "comment": "sum of particulate organic nitrogen component concentrations", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "pon", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2768,16 +3771,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "pon": {
+        "ponos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", 
+            "standard_name": "surface_mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Particulate Organic Nitrogen Concentration", 
+            "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Nitrogen in sea water", 
             "comment": "sum of particulate organic nitrogen component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "pon", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "ponos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2789,11 +3792,11 @@
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Particulate Organic Phosphorus Concentration", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Particulate Organic Matter expressed as Phosphorus in sea water", 
             "comment": "sum of particulate organic phosphorus component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "pop", 
             "type": "real", 
             "positive": "", 
@@ -2802,15 +3805,32 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "popos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Mole Concentration of Particulate Organic Matter expressed as Phosphorus in sea water", 
+            "comment": "sum of particulate organic phosphorus component concentrations", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "popos", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "pp": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", 
             "units": "mol m-3 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Primary Carbon Production by Phytoplankton", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Primary Carbon Production by Total Phytoplankton", 
             "comment": "total primary (organic carbon) production by phytoplankton", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "pp", 
             "type": "real", 
             "positive": "", 
@@ -2819,16 +3839,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "prlq": {
-            "modeling_realm": "ocean", 
+        "prra": {
+            "modeling_realm": "atmos", 
             "standard_name": "rainfall_flux", 
             "units": "kg m-2 s-1", 
             "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
             "cell_measures": "area: areacello", 
             "long_name": "Rainfall Flux where Ice Free Ocean over Sea", 
-            "comment": "computed as the total mass of liquid water falling as liquid rain  into the ice-free portion of the ocean divided by the area of the ocean portion of the grid cell.", 
+            "comment": "", 
             "dimensions": "longitude latitude time", 
-            "out_name": "prlq", 
+            "out_name": "prra", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -2837,7 +3857,7 @@
             "ok_max_mean_abs": ""
         }, 
         "prsn": {
-            "modeling_realm": "ocean", 
+            "modeling_realm": "atmos", 
             "standard_name": "snowfall_flux", 
             "units": "kg m-2 s-1", 
             "cell_methods": "area: mean where ice_free_sea over sea time: mean", 
@@ -2923,8 +3943,8 @@
         }, 
         "sf6": {
             "modeling_realm": "ocean", 
-            "standard_name": "moles_of_sf6_per_unit_mass_in_sea_water", 
-            "units": "mol kg-1", 
+            "standard_name": "mole_concentration_of_sulfur_hexafluoride_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Moles Per Unit Mass of SF6 in sea water", 
@@ -2974,13 +3994,13 @@
         }, 
         "si": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_silicate_in_sea_water", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dissolved Silicate Concentration", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Total Dissolved Inorganic Silicon Concentration", 
             "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "si", 
             "type": "real", 
             "positive": "", 
@@ -2989,6 +4009,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "sios": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Total Dissolved Inorganic Silicon Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "sios", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "sltovgyre": {
             "modeling_realm": "ocean", 
             "standard_name": "northward_ocean_salt_transport_due_to_gyre", 
@@ -3129,11 +4166,11 @@
             "modeling_realm": "ocnBgchem", 
             "standard_name": "surface_partial_pressure_of_carbon_dioxide_in_sea_water", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
             "long_name": "Surface Aqueous Partial Pressure of CO2", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "spco2", 
             "type": "real", 
             "positive": "", 
@@ -3142,15 +4179,49 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "spco2abio": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_partial_pressure_of_carbon_dioxide_in_sea_water_due_to_abiotic_component", 
+            "units": "Pa", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Abiotic Surface Aqueous Partial Pressure of CO2", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "spco2abio", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "spco2nat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_partial_pressure_of_carbon_dioxide_in_sea_water_due_to_natural_component", 
+            "units": "Pa", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Natural Surface Aqueous Partial Pressure of CO2", 
+            "comment": "", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "spco2nat", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "talk": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
             "long_name": "Total Alkalinity", 
             "comment": "total alkalinity equivalent concentration (including carbonate, nitrogen, silicate, and borate components)", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "talk", 
             "type": "real", 
             "positive": "", 
@@ -3163,11 +4234,11 @@
             "modeling_realm": "ocnBgchem", 
             "standard_name": "seawater_alkalinity_expressed_as_mole_equivalent_natural_component", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
             "long_name": "Natural Total Alkalinity", 
             "comment": "total alkalinity equivalent concentration (including carbonate, borate, phosphorus, silicon, and nitrogen components) at preindustrial atmospheric xCO2", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time depth0m", 
             "out_name": "talknat", 
             "type": "real", 
             "positive": "", 
@@ -3176,12 +4247,46 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "talknatos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent_due_to_natural_component", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Natural Total Alkalinity", 
+            "comment": "total alkalinity equivalent concentration (including carbonate, borate, phosphorus, silicon, and nitrogen components) at preindustrial atmospheric xCO2", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "talknatos", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "talkos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Total Alkalinity", 
+            "comment": "total alkalinity equivalent concentration (including carbonate, borate, phosphorus, silicon, and nitrogen components)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "talkos", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "tauucorr": {
             "modeling_realm": "ocean", 
             "standard_name": "surface_downward_x_stress_correction", 
             "units": "N m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "--OPT", 
             "long_name": "Surface Downward X Stress Correction", 
             "comment": "This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.", 
             "dimensions": "longitude latitude time", 
@@ -3197,8 +4302,8 @@
             "modeling_realm": "ocean", 
             "standard_name": "surface_downward_x_stress", 
             "units": "N m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "--OPT", 
             "long_name": "Surface Downward X Stress", 
             "comment": "This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.", 
             "dimensions": "longitude latitude time", 
@@ -3214,8 +4319,8 @@
             "modeling_realm": "ocean", 
             "standard_name": "surface_downward_y_stress_correction", 
             "units": "N m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "--OPT", 
             "long_name": "Surface Downward Y Stress Correction", 
             "comment": "This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.", 
             "dimensions": "longitude latitude time", 
@@ -3231,8 +4336,8 @@
             "modeling_realm": "ocean", 
             "standard_name": "surface_downward_y_stress", 
             "units": "N m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "--OPT", 
             "long_name": "Surface Downward Y Stress", 
             "comment": "This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.", 
             "dimensions": "longitude latitude time", 
@@ -3314,12 +4419,12 @@
         }, 
         "tos": {
             "modeling_realm": "ocean", 
-            "standard_name": "sea_surface_temperature", 
+            "standard_name": "surface_temperature", 
             "units": "K", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
             "long_name": "Sea Surface Temperature", 
-            "comment": "this may differ from 'surface temperature' in regions of sea ice.", 
+            "comment": "temperature of liquid ocean.  Note that the correct standard_name for this variable is 'sea_surface_temperature', not 'surface_temperature', but this was discovered too late to correct.  To maintain consistency across CMIP5 models, the wrong standard_name will continue to be used.", 
             "dimensions": "longitude latitude time", 
             "out_name": "tos", 
             "type": "real", 
@@ -3368,7 +4473,7 @@
             "standard_name": "ocean_mass_x_transport", 
             "units": "kg s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "", 
+            "cell_measures": "--OPT", 
             "long_name": "Ocean Mass X Transport", 
             "comment": "X-ward mass transport from resolved and parameterized advective transport.", 
             "dimensions": "longitude latitude olevel time", 
@@ -3385,7 +4490,7 @@
             "standard_name": "sea_water_x_velocity", 
             "units": "m s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "", 
+            "cell_measures": "--OPT", 
             "long_name": "Sea Water X Velocity", 
             "comment": "Prognostic x-ward velocity component resolved by the model.", 
             "dimensions": "longitude latitude olevel time", 
@@ -3402,7 +4507,7 @@
             "standard_name": "ocean_mass_y_transport", 
             "units": "kg s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "", 
+            "cell_measures": "--OPT", 
             "long_name": "Ocean Mass Y Transport", 
             "comment": "Y-ward mass transport from resolved and parameterized advective transport.", 
             "dimensions": "longitude latitude olevel time", 
@@ -3419,7 +4524,7 @@
             "standard_name": "sea_water_y_velocity", 
             "units": "m s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "", 
+            "cell_measures": "--OPT", 
             "long_name": "Sea Water Y Velocity", 
             "comment": "Prognostic x-ward velocity component resolved by the model.", 
             "dimensions": "longitude latitude olevel time", 
@@ -3623,7 +4728,7 @@
             "standard_name": "upward_sea_water_velocity", 
             "units": "m s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "", 
+            "cell_measures": "--OPT", 
             "long_name": "Sea Water Z Velocity", 
             "comment": "", 
             "dimensions": "longitude latitude olevel time", 
@@ -3635,16 +4740,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zfull": {
+        "zfullo": {
             "modeling_realm": "ocean", 
-            "standard_name": "height_above_reference_ellipsoid", 
+            "standard_name": "depth_below_geoid", 
             "units": "m", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Depth Below Geoid of Ocean Layer", 
-            "comment": "", 
+            "comment": "Depth below geoid", 
             "dimensions": "longitude latitude olevel time", 
-            "out_name": "zfull", 
+            "out_name": "zfullo", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -3652,16 +4757,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zhalf": {
+        "zhalfo": {
             "modeling_realm": "ocean", 
-            "standard_name": "height_above_reference_ellipsoid", 
+            "standard_name": "depth_below_geoid", 
             "units": "m", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Depth Below Geoid of Interfaces Between Ocean Layers", 
-            "comment": "", 
+            "comment": "Depth below geoid", 
             "dimensions": "longitude latitude olevel time", 
-            "out_name": "zhalf", 
+            "out_name": "zhalfo", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -3669,16 +4774,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zo2min": {
+        "zmeso": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "depth_at_shallowest_local_minimum_in_vertical_profile_of_mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", 
-            "units": "m", 
-            "cell_methods": "time: mean", 
+            "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Depth of Oxygen Minimum Concentration", 
-            "comment": "Depth of vertical minimum concentration of dissolved oxygen gas (if two, then the shallower)", 
+            "long_name": "Mole Concentration of Mesozooplankton expressed as Carbon in sea water", 
+            "comment": "carbon  concentration from mesozooplankton (20-200 um) component alone", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "zmeso", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "zmesoos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Surface Mole Concentration of Mesozooplankton expressed as Carbon in Sea Water", 
+            "comment": "carbon  concentration from mesozooplankton (20-200 um) component alone", 
             "dimensions": "longitude latitude time", 
-            "out_name": "zo2min", 
+            "out_name": "zmesoos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -3686,16 +4808,33 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zooc": {
+        "zmicro": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", 
+            "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concentration of Microzooplankton expressed as Carbon in sea water", 
+            "comment": "carbon  concentration from the microzooplankton (<20 um) component alone", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "zmicro", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "zmicroos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Zooplankton Carbon Concentration", 
-            "comment": "sum of zooplankton carbon component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "zooc", 
+            "long_name": "Surface Mole Concentration of Microzooplankton expressed as Carbon in Sea Water", 
+            "comment": "carbon  concentration from the microzooplankton (<20 um) component alone", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "zmicroos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -3703,16 +4842,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zoocmisc": {
+        "zmisc": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Other Zooplankton Carbon Concentration", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Mole Concetration of Other Zooplankton expressed as Carbon in sea water", 
             "comment": "carbon from additional zooplankton component concentrations alone (e.g. Micro, meso).  Since the models all have different numbers of components, this variable has been included to provide a check for intercomparison between models since some phytoplankton groups are supersets.", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "zoocmisc", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "zmisc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -3720,16 +4859,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zoomeso": {
+        "zmiscos": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", 
+            "standard_name": "surface_mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Mesozooplankton expressed as Carbon in Sea Water", 
-            "comment": "carbon  concentration from mesozooplankton (20-200 um) component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "zoomeso", 
+            "long_name": "Surface Mole Concentraiton of Other Zooplankton expressed as Carbon in sea water", 
+            "comment": "carbon from additional zooplankton component concentrations alone (e.g. Micro, meso).  Since the models all have different numbers of components, this variable has been included to provide a check for intercomparison between models since some phytoplankton groups are supersets.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "zmiscos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -3737,16 +4876,50 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zoomicro": {
+        "zo2min": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", 
-            "units": "mol m-3", 
+            "standard_name": "depth_at_shallowest_local_minimum_in_vertical_profile_of_mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", 
+            "units": "m", 
             "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Depth of Oxygen Minimum Concentration", 
+            "comment": "Depth of vertical minimum concentration of dissolved oxygen gas (if two, then the shallower)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "zo2min", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "zooc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Zooplankton Carbon Concentration", 
+            "comment": "sum of zooplankton carbon component concentrations", 
+            "dimensions": "longitude latitude time depth0m", 
+            "out_name": "zooc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "zoocos": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Microzooplankton expressed as Carbon in Sea Water", 
-            "comment": "carbon  concentration from the microzooplankton (<20 um) component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "out_name": "zoomicro", 
+            "long_name": "Surface Zooplankton Carbon Concentration", 
+            "comment": "sum of zooplankton carbon component concentrations", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "zoocos", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
diff --git a/TestTables/CMIP6_Omonbad.json b/TestTables/CMIP6_Omonbad.json
index dd84324..fc3a6c7 100644
--- a/TestTables/CMIP6_Omonbad.json
+++ b/TestTables/CMIP6_Omonbad.json
@@ -1,6 +1,6 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.32", 
+        "data_specs_version": "01.00.05", 
         "table_id": "Table Omon", 
         "realm": "ocean", 
         "frequency": "mon", 
@@ -11,7 +11,7 @@
         "approx_interval": "30.00000", 
         "generic_levels": "olevel", 
         "mip_era": "verybad", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "axis_entry": {
         "alt16": {
diff --git a/TestTables/CMIP6_Oyr.json b/TestTables/CMIP6_Oyr.json
index 9f55dc0..9154a11 100644
--- a/TestTables/CMIP6_Oyr.json
+++ b/TestTables/CMIP6_Oyr.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table Oyr", 
         "realm": "ocnBgchem", 
         "frequency": "yr", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "365.00000", 
         "generic_levels": "olevel", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "arag": {
@@ -118,11 +118,11 @@
         }, 
         "bddtdip": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_phosphate_in_sea_water_due_to_biological_processes", 
+            "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water_due_to_biological_processes", 
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Rate of Change of Dissolved Phosphate due to Biological Activity", 
+            "long_name": "Rate of Change of Dissolved phosphorus due to Biological Activity", 
             "comment": "Net of biological terms in time rate of change of dissolved phosphate", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "bddtdip", 
@@ -135,12 +135,12 @@
         }, 
         "bddtdisi": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_silicate_in_sea_water_due_to_biological_processes", 
+            "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_silicon_in_sea_water_due_to_biological_processes", 
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Rate of Change of Dissolved Inorganic Silicate due to Biological Activity", 
-            "comment": "Net of biological terms in time rate of change of dissolved inorganic silicate", 
+            "long_name": "Rate of Change of Dissolved Inorganic silicon due to Biological Activity", 
+            "comment": "Net of biological terms in time rate of change of dissolved inorganic silicon", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "bddtdisi", 
             "type": "real", 
@@ -156,7 +156,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Particulate Biogenic Iron Concentration", 
+            "long_name": "Mole Concentration of Particulate Organic Matter expressed as Iron in sea water", 
             "comment": "Sum of particulate organic iron component concentrations", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "bfe", 
@@ -173,7 +173,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Particulate Biogenic Silica Concentration", 
+            "long_name": "Mole Concentration of Particulate Organic Matter expressed as silicon in sea water", 
             "comment": "Sum of particulate silica component concentrations", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "bsi", 
@@ -203,8 +203,8 @@
         }, 
         "cfc11": {
             "modeling_realm": "ocean", 
-            "standard_name": "moles_of_cfc11_per_unit_mass_in_sea_water", 
-            "units": "mol kg-1", 
+            "standard_name": "mole_concentration_of_cfc11_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Mole Concentration of CFC-11 in sea water", 
@@ -220,8 +220,8 @@
         }, 
         "cfc12": {
             "modeling_realm": "ocean", 
-            "standard_name": "moles_of_cfc12_per_unit_mass_in_sea_water", 
-            "units": "mol kg-1", 
+            "standard_name": "mole_concentration_of_cfc12_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Mole Concentration of CFC-12 in sea water", 
@@ -241,7 +241,7 @@
             "units": "kg m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Total Chlorophyll Mass Concentration", 
+            "long_name": "Mass Concentration of Total Chlorophyll in sea water", 
             "comment": "Sum of chlorophyll from all phytoplankton group concentrations.  In most models this is equal to chldiat+chlmisc, that is the sum of Diatom Chlorophyll Mass Concentration and Other Phytoplankton Chlorophyll Mass Concentration", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "chl", 
@@ -258,7 +258,7 @@
             "units": "kg m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in Sea Water", 
+            "long_name": "Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in sea water", 
             "comment": "chlorophyll concentration from the calcite-producing phytoplankton component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "chlcalc", 
@@ -275,7 +275,7 @@
             "units": "kg m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Diatom Chlorophyll Mass Concentration", 
+            "long_name": "Mass Concentration of Diatom expressed as Chlorophyll in sea water", 
             "comment": "Chlorophyll from diatom phytoplankton component concentration alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "chldiat", 
@@ -292,7 +292,7 @@
             "units": "kg m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in Sea Water", 
+            "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in sea water", 
             "comment": "Chlorophyll concentration from the diazotrophic phytoplankton component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "chldiaz", 
@@ -309,7 +309,7 @@
             "units": "kg m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Other Phytoplankton Chlorophyll Mass Concentration", 
+            "long_name": "Mass Concentration of Other Phytoplankton expressed as Chlorophyll in sea water", 
             "comment": "Chlorophyll from additional phytoplankton component concentrations alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "chlmisc", 
@@ -326,7 +326,7 @@
             "units": "kg m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in Sea Water", 
+            "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in sea water", 
             "comment": "chlorophyll concentration from the picophytoplankton (<2 um) component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "chlpico", 
@@ -343,7 +343,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Carbonate expressed as Carbon in Sea Water", 
+            "long_name": "Carbonate ion Concentration", 
             "comment": "", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "co3", 
@@ -354,13 +354,47 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "co3abio": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water_due_to_abiotic_component", 
+            "units": "mol m-3", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Abiotic Carbonate ion Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "co3abio", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "co3nat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water_due_to_natural_component", 
+            "units": "mol m-3", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Natural Carbonate ion Concentration", 
+            "comment": "", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "co3nat", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "co3satarag": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_at_saturation", 
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Aragonite expressed as Carbon in Sea Water at Saturation", 
+            "long_name": "Carbonate ion Concentration for sea water in equilibrium with pure Aragonite", 
             "comment": "", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "co3satarag", 
@@ -377,7 +411,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Calcite expressed as Carbon in Sea Water at Saturation", 
+            "long_name": "Carbonate ion Concentration for sea water in equilibrium with pure Calcite", 
             "comment": "", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "co3satcalc", 
@@ -445,7 +479,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dissolved Iron Concentration", 
+            "long_name": "Mole Concentration of Dissolved Iron in sea water", 
             "comment": "Dissolved iron in sea water,  including both Fe2+ and Fe3+ ions (but not particulate detrital iron)", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "dfe", 
@@ -561,12 +595,12 @@
         "dispkexyfo": {
             "modeling_realm": "ocean", 
             "standard_name": "ocean_kinetic_energy_dissipation_per_unit_area_due_to_xy_friction", 
-            "units": "W m-2 ", 
-            "cell_methods": "time: mean", 
+            "units": "W m-2", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "ocean kinetic energy dissipation per unit area due to xy friction", 
             "comment": "Depth integrated impacts on kinetic energy arising from lateral frictional dissipation associated with Laplacian and/or biharmonic viscosity. For CMIP5, this diagnostic was 3d, whereas the CMIP6 depth integrated diagnostic is sufficient for many purposes and reduces archive requirements.", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time", 
             "out_name": "dispkexyfo", 
             "type": "real", 
             "positive": "", 
@@ -575,9 +609,26 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "dissi13c": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon13_in_sea_water", 
+            "units": "mol m-3", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Dissolved Inorganic 13Carbon Concentration", 
+            "comment": "Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "dissi13c", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "dissi14cabio": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_dissolved_inorganic_14carbon_in_sea_water_abiotic_component", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon14_in_sea_water", 
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
@@ -666,7 +717,7 @@
             "units": "mol mol-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dimethyl Sulphide Concentration", 
+            "long_name": "Mole Concentration of Dimethyl Sulphide in sea water", 
             "comment": "", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "dms", 
@@ -677,6 +728,57 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "dpocdtcalc": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_calcareous_phytoplankton", 
+            "units": "mol m-3 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Tendency of Mole Concentration of Organic Carbon in sea water due to Net Primary Production by Calcareous Phytoplankton", 
+            "comment": "Primary (organic carbon) production by the calcite-producing phytoplankton component alone", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "dpocdtcalc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "dpocdtdiaz": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diazotrophs", 
+            "units": "mol m-3 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Tendency of Mole Concentration of Organic Carbon in sea water due to Net Primary Production by Diazotrophs", 
+            "comment": "Primary (organic carbon) production by the diazotrophic phytoplankton component alone", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "dpocdtdiaz", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "dpocdtpico": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_picophytoplankton", 
+            "units": "mol m-3 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Tendency of Mole Concentration of Organic Carbon in sea water due to Net Primary Production by Picophytoplankton", 
+            "comment": "Primary (organic carbon) production by the picophytoplankton (<2 um) component alone", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "dpocdtpico", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "exparag": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", 
@@ -830,9 +932,94 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "fg13co2": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "air_sea_flux_of_13CO2", 
+            "units": "mol m-2 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Surface Downward Flux of Abiotic 13CO2", 
+            "comment": "as specified by C4MIP", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "fg13co2", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "fg14co2abio": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_downward_mass_flux_of_abiotic_14_carbon_dioxide_expressed_as_carbon", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Surface Downward Flux of Abiotic 14CO2", 
+            "comment": "Gas exchange flux of abiotic 14CO2 (positive into ocean)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "fg14co2abio", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "fgco2": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Surface Downward Flux of Total CO2", 
+            "comment": "Gas exchange flux of CO2 (positive into ocean)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "fgco2", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "fgco2abio": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_downward_mass_flux_of_abiotic_carbon_dioxide_expressed_as_carbon", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Surface Downward Flux of Abiotic CO2", 
+            "comment": "Gas exchange flux of abiotic CO2 (positive into ocean)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "fgco2abio", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "fgco2nat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "surface_downward_mass_flux_of_natural_carbon_dioxide_expressed_as_carbon", 
+            "units": "kg m-2 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello", 
+            "long_name": "Surface Downward Flux of Natural CO2", 
+            "comment": "Gas exchange flux of natural CO2 (positive into ocean)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "fgco2nat", 
+            "type": "real", 
+            "positive": "down", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "graz": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "tendency_of_mole_concentration_of_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton", 
+            "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton", 
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
@@ -883,7 +1070,7 @@
         }, 
         "o2": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water", 
+            "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", 
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
@@ -900,7 +1087,7 @@
         }, 
         "o2sat": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water_at_saturation", 
+            "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", 
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
@@ -1323,6 +1510,23 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "pdi": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diatoms", 
+            "units": "mol m-3 s-1", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Diatom Primary Carbon Production", 
+            "comment": "Primary (organic carbon) production by the diatom component alone", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "pdi", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "ph": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "sea_water_ph_reported_on_total_scale", 
@@ -1340,6 +1544,40 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "phabio": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sea_water_ph_reported_on_total_scale_due_to_abiotic_component", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Abiotic pH", 
+            "comment": "negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1 (abiotic component)..", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "phabio", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "phnat": {
+            "modeling_realm": "ocnBgchem", 
+            "standard_name": "sea_water_ph_reported_on_total_scale_due_to_natural_component", 
+            "units": "1.0", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacello volume: volcello", 
+            "long_name": "Natural pH", 
+            "comment": "negative log10 of hydrogen ion concentration with the concentration expressed as mol H kg-1.", 
+            "dimensions": "longitude latitude olevel time", 
+            "out_name": "phnat", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "phyc": {
             "modeling_realm": "ocnBgchem", 
             "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", 
@@ -1363,7 +1601,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Calcareous Phytoplankton expressed as Carbon in Sea Water", 
+            "long_name": "Mole Concentration of Calcareous Phytoplankton expressed as Carbon in sea water", 
             "comment": "carbon concentration from calcareous (calcite-producing) phytoplankton component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "phycalc", 
@@ -1380,7 +1618,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Diatoms expressed as Carbon in Sea Water", 
+            "long_name": "Mole Concentration of Diatoms expressed as Carbon in sea water", 
             "comment": "carbon from the diatom phytoplankton component concentration alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "phydiat", 
@@ -1397,7 +1635,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Diazotrophs Expressed as Carbon in Sea Water", 
+            "long_name": "Mole Concentration of Diazotrophs Expressed as Carbon in sea water", 
             "comment": "carbon concentration from the diazotrophic phytoplankton component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "phydiaz", 
@@ -1414,7 +1652,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Phytoplankton Iron Concentration", 
+            "long_name": "Mole Concentration of Total Phytoplankton expressed as Iron in sea water", 
             "comment": "sum of phytoplankton iron component concentrations", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "phyfe", 
@@ -1431,7 +1669,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in Sea Water", 
+            "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in sea water", 
             "comment": "carbon concentration from additional phytoplankton component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "phymisc", 
@@ -1448,7 +1686,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Phytoplankton Nitrogen Concentration", 
+            "long_name": "Mole Concentration of Total Phytoplankton expressed as Nitrogen in sea water", 
             "comment": "sum of phytoplankton nitrogen component concentrations", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "phyn", 
@@ -1465,7 +1703,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Phytoplankton Phosphorus Concentration", 
+            "long_name": "Mole Concentration of Total Phytoplankton expressed as Phosphorus in sea water", 
             "comment": "sum of phytoplankton phosphorus components", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "phyp", 
@@ -1482,7 +1720,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in Sea Water", 
+            "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in sea water", 
             "comment": "carbon concentration from the picophytoplankton (<2 um) component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "phypico", 
@@ -1499,7 +1737,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Phytoplankton Silica Concentration", 
+            "long_name": "Mole Concentration of Total Phytoplankton expressed as Silicon in sea water", 
             "comment": "sum of phytoplankton silica component concentrations", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "physi", 
@@ -1529,11 +1767,11 @@
         }, 
         "po4": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_phosphate_in_sea_water", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water", 
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dissolved Phosphate Concentration", 
+            "long_name": "Total Dissolved Inorganic Phosphorus Concentration", 
             "comment": "", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "po4", 
@@ -1550,7 +1788,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Particulate Organic Nitrogen Concentration", 
+            "long_name": "Mole Concentration of Particulate Organic Matter expressed as Nitrogen in sea water", 
             "comment": "sum of particulate organic nitrogen component concentrations", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "pon", 
@@ -1567,7 +1805,7 @@
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Particulate Organic Phosphorus Concentration", 
+            "long_name": "Mole Concentration of Particulate Organic Matter expressed as Phosphorus in sea water", 
             "comment": "sum of particulate organic phosphorus component concentrations", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "pop", 
@@ -1584,7 +1822,7 @@
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Primary Carbon Production by Phytoplankton", 
+            "long_name": "Primary Carbon Production by Total Phytoplankton", 
             "comment": "total primary (organic carbon) production by phytoplankton", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "pp", 
@@ -1601,7 +1839,7 @@
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Tendency of Mole Concentration of Organic Carbon in Sea Water due to Net Primary Production by Calcareous Phytoplankton", 
+            "long_name": "Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton", 
             "comment": "Primary (organic carbon) production by the calcite-producing phytoplankton component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "ppcalc", 
@@ -1618,7 +1856,7 @@
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Diatom Primary Carbon Production", 
+            "long_name": "Net Primary Organic Carbon Production by Diatoms", 
             "comment": "Primary (organic carbon) production by the diatom component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "ppdiat", 
@@ -1635,7 +1873,7 @@
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Tendency of Mole Concentration of Organic Carbon in Sea Water due to Net Primary Production by Diazotrophs", 
+            "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", 
             "comment": "Primary (organic carbon) production by the diazotrophic phytoplankton component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "ppdiaz", 
@@ -1652,7 +1890,7 @@
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Other Phytoplankton Carbon Production", 
+            "long_name": "Net Primary Organic Carbon Production by Other Phytoplankton", 
             "comment": "Primary (organic carbon) production by other phytoplankton components alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "ppmisc", 
@@ -1669,7 +1907,7 @@
             "units": "mol m-3 s-1", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Tendency of Mole Concentration of Organic Carbon in Sea Water due to Net Primary Production by Picophytoplankton", 
+            "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", 
             "comment": "Primary (organic carbon) production by the picophytoplankton (<2 um) component alone", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "pppico", 
@@ -1702,10 +1940,10 @@
             "standard_name": "net_rate_of_absorption_of_shortwave_energy_in_ocean_layer", 
             "units": "W m-2", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_measures": "area: areacello volume: volcello", 
             "long_name": "net rate of absorption of shortwave energy in ocean layer", 
             "comment": "", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude olevel time", 
             "out_name": "rsdoabsorb", 
             "type": "real", 
             "positive": "", 
@@ -1716,8 +1954,8 @@
         }, 
         "sf6": {
             "modeling_realm": "ocean", 
-            "standard_name": "moles_of_sf6_per_unit_mass_in_sea_water", 
-            "units": "mol kg-1", 
+            "standard_name": "mole_concentration_of_sulfur_hexafluoride_in_sea_water", 
+            "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "Mole Concentration of SF6 in sea water", 
@@ -1733,11 +1971,11 @@
         }, 
         "si": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_silicate_in_sea_water", 
+            "standard_name": "mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", 
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Dissolved Silicate Concentration", 
+            "long_name": "Total Dissolved Inorganic Silicon Concentration", 
             "comment": "", 
             "dimensions": "longitude latitude olevel time", 
             "out_name": "si", 
@@ -1802,12 +2040,12 @@
         "tnkebto": {
             "modeling_realm": "ocean", 
             "standard_name": "tendency_of_ocean_eddy_kinetic_energy_content_due_to_bolus_transport", 
-            "units": "W m-2 ", 
-            "cell_methods": "time: mean", 
+            "units": "W m-2", 
+            "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "tendency of ocean eddy kinetic energy content due to parameterized eddy advection", 
             "comment": "Depth integrated impacts on kinetic energy arising from parameterized eddy-induced advection. For CMIP5, this diagnostic was 3d, whereas the CMIP6 depth integrated diagnostic is sufficient for many purposes and reduces archive requirements.", 
-            "dimensions": "longitude latitude olevel time", 
+            "dimensions": "longitude latitude time", 
             "out_name": "tnkebto", 
             "type": "real", 
             "positive": "", 
@@ -1819,7 +2057,7 @@
         "tnpeo": {
             "modeling_realm": "ocean", 
             "standard_name": "tendency_of_ocean_potential_energy_content", 
-            "units": "W m-2 ", 
+            "units": "W m-2", 
             "cell_methods": "area: mean where sea time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
             "long_name": "tendency of ocean potential energy content", 
@@ -1833,16 +2071,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zooc": {
+        "zmeso": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", 
+            "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Zooplankton Carbon Concentration", 
-            "comment": "sum of zooplankton carbon component concentrations", 
+            "long_name": "Mole Concentration of Mesozooplankton expressed as Carbon in sea water", 
+            "comment": "carbon  concentration from mesozooplankton (20-200 um) component alone", 
             "dimensions": "longitude latitude olevel time", 
-            "out_name": "zooc", 
+            "out_name": "zmeso", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1850,16 +2088,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zoocmisc": {
+        "zmicro": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", 
+            "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Other Zooplankton Carbon Concentration", 
-            "comment": "carbon from additional zooplankton component concentrations alone (e.g. Micro, meso).  Since the models all have different numbers of components, this variable has been included to provide a check for intercomparison between models since some phytoplankton groups are supersets.", 
+            "long_name": "Mole Concentration of Microzooplankton expressed as Carbon in sea water", 
+            "comment": "carbon  concentration from the microzooplankton (<20 um) component alone", 
             "dimensions": "longitude latitude olevel time", 
-            "out_name": "zoocmisc", 
+            "out_name": "zmicro", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1867,16 +2105,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zoomeso": {
+        "zmisc": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", 
+            "standard_name": "mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Mesozooplankton expressed as Carbon in Sea Water", 
-            "comment": "carbon  concentration from mesozooplankton (20-200 um) component alone", 
+            "long_name": "Mole Concetration of Other Zooplankton expressed as Carbon in sea water", 
+            "comment": "carbon from additional zooplankton component concentrations alone (e.g. Micro, meso).  Since the models all have different numbers of components, this variable has been included to provide a check for intercomparison between models since some phytoplankton groups are supersets.", 
             "dimensions": "longitude latitude olevel time", 
-            "out_name": "zoomeso", 
+            "out_name": "zmisc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -1884,16 +2122,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "zoomicro": {
+        "zooc": {
             "modeling_realm": "ocnBgchem", 
-            "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", 
+            "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", 
             "units": "mol m-3", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Mole Concentration of Microzooplankton expressed as Carbon in Sea Water", 
-            "comment": "carbon  concentration from the microzooplankton (<20 um) component alone", 
+            "long_name": "Zooplankton Carbon Concentration", 
+            "comment": "sum of zooplankton carbon component concentrations", 
             "dimensions": "longitude latitude olevel time", 
-            "out_name": "zoomicro", 
+            "out_name": "zooc", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
diff --git a/TestTables/CMIP6_SIday.json b/TestTables/CMIP6_SIday.json
index e6e240c..916f181 100644
--- a/TestTables/CMIP6_SIday.json
+++ b/TestTables/CMIP6_SIday.json
@@ -1,24 +1,58 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table SIday", 
         "realm": "seaIce", 
         "frequency": "day", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "1.00000", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
+        "siconc": {
+            "modeling_realm": "seaIce", 
+            "standard_name": "sea_ice_area_fraction", 
+            "units": "%", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Sea Ice Area Fraction", 
+            "comment": "Area fraction of grid cell covered by sea ice", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "siconc", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "sisnthick": {
+            "modeling_realm": "seaIce", 
+            "standard_name": "surface_snow_thickness", 
+            "units": "m", 
+            "cell_methods": "area: mean where snow over sea_ice area: time: mean where sea_ice", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Snow thickness", 
+            "comment": "Actual thickness of snow (snow volume divided by snow-covered area)", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "sisnthick", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "sispeed": {
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_speed", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Sea-ice speed", 
             "comment": "Speed of ice (i.e. mean absolute velocity) to account for back-and-forth movement of the ice", 
@@ -31,16 +65,67 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "sithick": {
+        "sitemptop": {
             "modeling_realm": "seaIce", 
-            "standard_name": "sea_ice_thickness", 
-            "units": "m", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "standard_name": "sea_ice_surface_temperature", 
+            "units": "K", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
-            "long_name": "Sea-ice thickness", 
-            "comment": "Actual (floe) thickness of sea ice (NOT volume divided by grid area as was done in CMIP5)", 
+            "long_name": "Surface temperature of sea ice", 
+            "comment": "Report surface temperature of snow where snow covers the sea ice.", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "sitemptop", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "sitimefrac": {
+            "modeling_realm": "seaIce", 
+            "standard_name": "sea_ice_time_fraction", 
+            "units": "1.0", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Fraction of time steps with sea ice", 
+            "comment": "Fraction of time steps of the averaging period during which sea ice is present (siconc >0 ) in a grid cell", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "sitimefrac", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "siu": {
+            "modeling_realm": "seaIce", 
+            "standard_name": "sea_ice_x_velocity", 
+            "units": "m s-1", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "--MODEL", 
+            "long_name": "X-component of sea ice velocity", 
+            "comment": "The x-velocity of ice on native model grid", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "siu", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "siv": {
+            "modeling_realm": "seaIce", 
+            "standard_name": "sea_ice_y_velocity", 
+            "units": "m s-1", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "--MODEL", 
+            "long_name": "Y-component of sea ice velocity", 
+            "comment": "The y-velocity of ice on native model grid", 
             "dimensions": "longitude latitude time", 
-            "out_name": "sithick", 
+            "out_name": "siv", 
             "type": "", 
             "positive": "", 
             "valid_min": "", 
diff --git a/TestTables/CMIP6_SImon.json b/TestTables/CMIP6_SImon.json
index fdaa47e..6579ed9 100644
--- a/TestTables/CMIP6_SImon.json
+++ b/TestTables/CMIP6_SImon.json
@@ -1,25 +1,25 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table SImon", 
         "realm": "seaIce", 
         "frequency": "mon", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "30.00000", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "siage": {
             "modeling_realm": "seaIce", 
             "standard_name": "age_of_sea_ice", 
             "units": "s", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Age of sea ice", 
             "comment": "Age of sea ice", 
             "dimensions": "longitude latitude time", 
@@ -35,8 +35,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_albedo", 
             "units": "1.0", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Sea-ice or snow albedo", 
             "comment": "Mean surface albedo of entire ice-covered part of grid cell", 
             "dimensions": "longitude latitude time", 
@@ -103,8 +103,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "compressive_strength_of_sea_ice", 
             "units": "N m-1", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Compressive sea ice strength", 
             "comment": "Computed strength of the ice pack, defined as the energy (J m-2) dissipated per unit area removed from the ice pack under compression, and assumed proportional to the change in potential energy caused by ridging. For Hibler-type models, this is P (= P*hexp(-C(1-A)))", 
             "dimensions": "longitude latitude time", 
@@ -119,14 +119,14 @@
         "siconc": {
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_area_fraction", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Sea-ice area fraction", 
+            "units": "%", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Sea Ice Area Fraction", 
             "comment": "Area fraction of grid cell covered by sea ice", 
             "dimensions": "longitude latitude time", 
             "out_name": "siconc", 
-            "type": "", 
+            "type": "real", 
             "positive": "", 
             "valid_min": "", 
             "valid_max": "", 
@@ -137,7 +137,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_sea_ice_area_fraction_due_to_dynamics", 
             "units": "s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "sea-ice area fraction change from dynamics", 
             "comment": "Total change in sea-ice area fraction through dynamics-related processes (advection, divergence...)", 
@@ -154,7 +154,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_sea_ice_area_fraction_due_to_thermodynamics", 
             "units": "s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "sea-ice area fraction change from thermodynamics", 
             "comment": "Total change in sea-ice area fraction through thermodynamic processes", 
@@ -171,7 +171,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "divergence_of_sea_ice_velocity", 
             "units": "s-1", 
-            "cell_methods": "area: mean where sea_ice time: point", 
+            "cell_methods": "area: mean where sea_ice (comment: mask=siconc) time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Divergence of the sea-ice velocity field", 
             "comment": "Divergence of sea-ice velocity field (first shear strain invariant)", 
@@ -188,7 +188,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_sea_ice_amount_due_to_dynamics", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "sea-ice mass change from dynamics", 
             "comment": "Total change in sea-ice mass through dynamics-related processes (advection,...) divided by grid-cell area", 
@@ -205,8 +205,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "water_evaporation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
             "long_name": "sea-ice mass change through evaporation and sublimation", 
             "comment": "The rate of change of sea-ice mass change through evaporation and sublimation divided by grid-cell area", 
             "dimensions": "longitude latitude time", 
@@ -222,10 +222,10 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_sea_ice_amount_due_to_congelation_ice_accumulation", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
             "long_name": "sea-ice mass change through basal growth", 
-            "comment": "The rate of change of sea ice mass due to vertical growth of existing sea ice at its base divided by grid-cell area. ", 
+            "comment": "The rate of change of sea ice mass due to vertical growth of existing sea ice at its base divided by grid-cell area.", 
             "dimensions": "longitude latitude time", 
             "out_name": "sidmassgrowthbot", 
             "type": "", 
@@ -239,10 +239,10 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_sea_ice_amount_due_to_freezing_in_open_water", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
             "long_name": "sea-ice mass change through growth in supercooled open water (aka frazil)", 
-            "comment": "The rate of change of sea ice mass due to sea ice formation in supercooled water (often through frazil formation) divided by grid-cell area. Together, sidmassgrowthwat and sidmassgrowthbot should give total ice growth ", 
+            "comment": "The rate of change of sea ice mass due to sea ice formation in supercooled water (often through frazil formation) divided by grid-cell area. Together, sidmassgrowthwat and sidmassgrowthbot should give total ice growth", 
             "dimensions": "longitude latitude time", 
             "out_name": "sidmassgrowthwat", 
             "type": "", 
@@ -256,7 +256,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_sea_ice_amount_due_to_lateral_melting", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Lateral sea ice melt rate", 
             "comment": "The rate of change of sea ice mass through lateral melting divided by grid-cell area (report 0 if not explicitly calculated thermodynamically)", 
@@ -273,8 +273,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_sea_ice_amount_due_to_basal_melting", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
             "long_name": "sea-ice mass change through bottom melting", 
             "comment": "The rate of change of sea ice mass through melting at the ice bottom divided by grid-cell area", 
             "dimensions": "longitude latitude time", 
@@ -290,8 +290,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_sea_ice_amount_due_to_surface_melting", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
             "long_name": "sea-ice mass change through surface melting", 
             "comment": "The rate of change of sea ice mass through melting at the ice surface divided by grid-cell area", 
             "dimensions": "longitude latitude time", 
@@ -307,8 +307,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_sea_ice_amount_due_to_snow_conversion", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
             "long_name": "sea-ice mass change through snow-to-ice conversion", 
             "comment": "The rate of change of sea ice mass due to transformation of snow to sea ice divided by grid-cell area", 
             "dimensions": "longitude latitude time", 
@@ -324,7 +324,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_sea_ice_amount_due_to_thermodynamics", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "sea-ice mass change from thermodynamics", 
             "comment": "Total change in sea-ice mass from thermodynamic processes divided by grid-cell area", 
@@ -342,7 +342,7 @@
             "standard_name": "sea_ice_x_transport", 
             "units": "kg s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_measures": "--MODEL", 
             "long_name": "X-component of sea-ice mass transport", 
             "comment": "Includes transport of both sea ice and snow by advection", 
             "dimensions": "longitude latitude time", 
@@ -359,7 +359,7 @@
             "standard_name": "sea_ice_y_transport", 
             "units": "kg s-1", 
             "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_measures": "--MODEL", 
             "long_name": "Y-component of sea-ice mass transport", 
             "comment": "Includes transport of both sea ice and snow by advection", 
             "dimensions": "longitude latitude time", 
@@ -375,7 +375,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_drag_coefficient_for_momentum_in_water", 
             "units": "1.0", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Ocean drag coefficient", 
             "comment": "Oceanic drag coefficient that is used to calculate the oceanic momentum drag on sea ice", 
@@ -392,7 +392,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_drag_coefficient_for_momentum_in_air", 
             "units": "1.0", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Atmospheric drag coefficient", 
             "comment": "Atmospheric drag coefficient that is used to calculate the atmospheric momentum drag on sea ice", 
@@ -443,7 +443,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_freeboard", 
             "units": "m", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Sea-ice freeboard", 
             "comment": "Mean height of sea-ice surface (=snow-ice interface when snow covered) above sea level", 
@@ -459,11 +459,11 @@
         "siflcondbot": {
             "modeling_realm": "seaIce", 
             "standard_name": "conductive_heat_flux_at_sea_ice_bottom", 
-            "units": "W m-2 ", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Net conductive heat fluxes in ice at the bottom", 
-            "comment": "the net heat conduction flux at the ice base ", 
+            "comment": "the net heat conduction flux at the ice base", 
             "dimensions": "longitude latitude time", 
             "out_name": "siflcondbot", 
             "type": "", 
@@ -476,8 +476,8 @@
         "siflcondtop": {
             "modeling_realm": "seaIce", 
             "standard_name": "conductive_heat_flux_at_sea_ice_surface", 
-            "units": "W m-2 ", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "units": "W m-2", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Net conductive heat flux in ice at the surface", 
             "comment": "the net heat conduction flux at the ice surface", 
@@ -494,7 +494,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "freshwater_flux_from_ice", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Freshwater flux from sea ice", 
             "comment": "Total flux of fresh water from water into sea ice divided by grid-cell area; This flux is negative during ice growth (liquid water mass decreases, hence upward flux of freshwater), positive during ice melt (liquid water mass increases, hence downward flux of freshwater)", 
@@ -511,7 +511,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "freshwater_flux_from_ice_surface", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Freshwater flux from sea-ice surface", 
             "comment": "Total flux of fresh water from sea-ice surface into underlying ocean. This combines both surface melt water that drains directly into the ocean and the drainage of surface melt pond. By definition, this flux is always positive.", 
@@ -528,8 +528,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_upward_latent_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Net latent heat flux over sea ice", 
             "comment": "the net latent heat flux over sea ice", 
             "dimensions": "longitude latitude time", 
@@ -545,8 +545,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_downwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Downwelling longwave flux over sea ice", 
             "comment": "the downwelling longwave flux over sea ice (always positive)", 
             "dimensions": "longitude latitude time", 
@@ -562,8 +562,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_upwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Upward longwave flux over sea ice", 
             "comment": "the upward longwave flux over sea ice (always negative)", 
             "dimensions": "longitude latitude time", 
@@ -579,7 +579,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "salt_flux_from_ice", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Salt flux from sea ice", 
             "comment": "Total flux of salt from water into sea ice divided by grid-cell area; salt flux is upward (negative) during ice growth when salt is embedded into the ice and downward (positive) during melt when salt from sea ice is again released to the ocean", 
@@ -596,8 +596,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_upward_sensible_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Net sensible heat flux over sea ice", 
             "comment": "the net sensible heat flux over sea ice", 
             "dimensions": "longitude latitude time", 
@@ -613,7 +613,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "ice_ocean_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Net sensible heat flux under sea ice", 
             "comment": "the net sensible heat flux under sea ice from the ocean", 
@@ -630,7 +630,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "bottom_downwelling_shortwave_flux_into_ocean", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Downwelling shortwave flux under sea ice", 
             "comment": "the downwelling shortwave flux underneath sea ice (always positive)", 
@@ -647,8 +647,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Downwelling shortwave flux over sea ice", 
             "comment": "the downwelling shortwave flux over sea ice (always positive by sign convention)", 
             "dimensions": "longitude latitude time", 
@@ -664,8 +664,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Upward shortwave flux over sea ice", 
             "comment": "the upward shortwave flux over sea ice (always negative)", 
             "dimensions": "longitude latitude time", 
@@ -681,7 +681,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "coriolis_force_on_sea_ice_x", 
             "units": "N m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "--MODEL", 
             "long_name": "Coriolis force term in force balance (x-component)", 
             "comment": "X-component of force on sea ice caused by coriolis force", 
@@ -698,7 +698,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "coriolis_force_on_sea_ice_y", 
             "units": "N m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "--MODEL", 
             "long_name": "Coriolis force term in force balance (y-component)", 
             "comment": "Y-component of force on sea ice caused by coriolis force", 
@@ -715,7 +715,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "internal_stress_in_sea_ice_x", 
             "units": "N m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "--MODEL", 
             "long_name": "Internal stress term in force balance (x-component)", 
             "comment": "X-component of force on sea ice caused by internal stress (divergence of sigma)", 
@@ -732,7 +732,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "internal_stress_in_sea_ice_y", 
             "units": "N m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "--MODEL", 
             "long_name": "Internal stress term in force balance (y-component)", 
             "comment": "Y-component of force on sea ice caused by internal stress (divergence of sigma)", 
@@ -749,7 +749,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_surface_tilt_force_on_sea_ice_x", 
             "units": "N m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "--MODEL", 
             "long_name": "Sea-surface tilt term in force balance (x-component)", 
             "comment": "X-component of force on sea ice caused by sea-surface tilt", 
@@ -766,7 +766,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_surface_tilt_force_on_sea_ice_y", 
             "units": "N m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "--MODEL", 
             "long_name": "Sea-surface tilt term in force balance (y-component)", 
             "comment": "Y-component of force on sea ice caused by sea-surface tilt", 
@@ -783,8 +783,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "integral_of_sea_ice_temperature_wrt_depth_expressed_as_heat_content", 
             "units": "J m-2", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
             "long_name": "Sea-ice heat content per unit area", 
             "comment": "Heat content of all ice in grid cell divided by total grid-cell area. Water at 0 Celsius is assumed to have a heat content of 0 J.  Does not include heat content of snow, but does include heat content of brine. Heat content is always negative, since both the sensible and the latent heat content of ice are less than that of water", 
             "dimensions": "longitude latitude time", 
@@ -799,8 +799,8 @@
         "siitdconc": {
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_area_fraction_over_categories", 
-            "units": "1.0", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "units": "%", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Sea-ice area fractions in thickness categories", 
             "comment": "Area fraction of grid cell covered by each ice-thickness category (vector with one entry for each thickness category starting from the thinnest category, netcdf file should use thickness bounds of the categories as third coordinate axis)", 
@@ -816,8 +816,8 @@
         "siitdsnconc": {
             "modeling_realm": "seaIce", 
             "standard_name": "snow_area_fraction_over_categories", 
-            "units": "1.0", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "units": "%", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siitdconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow area fractions in thickness categories", 
             "comment": "Area fraction of grid cell covered by snow in each ice-thickness category (vector with one entry for each thickness category starting from the thinnest category, netcdf file should use thickness bounds of the categories as third coordinate axis)", 
@@ -834,7 +834,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "snow_thickness_over_categories", 
             "units": "m", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siitdconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow thickness in thickness categories", 
             "comment": "Actual thickness of snow in each  category (NOT volume divided by grid area),  (vector with one entry for each thickness category starting from the thinnest category, netcdf file should use thickness bounds of categories as third coordinate axis)", 
@@ -851,7 +851,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_thickness_over_categories", 
             "units": "m", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siitdconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Sea-ice thickness in thickness categories", 
             "comment": "Actual (floe) thickness of sea ice in each  category (NOT volume divided by grid area),  (vector with one entry for each thickness category starting from the thinnest category, netcdf file should use thickness bounds of categories as third coordinate axis)", 
@@ -868,7 +868,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_amount", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Sea-ice mass per area", 
             "comment": "Total mass of sea ice divided by grid-cell area", 
@@ -901,12 +901,12 @@
         "simpconc": {
             "modeling_realm": "seaIce", 
             "standard_name": "area_fraction", 
-            "units": "1.0", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "units": "%", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Meltpond area fraction", 
             "comment": "Fraction of sea ice, by area, which is covered by melt ponds, giving equal weight to every square metre of sea ice .", 
-            "dimensions": "longitude latitude time", 
+            "dimensions": "longitude latitude typemp time", 
             "out_name": "simpconc", 
             "type": "", 
             "positive": "", 
@@ -919,7 +919,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_liquid_water_amount", 
             "units": "kg m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice_melt_pond (comment: mask=simpconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Meltpond mass per area", 
             "comment": "Meltpond mass per area of sea ice.", 
@@ -936,9 +936,9 @@
             "modeling_realm": "seaIce", 
             "standard_name": "melt_pond_refrozen_ice", 
             "units": "m", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice_melt_pond (comment: mask=simpconc)", 
             "cell_measures": "area: areacella", 
-            "long_name": "Thickness of refozen ice on melt pond", 
+            "long_name": "Thickness of Refrozen Ice on Melt Pond", 
             "comment": "Volume of refrozen ice on melt ponds divided by meltpond covered area", 
             "dimensions": "longitude latitude time", 
             "out_name": "simprefrozen", 
@@ -953,8 +953,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "rainfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Rainfall rate over sea ice", 
             "comment": "mass of liquid precipitation falling onto sea ice divided by grid-cell area", 
             "dimensions": "longitude latitude time", 
@@ -970,7 +970,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "fraction_of_ridged_sea_ice", 
             "units": "1.0", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Ridged Ice Area Fraction", 
             "comment": "Fraction of sea ice, by area, which is covered by sea ice ridges, giving equal weight to every square metre of sea ice .", 
@@ -987,7 +987,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "thickness_of_ridged_sea_ice", 
             "units": "m", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=sirdgconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Ridged ice thickness", 
             "comment": "Sea Ice Ridge Height (representing mean height over the ridged area)", 
@@ -1004,7 +1004,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_salinity", 
             "units": "0.001", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Sea ice salinity", 
             "comment": "Mean sea-ice salinity of all sea ice in grid cell", 
@@ -1021,7 +1021,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_salt_mass", 
             "units": "kg m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Mass of salt in sea ice per area", 
             "comment": "Total mass of all salt in sea ice divided by grid-cell area", 
@@ -1038,7 +1038,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "maximum_shear_of_sea_ice_velocity", 
             "units": "s-1", 
-            "cell_methods": "area: mean where sea_ice time: point", 
+            "cell_methods": "area: mean where sea_ice (comment: mask=siconc) time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Maximum shear of sea-ice velocity field", 
             "comment": "Maximum shear of sea-ice velocity field (second shear strain invariant)", 
@@ -1054,8 +1054,8 @@
         "sisnconc": {
             "modeling_realm": "seaIce", 
             "standard_name": "surface_snow_area_fraction", 
-            "units": "1.0", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "units": "%", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow area fraction", 
             "comment": "Fraction of sea ice, by area, which is covered by snow, giving equal weight to every square metre of sea ice . Exclude snow that lies on land or land ice.", 
@@ -1072,7 +1072,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "thermal_energy_content_of_surface_snow", 
             "units": "J m-2", 
-            "cell_methods": "area: mean where snow over sea_ice area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow-heat content per unit area", 
             "comment": "Heat-content of all snow in grid cell divided by total grid-cell area. Snow-water equivalent at 0 Celsius is assumed to have a heat content of 0 J.  Does not include heat content of sea ice.", 
@@ -1089,7 +1089,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "liquid_water_content_of_surface_snow", 
             "units": "kg m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow mass per area", 
             "comment": "Total mass of snow on sea ice divided by grid-cell area", 
@@ -1119,11 +1119,28 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "sispeed": {
+            "modeling_realm": "seaIce", 
+            "standard_name": "sea_ice_speed", 
+            "units": "m s-1", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Sea-ice speed", 
+            "comment": "Speed of ice (i.e. mean absolute velocity) to account for back-and-forth movement of the ice", 
+            "dimensions": "longitude latitude time", 
+            "out_name": "sispeed", 
+            "type": "", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "sistremax": {
             "modeling_realm": "seaIce", 
             "standard_name": "maximum_shear_stress", 
             "units": "N m-1", 
-            "cell_methods": "area: mean where sea_ice time: point", 
+            "cell_methods": "area: mean where sea_ice (comment: mask=siconc) time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Maximum shear stress in sea ice", 
             "comment": "Maximum shear stress in sea ice (second stress invariant)", 
@@ -1140,7 +1157,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "average_normal_stress", 
             "units": "N m-1", 
-            "cell_methods": "area: mean where sea_ice time: point", 
+            "cell_methods": "area: mean where sea_ice (comment: mask=siconc) time: point", 
             "cell_measures": "area: areacella", 
             "long_name": "Average normal stress in sea ice", 
             "comment": "Average normal stress in sea ice (first stress invariant)", 
@@ -1157,7 +1174,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_downward_x_stress", 
             "units": "N m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "--MODEL", 
             "long_name": "X-component of atmospheric stress on sea ice", 
             "comment": "X-component of atmospheric stress on sea ice", 
@@ -1174,10 +1191,10 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_base_upward_x_stress", 
             "units": "N m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "X-component of ocean stress on sea ice", 
-            "comment": "X-component of ocean stress on sea ice ", 
+            "comment": "X-component of ocean stress on sea ice", 
             "dimensions": "longitude latitude time", 
             "out_name": "sistrxubot", 
             "type": "", 
@@ -1191,10 +1208,10 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_downward_y_stress", 
             "units": "N m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "--MODEL", 
             "long_name": "Y-component of atmospheric stress on sea ice", 
-            "comment": "Y-component of atmospheric stress on sea ice ", 
+            "comment": "Y-component of atmospheric stress on sea ice", 
             "dimensions": "longitude latitude time", 
             "out_name": "sistrydtop", 
             "type": "", 
@@ -1208,10 +1225,10 @@
             "modeling_realm": "seaIce", 
             "standard_name": "downward_y_stress_at_sea_ice_base", 
             "units": "N m-2", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Y-component of ocean stress on sea ice", 
-            "comment": "Y-component of ocean stress on sea ice ", 
+            "comment": "Y-component of ocean stress on sea ice", 
             "dimensions": "longitude latitude time", 
             "out_name": "sistryubot", 
             "type": "", 
@@ -1225,7 +1242,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_bottom_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Temperature at ice-ocean interface", 
             "comment": "Report temperature at interface, NOT temperature within lowermost model layer", 
@@ -1242,7 +1259,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_surface_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "area: areacella", 
             "long_name": "Temperature at snow-ice interface", 
             "comment": "Report surface temperature of ice where snow thickness is zero", 
@@ -1259,10 +1276,10 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_surface_temperature", 
             "units": "K", 
-            "cell_methods": "area: time: mean where sea_ice", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
+            "cell_measures": "area: areacella", 
             "long_name": "Surface temperature of sea ice", 
-            "comment": "Surface temperature of sea-ice (surface temperature of snow cover on the sea ice if applicable).", 
+            "comment": "Report surface temperature of snow where snow covers the sea ice.", 
             "dimensions": "longitude latitude time", 
             "out_name": "sitemptop", 
             "type": "", 
@@ -1276,10 +1293,10 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_time_fraction", 
             "units": "1.0", 
-            "cell_methods": "area: time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Fraction of time steps with sea ice", 
-            "comment": "Fraction of time steps of the averaging period during which sea ice is present (siconc >0 ) in a grid cell ", 
+            "comment": "Fraction of time steps of the averaging period during which sea ice is present (siconc >0 ) in a grid cell", 
             "dimensions": "longitude latitude time", 
             "out_name": "sitimefrac", 
             "type": "", 
@@ -1293,7 +1310,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_x_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "--MODEL", 
             "long_name": "X-component of sea ice velocity", 
             "comment": "The x-velocity of ice on native model grid", 
@@ -1310,7 +1327,7 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_y_velocity", 
             "units": "m s-1", 
-            "cell_methods": "area: time: mean where sea_ice", 
+            "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", 
             "cell_measures": "--MODEL", 
             "long_name": "Y-component of sea ice velocity", 
             "comment": "The y-velocity of ice on native model grid", 
@@ -1327,8 +1344,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "sea_ice_thickness", 
             "units": "m", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
             "long_name": "Sea-ice volume per area", 
             "comment": "Total volume of sea ice divided by grid-cell area (this used to be called ice thickness in CMIP5)", 
             "dimensions": "longitude latitude time", 
@@ -1378,9 +1395,9 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_snow_mass_due_to_sea_ice_dynamics", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "snow mass change through advection by sea-ice dynamics", 
+            "long_name": "Snow Mass Rate of Change through Avection by Sea-ice Dynamics", 
             "comment": "the rate of change of snow mass through advection with sea ice divided by grid-cell area", 
             "dimensions": "longitude latitude time", 
             "out_name": "sndmassdyn", 
@@ -1395,9 +1412,9 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_snow_melt_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "snow mass change through melt", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Snow Mass Rate of Change through Melt", 
             "comment": "the rate of change of snow mass through melt divided by grid-cell area", 
             "dimensions": "longitude latitude time", 
             "out_name": "sndmassmelt", 
@@ -1410,11 +1427,11 @@
         }, 
         "sndmasssi": {
             "modeling_realm": "seaIce", 
-            "standard_name": "tendency_of_snow_mass_due_to_snow_to_ice_conversion", 
+            "standard_name": "tendency_of_surface_snow_amount_due_to_conversion_of_snow_to_sea_ice", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "snow mass change through snow-to-ice conversion", 
+            "long_name": "Snow Mass Rate of Change through Snow-to-Ice Conversion", 
             "comment": "the rate of change of snow mass due to transformation of snow to sea ice divided by grid-cell area", 
             "dimensions": "longitude latitude time", 
             "out_name": "sndmasssi", 
@@ -1429,8 +1446,8 @@
             "modeling_realm": "seaIce", 
             "standard_name": "snowfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello", 
+            "cell_methods": "area: time: mean ", 
+            "cell_measures": "area: areacella", 
             "long_name": "snow mass change through snow fall", 
             "comment": "mass of solid precipitation falling onto sea ice divided by grid-cell area", 
             "dimensions": "longitude latitude time", 
@@ -1446,9 +1463,9 @@
             "modeling_realm": "seaIce", 
             "standard_name": "surface_snow_sublimation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "snow mass change through evaporation or sublimation", 
+            "long_name": "Snow Mass Rate of Change through Evaporation or Sublimation", 
             "comment": "the rate of change of snow mass through sublimation and evaporation divided by grid-cell area", 
             "dimensions": "longitude latitude time", 
             "out_name": "sndmasssubl", 
@@ -1463,10 +1480,10 @@
             "modeling_realm": "seaIce", 
             "standard_name": "tendency_of_snow_mass_due_to_drifting_snow", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
-            "long_name": "snow mass change through wind drift of snow", 
-            "comment": "the rate of change of snow mass through wind drift of snow divided by grid-cell area", 
+            "long_name": "Snow Mass Rate of Change through Wind Drift of Snow", 
+            "comment": "the rate of change of snow mass through wind drift of snow (from sea-ice into the sea) divided by grid-cell area", 
             "dimensions": "longitude latitude time", 
             "out_name": "sndmasswindrif", 
             "type": "", 
diff --git a/TestTables/CMIP6_aerannual.json b/TestTables/CMIP6_aerannual.json
deleted file mode 100644
index 982ba56..0000000
--- a/TestTables/CMIP6_aerannual.json
+++ /dev/null
@@ -1 +0,0 @@
-no Variable found for aerannual
diff --git a/TestTables/CMIP6_badOmon.json b/TestTables/CMIP6_badOmon.json
deleted file mode 100644
index df899b3..0000000
--- a/TestTables/CMIP6_badOmon.json
+++ /dev/null
@@ -1,5825 +0,0 @@
-{
-    "Header": {
-        "approx_interval": "30.00000", 
-        "realm": "ocean", 
-        "product": "output", 
-        "cmor_version": "3.0", 
-        "Conventions": "CF-1.6 CMIP-6.0", 
-        "frequency": "mon", 
-        "table_id": "Table Omon", 
-        "data_specs_version": "3.0", 
-        "generic_levels": "olevel", 
-        "missing_value": "1e20", 
-        "table_date": "14 April 2016"
-    }, 
-    "axis_entry": {
-        "typebare": {
-            "requested": "", 
-            "stored_direction": "", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "surface type", 
-            "standard_name": "area_type", 
-            "value": "bare_ground", 
-            "out_name": "type", 
-            "type": "character", 
-            "units": "", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "tau": {
-            "requested": [
-                "0.15", 
-                "0.8", 
-                "2.45", 
-                "6.5", 
-                "16.2", 
-                "41.5", 
-                "100."
-            ], 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "yes", 
-            "valid_min": "", 
-            "requested_bounds": [
-                "0.0", 
-                "0.3", 
-                "0.3", 
-                "1.3", 
-                "1.3", 
-                "3.6", 
-                "3.6", 
-                "9.4", 
-                "9.4", 
-                "23.0", 
-                "23.0", 
-                "60.0", 
-                "60.0", 
-                "100000."
-            ], 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "cloud optical thickness", 
-            "standard_name": "atmosphere_optical_thickness_due_to_cloud", 
-            "value": "", 
-            "out_name": "tau", 
-            "type": "double", 
-            "units": "1", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "olayer100m": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "0.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "0. 100.", 
-            "long_name": "depth", 
-            "standard_name": "depth", 
-            "value": "50.0", 
-            "out_name": "depth", 
-            "type": "double", 
-            "units": "m", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "100.0", 
-            "axis": "Z"
-        }, 
-        "plev4s": {
-            "requested": [
-                "85000.", 
-                "50000.", 
-                "20000.", 
-                "5000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "ocean_sigma_z": {
-            "requested": "", 
-            "stored_direction": "", 
-            "z_factors": "sigma: sigma eta: eta depth: depth depth_c: depth_c nsigma: nsigma zlev: zlev", 
-            "positive": "", 
-            "must_have_bounds": "yes", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "sigma: sigma_bnds eta: eta depth: depth depth_c: depth_c nsigma: nsigma zlev: zlev_bnds", 
-            "bounds_values": "", 
-            "long_name": "ocean sigma over z coordinate", 
-            "standard_name": "ocean_sigma_z", 
-            "value": "", 
-            "out_name": "lev", 
-            "type": "", 
-            "units": "", 
-            "formula": "for k <= nsigma: z(n,k,j,i) = eta(n,j,i) + sigma(k)*(min(depth_c,depth(j,i))+eta(n,j,i)) ; for k > nsigma: z(n,k,j,i) = zlev(k)", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "plev19": {
-            "requested": [
-                "100000.", 
-                "92500.", 
-                "85000.", 
-                "70000.", 
-                "60000.", 
-                "50000.", 
-                "40000.", 
-                "30000.", 
-                "25000.", 
-                "20000.", 
-                "15000.", 
-                "10000.", 
-                "7000.", 
-                "5000.", 
-                "3000.", 
-                "2000.", 
-                "1000.", 
-                "500.", 
-                "100."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "p220": {
-            "requested": "", 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "44000. 0.0", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "22000.0", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "plev17": {
-            "requested": [
-                "100000.", 
-                "92500.", 
-                "85000.", 
-                "70000.", 
-                "60000.", 
-                "50000.", 
-                "40000.", 
-                "30000.", 
-                "25000.", 
-                "20000.", 
-                "15000.", 
-                "10000.", 
-                "7000.", 
-                "5000.", 
-                "3000.", 
-                "2000.", 
-                "1000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "plev10": {
-            "requested": [
-                "100000.", 
-                "85000.", 
-                "70000.", 
-                "50000.", 
-                "25000.", 
-                "15000.", 
-                "10000.", 
-                "7000.", 
-                "5000.", 
-                "1000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "site": {
-            "requested": "", 
-            "stored_direction": "", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "site index", 
-            "standard_name": "", 
-            "value": "", 
-            "out_name": "site", 
-            "type": "integer", 
-            "units": "", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "smooth_level": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "a: a b1: b1 b2: b2 ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2", 
-            "positive": "up", 
-            "must_have_bounds": "yes", 
-            "valid_min": "-200.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "a: a_bnds b1: b1_bnds b2: b2_bnds ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2", 
-            "bounds_values": "", 
-            "long_name": "atmosphere smooth level vertical (SLEVE) coordinate", 
-            "standard_name": "atmosphere_sleve_coordinate", 
-            "value": "", 
-            "out_name": "lev", 
-            "type": "", 
-            "units": "m", 
-            "formula": "z = a*ztop + b1*zsurf1 + b2*zsurf2", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "800000.0", 
-            "axis": "Z"
-        }, 
-        "p840": {
-            "requested": "", 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "100000. 68000.", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "84000.0", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "ocean_sigma": {
-            "requested": "", 
-            "stored_direction": "decreasing", 
-            "z_factors": "sigma: lev eta: eta depth: depth", 
-            "positive": "up", 
-            "must_have_bounds": "yes", 
-            "valid_min": "-1.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "sigma: lev_bnds eta: eta depth: depth", 
-            "bounds_values": "", 
-            "long_name": "ocean sigma coordinate", 
-            "standard_name": "ocean_sigma_coordinate", 
-            "value": "", 
-            "out_name": "lev", 
-            "type": "", 
-            "units": "", 
-            "formula": "z(n,k,j,i) = eta(n,j,i) + sigma(k)*(depth(j,i)+eta(n,j,i))", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "0.0", 
-            "axis": "Z"
-        }, 
-        "depth0m": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "0.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "depth", 
-            "standard_name": "depth", 
-            "value": "0.0", 
-            "out_name": "depth", 
-            "type": "double", 
-            "units": "m", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "100.0", 
-            "axis": "Z"
-        }, 
-        "ocean_s": {
-            "requested": "", 
-            "stored_direction": "decreasing", 
-            "z_factors": "s: lev eta: eta depth: depth a: a_coeff b: b_coeff depth_c: depth_c", 
-            "positive": "up", 
-            "must_have_bounds": "yes", 
-            "valid_min": "-1.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "s: lev_bnds eta: eta depth: depth a: a b: b depth_c: depth_c", 
-            "bounds_values": "", 
-            "long_name": "ocean s-coordinate", 
-            "standard_name": "ocean_s_coordinate", 
-            "value": "", 
-            "out_name": "lev", 
-            "type": "", 
-            "units": "", 
-            "formula": "z(n,k,j,i) = eta(n,j,i)*(1+s(k)) + depth_c*s(k) + (depth(j,i)-depth_c)*C(k) n where n C(k)=(1-b)*sinh(a*s(k))/sinh(a) +n           b*(tanh(a*(s(k)+0.5))/(2*tanh(0.5*a)) - 0.5)", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "0.0", 
-            "axis": "Z"
-        }, 
-        "typepever": {
-            "requested": "", 
-            "stored_direction": "", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "surface type", 
-            "standard_name": "area_type", 
-            "value": "primary_evergreen_trees", 
-            "out_name": "type", 
-            "type": "character", 
-            "units": "", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "typec4pft": {
-            "requested": "", 
-            "stored_direction": "", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "surface type", 
-            "standard_name": "area_type", 
-            "value": "c4_plant_functional_types", 
-            "out_name": "type", 
-            "type": "character", 
-            "units": "", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "height2m": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "up", 
-            "must_have_bounds": "no", 
-            "valid_min": "1.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "height", 
-            "standard_name": "height", 
-            "value": "2.0", 
-            "out_name": "height", 
-            "type": "double", 
-            "units": "m", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "10.0", 
-            "axis": "Z"
-        }, 
-        "time1": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "time", 
-            "standard_name": "time", 
-            "value": "", 
-            "out_name": "time", 
-            "type": "double", 
-            "units": "days since ?", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": "T"
-        }, 
-        "vegtype": {
-            "requested": "", 
-            "stored_direction": "", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "plant functional type", 
-            "standard_name": "area_type", 
-            "value": "", 
-            "out_name": "type", 
-            "type": "character", 
-            "units": "", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "sza5": {
-            "requested": [
-                "0.", 
-                "20.", 
-                "40.", 
-                "60.", 
-                "80."
-            ], 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "solar zenith angle", 
-            "standard_name": "solar_zenith_angle", 
-            "value": "", 
-            "out_name": "sza", 
-            "type": "double", 
-            "units": "degree", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "depth_coord": {
-            "requested": "", 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "yes", 
-            "valid_min": "0.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "ocean depth coordinate", 
-            "standard_name": "depth", 
-            "value": "", 
-            "out_name": "lev", 
-            "type": "", 
-            "units": "m", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "12000.0", 
-            "axis": "Z"
-        }, 
-        "sdepth1": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "yes", 
-            "valid_min": "0.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "0.0 0.1", 
-            "long_name": "depth", 
-            "standard_name": "depth", 
-            "value": "0.05", 
-            "out_name": "depth", 
-            "type": "double", 
-            "units": "m", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "0.2", 
-            "axis": "Z"
-        }, 
-        "alternate_hybrid_sigma": {
-            "requested": "", 
-            "stored_direction": "decreasing", 
-            "z_factors": "ap: ap b: b ps: ps", 
-            "positive": "down", 
-            "must_have_bounds": "yes", 
-            "valid_min": "0.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "ap: ap_bnds b: b_bnds ps: ps", 
-            "bounds_values": "", 
-            "long_name": "hybrid sigma pressure coordinate", 
-            "standard_name": "atmosphere_hybrid_sigma_pressure_coordinate", 
-            "value": "", 
-            "out_name": "lev", 
-            "type": "", 
-            "units": "1", 
-            "formula": "p = ap + b*ps", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "1.0", 
-            "axis": "Z"
-        }, 
-        "time2": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "yes", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "time", 
-            "standard_name": "time", 
-            "value": "", 
-            "out_name": "time", 
-            "type": "double", 
-            "units": "days since ?", 
-            "formula": "", 
-            "climatology": "yes", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": "T"
-        }, 
-        "oline": {
-            "requested": [
-                "barents_opening", 
-                "bering_strait", 
-                "canadian_archipelago", 
-                "denmark_strait", 
-                "drake_passage", 
-                "english_channel", 
-                "pacific_equatorial_undercurrent", 
-                "faroe_scotland_channel", 
-                "florida_bahamas_strait", 
-                "fram_strait", 
-                "iceland_faroe_channel", 
-                "indonesian_thoughflow", 
-                "mozambique_channel", 
-                "taiwan_luzon_straits", 
-                "windward_passage"
-            ], 
-            "stored_direction": "", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "ocean passage", 
-            "standard_name": "region", 
-            "value": "", 
-            "out_name": "line", 
-            "type": "character", 
-            "units": "1", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "alt40": {
-            "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."
-            ], 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "up", 
-            "must_have_bounds": "yes", 
-            "valid_min": "", 
-            "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.", 
-                "17760.", 
-                "18240.", 
-                "18240.", 
-                "18720.", 
-                "18720.", 
-                "19200."
-            ], 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "altitude", 
-            "standard_name": "altitude", 
-            "value": "", 
-            "out_name": "alt40", 
-            "type": "double", 
-            "units": "m", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "plev8": {
-            "requested": [
-                "100000.", 
-                "85000.", 
-                "70000.", 
-                "50000.", 
-                "25000.", 
-                "10000.", 
-                "5000.", 
-                "1000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "location": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "location index", 
-            "standard_name": "", 
-            "value": "", 
-            "out_name": "loc", 
-            "type": "integer", 
-            "units": "", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "latitude": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "yes", 
-            "valid_min": "-90.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "latitude", 
-            "standard_name": "latitude", 
-            "value": "", 
-            "out_name": "lat", 
-            "type": "double", 
-            "units": "degrees_north", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "90.0", 
-            "axis": "Y"
-        }, 
-        "plev3": {
-            "requested": [
-                "85000.", 
-                "50000.", 
-                "25000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "basin": {
-            "requested": [
-                "atlantic_arctic_ocean", 
-                "indian_pacific_ocean", 
-                "global_ocean"
-            ], 
-            "stored_direction": "", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "ocean basin", 
-            "standard_name": "region", 
-            "value": "", 
-            "out_name": "basin", 
-            "type": "character", 
-            "units": "1", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "plev7": {
-            "requested": [
-                "90000.", 
-                "74000.", 
-                "62000.", 
-                "50000.", 
-                "37500.", 
-                "24500.", 
-                "9000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "yes", 
-            "valid_min": "", 
-            "requested_bounds": [
-                "100000.", 
-                "80000.", 
-                "80000.", 
-                "68000.", 
-                "68000.", 
-                "56000.", 
-                "56000.", 
-                "44000.", 
-                "44000.", 
-                "31000.", 
-                "31000.", 
-                "18000.", 
-                "18000.", 
-                " 0."
-            ], 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "plev4": {
-            "requested": [
-                "92500.", 
-                "85000.", 
-                "50000.", 
-                "25000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "plev23": {
-            "requested": [
-                "100000.", 
-                "92500.", 
-                "85000.", 
-                "70000.", 
-                "60000.", 
-                "50000.", 
-                "40000.", 
-                "30000.", 
-                "25000.", 
-                "20000.", 
-                "15000.", 
-                "10000.", 
-                "7000.", 
-                "5000.", 
-                "3000.", 
-                "2000.", 
-                "1000.", 
-                "700.", 
-                "500.", 
-                "300.", 
-                "200.", 
-                "100.", 
-                "40."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "plev39": {
-            "requested": [
-                "100000.", 
-                "92500.", 
-                "85000.", 
-                "70000.", 
-                "60000.", 
-                "50000.", 
-                "40000.", 
-                "30000.", 
-                "25000.", 
-                "20000.", 
-                "17000.", 
-                "15000.", 
-                "13000.", 
-                "11500.", 
-                "10000.", 
-                "9000.", 
-                "8000.", 
-                "7000.", 
-                "5000.", 
-                "3000.", 
-                "2000.", 
-                "1500.", 
-                "1000.", 
-                "700.", 
-                "500.", 
-                "300.", 
-                "200.", 
-                "150.", 
-                "100.", 
-                "70.", 
-                "50.", 
-                "40.", 
-                "30.", 
-                "20.", 
-                "15.", 
-                "10.", 
-                "7.", 
-                "5.", 
-                "3."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "typesdec": {
-            "requested": "", 
-            "stored_direction": "", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "surface type", 
-            "standard_name": "area_type", 
-            "value": "secondary_decidous_trees", 
-            "out_name": "type", 
-            "type": "character", 
-            "units": "", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "plev7h": {
-            "requested": [
-                "92500.", 
-                "85000.", 
-                "70000.", 
-                "60000.", 
-                "50000.", 
-                "25000.", 
-                "5000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "typepdec": {
-            "requested": "", 
-            "stored_direction": "", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "surface type", 
-            "standard_name": "area_type", 
-            "value": "primary_deciduous_trees", 
-            "out_name": "type", 
-            "type": "character", 
-            "units": "", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "plev7c": {
-            "requested": [
-                "90000.", 
-                "74000.", 
-                "62000.", 
-                "50000.", 
-                "37500.", 
-                "24500.", 
-                "9000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "height10m": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "up", 
-            "must_have_bounds": "no", 
-            "valid_min": "1.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "height", 
-            "standard_name": "height", 
-            "value": "10.0", 
-            "out_name": "height", 
-            "type": "double", 
-            "units": "m", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "30.0", 
-            "axis": "Z"
-        }, 
-        "standard_sigma": {
-            "requested": "", 
-            "stored_direction": "decreasing", 
-            "z_factors": "ptop: ptop sigma: lev ps: ps", 
-            "positive": "down", 
-            "must_have_bounds": "yes", 
-            "valid_min": "0.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "ptop: ptop sigma: lev_bnds ps: ps", 
-            "bounds_values": "", 
-            "long_name": "sigma coordinate", 
-            "standard_name": "atmosphere_sigma_coordinate", 
-            "value": "", 
-            "out_name": "lev", 
-            "type": "", 
-            "units": "", 
-            "formula": "p = ptop + sigma*(ps - ptop)", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "1.0", 
-            "axis": "Z"
-        }, 
-        "typesever": {
-            "requested": "", 
-            "stored_direction": "", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "surface type", 
-            "standard_name": "area_type", 
-            "value": "secondary_evergreen_trees", 
-            "out_name": "type", 
-            "type": "character", 
-            "units": "", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "rho": {
-            "requested": "", 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "yes", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "density++++?", 
-            "standard_name": "", 
-            "value": "", 
-            "out_name": "rho", 
-            "type": "double", 
-            "units": "kg m-3", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "depth100m": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "80.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "depth", 
-            "standard_name": "depth", 
-            "value": "100.0", 
-            "out_name": "depth", 
-            "type": "double", 
-            "units": "m", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "120.0", 
-            "axis": "Z"
-        }, 
-        "plev3h": {
-            "requested": [
-                "10000.", 
-                "1000.", 
-                "100."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "sdepth": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "yes", 
-            "valid_min": "0.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "depth", 
-            "standard_name": "depth", 
-            "value": "", 
-            "out_name": "depth", 
-            "type": "double", 
-            "units": "m", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "200.0", 
-            "axis": "Z"
-        }, 
-        "typec3pft": {
-            "requested": "", 
-            "stored_direction": "", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "surface type", 
-            "standard_name": "area_type", 
-            "value": "c3_plant_functional_types", 
-            "out_name": "type", 
-            "type": "character", 
-            "units": "", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "natural_log_pressure": {
-            "requested": "", 
-            "stored_direction": "decreasing", 
-            "z_factors": "p0: p0 lev: lev", 
-            "positive": "down", 
-            "must_have_bounds": "yes", 
-            "valid_min": "-1.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "p0: p0 lev: lev_bnds", 
-            "bounds_values": "", 
-            "long_name": "atmosphere natural log pressure coordinate", 
-            "standard_name": "atmosphere_ln_pressure_coordinate", 
-            "value": "", 
-            "out_name": "lev", 
-            "type": "", 
-            "units": "", 
-            "formula": "p = p0 * exp(-lev)", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "20.0", 
-            "axis": "Z"
-        }, 
-        "scatratio": {
-            "requested": [
-                "0.005", 
-                "0.605", 
-                "2.1", 
-                "4.", 
-                "6.", 
-                "8.5", 
-                "12.5", 
-                "17.5", 
-                "22.5", 
-                "27.5", 
-                "35.", 
-                "45.", 
-                "55.", 
-                "70.", 
-                "50040."
-            ], 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "yes", 
-            "valid_min": "", 
-            "requested_bounds": [
-                "0.", 
-                "0.01", 
-                "0.01", 
-                "1.2", 
-                "1.2", 
-                "3.", 
-                "3.", 
-                "5.", 
-                "5.", 
-                "7.", 
-                "7.", 
-                "10.", 
-                "10.", 
-                "15.", 
-                "15.", 
-                "20.", 
-                "20.", 
-                "25.", 
-                "25.", 
-                "30.", 
-                "30.", 
-                "40.", 
-                "40.", 
-                "50.", 
-                "50.", 
-                "60.", 
-                "60.", 
-                "80.", 
-                "80.", 
-                "100000."
-            ], 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "lidar backscattering ratio", 
-            "standard_name": "backscattering_ratio", 
-            "value": "", 
-            "out_name": "scatratio", 
-            "type": "double", 
-            "units": "1", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "dbze": {
-            "requested": [
-                "-47.5", 
-                "-42.5", 
-                "-37.5", 
-                "-32.5", 
-                "-27.5", 
-                "-22.5", 
-                "-17.5", 
-                "-12.5", 
-                "-7.5", 
-                "-2.5", 
-                "2.5", 
-                "7.5", 
-                "12.5", 
-                "17.5", 
-                "22.5"
-            ], 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "yes", 
-            "valid_min": "", 
-            "requested_bounds": [
-                "-50", 
-                "-45", 
-                "-45", 
-                "-40", 
-                "-40", 
-                "-35", 
-                "-35", 
-                "-30", 
-                "-30", 
-                "-25", 
-                "-25", 
-                "-20", 
-                "-20", 
-                "-15", 
-                "-15", 
-                "-10", 
-                "-10", 
-                "-5", 
-                "-5", 
-                "0", 
-                "0", 
-                "5", 
-                "5", 
-                "10", 
-                "10", 
-                "15", 
-                "15", 
-                "20", 
-                "20", 
-                "25."
-            ], 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "CloudSat simulator equivalent radar reflectivity factor", 
-            "standard_name": "equivalent_reflectivity_factor", 
-            "value": "", 
-            "out_name": "dbze", 
-            "type": "double", 
-            "units": "dBZ", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": ""
-        }, 
-        "hybrid_height": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "a: lev b: b orog: orog", 
-            "positive": "up", 
-            "must_have_bounds": "yes", 
-            "valid_min": "0.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "a: lev_bnds b: b_bnds orog: orog", 
-            "bounds_values": "", 
-            "long_name": "hybrid height coordinate", 
-            "standard_name": "atmosphere_hybrid_height_coordinate", 
-            "value": "", 
-            "out_name": "lev", 
-            "type": "", 
-            "units": "m", 
-            "formula": "z = a + b*orog", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "plev14": {
-            "requested": [
-                "100000.", 
-                "92500.", 
-                "85000.", 
-                "70000.", 
-                "60000.", 
-                "50000.", 
-                "25000.", 
-                "15000.", 
-                "10000.", 
-                "5000.", 
-                "2000.", 
-                "1000.", 
-                "500.", 
-                "100."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "longitude": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "yes", 
-            "valid_min": "0.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "longitude", 
-            "standard_name": "longitude", 
-            "value": "", 
-            "out_name": "lon", 
-            "type": "double", 
-            "units": "degrees_east", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "360.0", 
-            "axis": "X"
-        }, 
-        "time": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "yes", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "time", 
-            "standard_name": "time", 
-            "value": "", 
-            "out_name": "time", 
-            "type": "double", 
-            "units": "days since ?", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": "T"
-        }, 
-        "ocean_double_sigma": {
-            "requested": "", 
-            "stored_direction": "", 
-            "z_factors": "sigma: sigma depth: depth z1: z1 z2: z2 a: a_coeff href: href k_c: k_c", 
-            "positive": "up", 
-            "must_have_bounds": "yes", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "sigma: sigma_bnds depth: depth z1: z1 z2: z2 a: a href: href k_c: k_c", 
-            "bounds_values": "", 
-            "long_name": "ocean double sigma coordinate", 
-            "standard_name": "ocean_double_sigma", 
-            "value": "", 
-            "out_name": "lev", 
-            "type": "", 
-            "units": "", 
-            "formula": "for k <= k_c:n z(k,j,i)= sigma(k)*f(j,i) n for k > k_c:n z(k,j,i)= f(j,i) + (sigma(k)-1)*(depth(j,i)-f(j,i)) n f(j,i)= 0.5*(z1+ z2) + 0.5*(z1-z2)* tanh(2*a/(z1-z2)*(depth(j,i)-href))", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "plevs": {
-            "requested": [
-                "100000.", 
-                "92500.", 
-                "85000.", 
-                "70000.", 
-                "60000.", 
-                "50000.", 
-                "40000.", 
-                "30000.", 
-                "25000.", 
-                "20000.", 
-                "15000.", 
-                "10000.", 
-                "7000.", 
-                "5000.", 
-                "3000.", 
-                "2000.", 
-                "1000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "plev27": {
-            "requested": [
-                "100000.", 
-                "97500.", 
-                "95000.", 
-                "92500.", 
-                "90000.", 
-                "87500.", 
-                "85000.", 
-                "82500.", 
-                "80000.", 
-                "77500.", 
-                "75000.", 
-                "70000.", 
-                "65000.", 
-                "60000.", 
-                "55000.", 
-                "50000.", 
-                "45000.", 
-                "40000.", 
-                "35000.", 
-                "30000.", 
-                "25000.", 
-                "22500.", 
-                "20000.", 
-                "17500.", 
-                "15000.", 
-                "12500.", 
-                "10000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "standard_hybrid_sigma": {
-            "requested": "", 
-            "stored_direction": "decreasing", 
-            "z_factors": "p0: p0 a: a b: b ps: ps", 
-            "positive": "down", 
-            "must_have_bounds": "yes", 
-            "valid_min": "0.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "p0: p0 a: a_bnds b: b_bnds ps: ps", 
-            "bounds_values": "", 
-            "long_name": "hybrid sigma pressure coordinate", 
-            "standard_name": "atmosphere_hybrid_sigma_pressure_coordinate", 
-            "value": "", 
-            "out_name": "lev", 
-            "type": "", 
-            "units": "1", 
-            "formula": "p = a*p0 + b*ps", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "1.0", 
-            "axis": "Z"
-        }, 
-        "p560": {
-            "requested": "", 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "68000. 44000.", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "56000.0", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": "Z"
-        }
-    }, 
-    "variable_entry": {
-        "vmo": {
-            "comment": "Y-ward mass transport from resolved and parameterized advective transport.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Ocean Mass Y Transport", 
-            "standard_name": "ocean_mass_y_transport", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "vmo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intpnitrate": {
-            "comment": "Vertically integrated primary (organic carbon) production by phytoplankton based on nitrate uptake alone", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Primary Organic Carbon Production by Phytoplankton Based on Nitrate Uptake Alone", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_due_to_nitrate_utilization", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intpnitrate", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "dpo2": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Delta PO2", 
-            "standard_name": "surface_molecular_oxygen_partial_pressure_difference_between_sea_water_and_air", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "Pa", 
-            "out_name": "dpo2", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "depth_c": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: depth_c", 
-            "type": "double", 
-            "dimensions": ""
-        }, 
-        "limfecalc": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Iron limitation of Calcareous Phytoplankton", 
-            "standard_name": "iron_limitation_of_calcareous_phytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limfecalc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "mfo": {
-            "comment": "", 
-            "dimensions": "oline time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Transport", 
-            "standard_name": "sea_water_transport_across_line", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "mfo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ficeberg2d": {
-            "comment": "computed as the iceberg melt water  flux into the ocean divided by the area of the ocean portion of the grid cell.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Water Flux into Sea Water From Icebergs", 
-            "standard_name": "water_flux_into_sea_water_from_icebergs", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "ficeberg2d", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "mlotstsq": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Square of Ocean Mixed Layer Thickness Defined by Sigma T", 
-            "standard_name": "square_of_ocean_mixed_layer_thickness_defined_by_sigma_t", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "m2", 
-            "out_name": "mlotstsq", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zsatcalc": {
-            "comment": "Depth of calcite saturation horizon (0 if < surface, 'missing' if > bottom, if two, then the shallower)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Calcite Saturation Depth", 
-            "standard_name": "minimum_depth_of_calcite_undersaturation_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "m", 
-            "out_name": "zsatcalc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "bsi": {
-            "comment": "sum of particulate silica component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Particulate Biogenic Silica Concentration", 
-            "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "bsi", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "po4": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Dissolved Phosphate Concentration", 
-            "standard_name": "mole_concentration_of_phosphate_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "po4", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intpbfe": {
-            "comment": "Vertically integrated biogenic iron production", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Iron Production", 
-            "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_biological_production", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intpbfe", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "no3": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Dissolved Nitrate Concentration", 
-            "standard_name": "mole_concentration_of_nitrate_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "no3", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fbddtdic": {
-            "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic carbon", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon_due_to_biological_processes", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fbddtdic", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "cfc11": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Moles Per Unit Mass of CFC-11 in Sea Water", 
-            "standard_name": "moles_of_cfc11_per_unit_mass_in_sea_water", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol kg-1", 
-            "out_name": "cfc11", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "bfe": {
-            "comment": "sum of particulate organic iron component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Particulate Biogenic Iron Concentration", 
-            "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "bfe", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfevapds": {
-            "comment": "This is defined as 'where ice_free_sea over sea'", 
-            "dimensions": "longitude latitude time", 
-            "positive": "up", 
-            "valid_min": "", 
-            "long_name": "Temperature Flux due to Evaporation Expressed as Heat Flux Out of Sea Water", 
-            "standard_name": "temperature_flux_due_to_evaporation_expressed_as_heat_flux_out_of_sea_water", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where ice_free_sea over sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfevapds", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "soga": {
-            "comment": "", 
-            "dimensions": "time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Global Mean Sea Water Salinity", 
-            "standard_name": "sea_water_salinity", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "0.001", 
-            "out_name": "soga", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfbasinpsmadv": {
-            "comment": "Contributions to heat transport from parameterized mesoscale eddy-induced advective transport. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale.", 
-            "dimensions": "latitude basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "northward ocean heat transport due to parameterized submesoscale advection", 
-            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_submesoscale_advection", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "W", 
-            "out_name": "hfbasinpsmadv", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zostoga": {
-            "comment": "There is no CMIP6 request for zosga nor zossga.", 
-            "dimensions": "time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Global Average Thermosteric Sea Level Change", 
-            "standard_name": "global_average_thermosteric_sea_level_change", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "m", 
-            "out_name": "zostoga", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fbddtdin": {
-            "comment": "vertical integral of net biological terms in time rate of change of nitrogen nutrients (e.g. NO3+NH4)", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Dissolved Inorganic Nitrogen due to Biological Activity", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen_due_to_biological_processes", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fbddtdin", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfrunoffds2d": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water", 
-            "standard_name": "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfrunoffds2d", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intpoc": {
-            "comment": "Vertically integrated POC", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Particulate Organic Carbon Content", 
-            "standard_name": "ocean_mass_content_of_particulate_organic_carbon", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2", 
-            "out_name": "intpoc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fbddtdip": {
-            "comment": "vertical integral of net biological terms in time rate of change of phosphate", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Dissolved Inorganic Phosphate due to Biological Activity", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus_due_to_biological_processes", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fbddtdip", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "wmo": {
-            "comment": "Upward mass transport from resolved and parameterized advective transport.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Upward Ocean Mass Transport", 
-            "standard_name": "upward_ocean_mass_transport", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "wmo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfsnthermds": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Heat Flux into Sea Water due to Snow Thermodynamics", 
-            "standard_name": "heat_flux_into_sea_water_due_to_snow_thermodynamics", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfsnthermds", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tauvo": {
-            "comment": "This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward Y Stress", 
-            "standard_name": "surface_downward_y_stress", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "N m-2", 
-            "out_name": "tauvo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "vsfcorr": {
-            "comment": "It is set to zero in models which receive a real water flux.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Virtual Salt Flux Correction", 
-            "standard_name": "virtual_salt_flux_correction", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "vsfcorr", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fddtdic": {
-            "comment": "", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Net Dissolved Inorganic Carbon", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fddtdic", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fgo2": {
-            "comment": "Gas exchange flux of O2 (positive into ocean)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward O2 Flux", 
-            "standard_name": "surface_downward_mole_flux_of_molecular_oxygen", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fgo2", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fddtdin": {
-            "comment": "Net time rate of change of nitrogen nutrients (e.g. NO3+NH4)", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Net Dissolved Inorganic Nitrogen", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fddtdin", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intpcalcite": {
-            "comment": "Vertically integrated calcite production", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Calcite Production", 
-            "standard_name": "tendency_of_ocean_mole_content_of_calcite_expressed_as_carbon_due_to_biological_production", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intpcalcite", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "nsigma": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: nsigma", 
-            "type": "integer", 
-            "dimensions": ""
-        }, 
-        "limirrdiaz": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Irradiance limitation of Diazotrophs", 
-            "standard_name": "irradiance_limitation_of_diazotrophs", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limirrdiaz", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "limfediat": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Iron limitation of Diatoms", 
-            "standard_name": "iron_limitation_of_diatoms", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limfediat", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "dissic": {
-            "comment": "Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Dissolved Inorganic Carbon Concentration", 
-            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "dissic", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "msftmrhompa": {
-            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
-            "dimensions": "latitude rho basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "ocean meridional overturning mass streamfunction due to parameterized mesoscale advection", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "msftmrhompa", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "icfriver": {
-            "comment": "Inorganic Carbon supply to ocean through runoff (separate from gas exchange)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Flux of Inorganic Carbon Into Ocean Surface by Runoff", 
-            "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_runoff_and_sediment_dissolution", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "icfriver", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "arag": {
-            "comment": "sum of particulate aragonite components (e.g. Phytoplankton, Detrital, etc.)", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Aragonite Concentration", 
-            "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "arag", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fddtdip": {
-            "comment": "vertical integral of net  time rate of change of phosphate", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Net Dissolved Inorganic Phosphate", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fddtdip", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "exparag100": {
-            "comment": "", 
-            "dimensions": "longitude latitude time depth100m", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Downward Flux of Aragonite", 
-            "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "exparag100", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "expcalc100": {
-            "comment": "", 
-            "dimensions": "longitude latitude time depth100m", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Downward Flux of Calcite", 
-            "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "expcalc100", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intppmisc": {
-            "comment": "Vertically integrated total primary (organic carbon) production by other phytoplankton components alone", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Primary Organic Carbon Production by Other Phytoplankton", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_miscellaneous_phytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intppmisc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sltovgyre": {
-            "comment": "From all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Northward Ocean Salt Transport due to Gyre", 
-            "standard_name": "northward_ocean_salt_transport_due_to_gyre", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "sltovgyre", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "msftmzsmpa": {
-            "comment": "Report only if there is a submesoscale eddy parameterization.", 
-            "dimensions": "latitude olevel basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "ocean meridional overturning mass streamfunction due to parameterized submesoscale advection", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_advection", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "msftmzsmpa", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "graz": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Total Grazing of Phytoplankton by Zooplankton", 
-            "standard_name": "tendency_of_mole_concentration_of_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3 s-1", 
-            "out_name": "graz", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zooc": {
-            "comment": "sum of zooplankton carbon component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Zooplankton Carbon Concentration", 
-            "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "zooc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "a_bnds": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: a(k+1/2)", 
-            "type": "double", 
-            "dimensions": "alevel"
-        }, 
-        "limirrpico": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Irradiance limitation of Picophytoplankton", 
-            "standard_name": "irradiance_limitation_of_picophytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limirrpico", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zo2min": {
-            "comment": "Depth of vertical minimum concentration of dissolved oxygen gas (if two, then the shallower)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Depth of Oxygen Minimum Concentration", 
-            "standard_name": "depth_at_shallowest_local_minimum_in_vertical_profile_of_mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "m", 
-            "out_name": "zo2min", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sltovovrt": {
-            "comment": "From all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Northward Ocean Salt Transport due to Overturning", 
-            "standard_name": "northward_ocean_salt_transport_due_to_overturning", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "sltovovrt", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "dpco2": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Delta PCO2", 
-            "standard_name": "surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "Pa", 
-            "out_name": "dpco2", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "limnpico": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Nitrogen limitation of Picophytoplankton", 
-            "standard_name": "nitrogen_limitation_of_picophytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limnpico", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "limnmisc": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Nitrogen Limitation of Other Phytoplankton", 
-            "standard_name": "nitrogen_limitation_of_miscellaneous_phytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limnmisc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intppdiaz": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Net Primary Mole Productivity of Carbon by Diazotrophs", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_diazotrophs", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intppdiaz", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfsithermds2d": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Heat Flux into Sea Water due to Sea Ice Thermodynamics", 
-            "standard_name": "heat_flux_into_sea_water_due_to_sea_ice_thermodynamics", 
-            "modeling_realm": "ocean seaIce", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfsithermds2d", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfsnthermds2d": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Heat Flux into Sea Water due to Snow Thermodynamics", 
-            "standard_name": "heat_flux_into_sea_water_due_to_snow_thermodynamics", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfsnthermds2d", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rsntds": {
-            "comment": "This is the flux into the surface of liquid sea water only. This excludes shortwave flux absorbed by sea ice, but includes any light that passes through the ice and is absorbed by the ocean.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Net Downward Shortwave Radiation at Sea Water Surface", 
-            "standard_name": "net_downward_shortwave_flux_at_sea_water_surface", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "rsntds", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "pbo": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Pressure at Sea floor", 
-            "standard_name": "sea_water_pressure_at_sea_floor", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "Pa", 
-            "out_name": "pbo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "evs": {
-            "comment": "computed as the total mass of water vapor evaporating from the ice-free portion of the ocean  divided by the area of the ocean portion of the grid cell.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Water Evaporation Flux Where Ice Free Ocean over Sea", 
-            "standard_name": "water_evaporation_flux", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where ice_free_sea over sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "evs", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intppdiat": {
-            "comment": "Vertically integrated primary (organic carbon) production by the diatom phytoplankton component alone", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Primary Organic Carbon Production by Diatoms", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_diatoms", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intppdiat", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfsifrazil": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Heat Flux into Sea Water due to Frazil Ice Formation", 
-            "standard_name": "heat_flux_into_sea_water_due_to_freezing_of_frazil_ice", 
-            "modeling_realm": "ocean seaIce", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfsifrazil", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zsatarag": {
-            "comment": "Depth of aragonite saturation horizon (0 if undersaturated at all depths, 'missing' if supersaturated at all depths; if multiple horizons exist, the shallowest should be taken).", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Aragonite Saturation Depth", 
-            "standard_name": "minimum_depth_of_aragonite_undersaturation_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "m", 
-            "out_name": "zsatarag", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zoomicro": {
-            "comment": "carbon  concentration from the microzooplankton (<20 um) component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mole Concentration of Microzooplankton expressed as Carbon in Sea Water", 
-            "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "zoomicro", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "bacc": {
-            "comment": "sum of bacterial carbon component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Bacterial Carbon Concentration", 
-            "standard_name": "mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "bacc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fgco2": {
-            "comment": "Gas exchange flux of CO2 (positive into ocean)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward CO2 Flux", 
-            "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "fgco2", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "limfemisc": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Iron Limitation of Other Phytoplankton", 
-            "standard_name": "iron_limitation_of_miscellaneous_phytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limfemisc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intpppico": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Net Primary Mole Productivity of Carbon by Picophytoplankton", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_picophytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intpppico", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fsfe": {
-            "comment": "Iron supply through deposition flux onto sea surface, runoff, coasts, sediments, etc", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward Net Flux of Iron", 
-            "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_deposition_and_runoff_and_sediment_dissolution", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fsfe", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "msftyrhompa": {
-            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
-            "dimensions": "latitude rho basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "ocean Y overturning mass streamfunction due to parameterized mesoscale advection", 
-            "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "msftyrhompa", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "frfe": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Iron Loss to Sediments", 
-            "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_sedimentation", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "frfe", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "orog": {
-            "units": "m", 
-            "long_name": "Surface Altitude", 
-            "type": "real", 
-            "dimensions": "longitude latitude"
-        }, 
-        "vsf": {
-            "comment": "It is set to zero in models which receive a real water flux.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Virtual Salt Flux into Sea Water", 
-            "standard_name": "virtual_salt_flux_into_sea_water", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "vsf", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sob": {
-            "comment": "Model prognostic salinity at bottom-most model grid cell", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "sea water salinity at sea floor", 
-            "standard_name": "sea_water_salinity_at_sea_floor", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "0.001", 
-            "out_name": "sob", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fbddtalk": {
-            "comment": "vertical integral of net biological terms in time rate of change of alkalinity", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Biological Alkalinity due to Biological Activity", 
-            "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fbddtalk", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "o2min": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Oxygen Minimum Concentration", 
-            "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_shallowest_local_minimum_in_vertical_profile", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea depth: minimum", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "o2min", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zossq": {
-            "comment": "Surface ocean geoid defines z=0.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Square of Sea Surface Height Above Geoid", 
-            "standard_name": "square_of_sea_surface_height_above_geoid", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "m2", 
-            "out_name": "zossq", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "msftyrho": {
-            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude rho basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Ocean Y Overturning Mass Streamfunction", 
-            "standard_name": "ocean_y_overturning_mass_streamfunction", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "msftyrho", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "co3": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mole Concentration of Carbonate ion in Seawater", 
-            "standard_name": "mole_concentration_of_carbonate_ion_in_seawater", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "co3", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intpbn": {
-            "comment": "Vertically integrated biogenic nitrogen production", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Nitrogen Production", 
-            "standard_name": "tendency_of_ocean_mole_content_of_nitrogen_due_to_biological_production", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intpbn", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfbasinpmadv": {
-            "comment": "Contributions to heat transport from parameterized mesoscale eddy-induced advective transport. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale.", 
-            "dimensions": "latitude basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "northward ocean heat transport due to parameterized mesoscale advection", 
-            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_advection", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "W", 
-            "out_name": "hfbasinpmadv", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rlds": {
-            "comment": "This is defined as 'where ice_free_sea over sea'", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Net Downward Longwave Radiation", 
-            "standard_name": "surface_net_downward_longwave_flux", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where ice_free_sea over sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "rlds", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "phyp": {
-            "comment": "sum of phytoplankton phosphorus components", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Phytoplankton Phosphorus Concentration", 
-            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "phyp", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zhalf": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Depth Below Geoid of Interfaces Between Ocean Layers", 
-            "standard_name": "depth_below_geoid", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "m", 
-            "out_name": "zhalf", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "poc": {
-            "comment": "sum of particulate organic carbon component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Particulate Organic Carbon Concentration", 
-            "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "poc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sigma_bnds": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: sigma(k+1/2)", 
-            "type": "double", 
-            "dimensions": "olevel"
-        }, 
-        "friver": {
-            "comment": "computed as the river flux of water into the ocean divided by the area of the ocean portion of the grid cell.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Water Flux into Sea Water From Rivers", 
-            "standard_name": "water_flux_into_sea_water_from_rivers", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "friver", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tauuo": {
-            "comment": "This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward X Stress", 
-            "standard_name": "surface_downward_x_stress", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "N m-2", 
-            "out_name": "tauuo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "expn100": {
-            "comment": "", 
-            "dimensions": "longitude latitude time depth100m", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Downward Flux of Particulate Nitrogen", 
-            "standard_name": "sinking_mole_flux_of_particulate_nitrogen_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "expn100", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "dissi14cabio": {
-            "comment": "Abiotic Dissolved inorganic 14carbon (CO3+HCO3+H2CO3) concentration", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Abiotic Dissolved Inorganic 14Carbon Concentration", 
-            "standard_name": "mole_concentration_of_dissolved_inorganic_14carbon_in_sea_water_abiotic_component", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "dissi14cabio", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fg14co2abio": {
-            "comment": "Gas exchange flux of abiotic 14CO2 (positive into ocean)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward abiotic 14CO2 Flux", 
-            "standard_name": "surface_downward_mass_flux_of_abiotic_14_carbon_dioxide_expressed_as_carbon", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "fg14co2abio", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "umo": {
-            "comment": "X-ward mass transport from resolved and parameterized advective transport.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Ocean Mass X Transport", 
-            "standard_name": "ocean_mass_x_transport", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "umo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ptop": {
-            "units": "Pa", 
-            "long_name": "pressure at top of model", 
-            "type": "", 
-            "dimensions": ""
-        }, 
-        "spco2": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Surface Aqueous Partial Pressure of CO2", 
-            "standard_name": "surface_partial_pressure_of_carbon_dioxide_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "Pa", 
-            "out_name": "spco2", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "bigthetao": {
-            "comment": "Diagnostic should be contributed only for models using conservative temperature as prognostic field.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Convervative Temperature", 
-            "standard_name": "sea_water_conservative_temperature", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "degree_C", 
-            "out_name": "bigthetao", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "pr": {
-            "comment": "includes both liquid and solid phases", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rainfall Flux where Ice Free Ocean over Sea", 
-            "standard_name": "precipitation_flux", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where ice_free_sea over sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "pr", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fgdms": {
-            "comment": "Gas exchange flux of DMS (positive into atmosphere)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "up", 
-            "valid_min": "", 
-            "long_name": "Surface Upward DMS Flux", 
-            "standard_name": "surface_upward_mole_flux_of_dimethyl_sulfide", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fgdms", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "dissoc": {
-            "comment": "Sum of dissolved carbon component concentrations explicitly represented (i.e. not ~40 uM refractory unless explicit)", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Dissolved Organic Carbon Concentration", 
-            "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "dissoc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfsithermds": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Heat Flux into Sea Water due to Sea Ice Thermodynamics", 
-            "standard_name": "heat_flux_into_sea_water_due_to_sea_ice_thermodynamics", 
-            "modeling_realm": "ocean seaIce", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfsithermds", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fbddtdisi": {
-            "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic silicate", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Dissolved Inorganic Silicate due to Biological Activity", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon_due_to_biological_processes", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fbddtdisi", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rsdo": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Downwelling Shortwave Radiation in Sea Water", 
-            "standard_name": "downwelling_shortwave_flux_in_sea_water", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "rsdo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "msftmrho": {
-            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude rho basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Ocean Meridional Overturning Mass Streamfunction", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "msftmrho", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "chldiaz": {
-            "comment": "chlorophyll concentration from the diazotrophic phytoplankton component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mass Concentration of Diazotrophs expressed as Chlorophyll in Sea Water", 
-            "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-3", 
-            "out_name": "chldiaz", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfcorr": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Heat Flux Correction", 
-            "standard_name": "heat_flux_correction", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfcorr", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfrunoffds": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Temperature Flux due to Runoff Expressed as Heat Flux into Sea Water", 
-            "standard_name": "temperature_flux_due_to_runoff_expressed_as_heat_flux_into_sea_water", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfrunoffds", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "limfediaz": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Iron limitation of Diazotrophs", 
-            "standard_name": "iron_limitation_of_diazotrophs", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limfediaz", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ztop": {
-            "units": "m", 
-            "long_name": "height of top of model", 
-            "type": "", 
-            "dimensions": ""
-        }, 
-        "ocfriver": {
-            "comment": "Organic Carbon supply to ocean through runoff (separate from gas exchange)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Flux of Organic Carbon Into Ocean Surface by Runoff", 
-            "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_runoff_and_sediment_dissolution", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "ocfriver", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "z1": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: z1", 
-            "type": "double", 
-            "dimensions": ""
-        }, 
-        "z2": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: z2", 
-            "type": "double", 
-            "dimensions": ""
-        }, 
-        "phyfe": {
-            "comment": "sum of phytoplankton iron component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Phytoplankton Iron Concentration", 
-            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "phyfe", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "wfonocorr": {
-            "comment": "computed as the water  flux (without flux correction) into the ocean divided by the area of the ocean portion of the grid cell.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Water Flux into Sea Water Without Flux Correction", 
-            "standard_name": "water_flux_into_sea_water_without_flux_correction", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "wfonocorr", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "pon": {
-            "comment": "sum of particulate organic nitrogen component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Particulate Organic Nitrogen Concentration", 
-            "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "pon", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "cfc12": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Moles Per Unit Mass of CFC-12 in Sea Water", 
-            "standard_name": "moles_of_cfc12_per_unit_mass_in_sea_water", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol kg-1", 
-            "out_name": "cfc12", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "mlotst": {
-            "comment": "Sigma T is potential density referenced to ocean surface.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Ocean Mixed Layer Thickness Defined by Sigma T", 
-            "standard_name": "ocean_mixed_layer_thickness_defined_by_sigma_t", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "m", 
-            "out_name": "mlotst", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "vsfevap": {
-            "comment": "zero for models using real water fluxes.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Virtual Salt Flux into Sea Water due to Evaporation", 
-            "standard_name": "virtual_salt_flux_into_sea_water_due_to_evaporation", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "vsfevap", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "eta": {
-            "units": "m", 
-            "long_name": "Sea Surface Height formula term: thetao", 
-            "type": "real", 
-            "dimensions": "longitude latitude time"
-        }, 
-        "chldiat": {
-            "comment": "chlorophyll from diatom phytoplankton component concentration alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Diatom Chlorophyll Mass Concentration", 
-            "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-3", 
-            "out_name": "chldiat", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tauucorr": {
-            "comment": "This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward X Stress Correction", 
-            "standard_name": "surface_downward_x_stress_correction", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "N m-2", 
-            "out_name": "tauucorr", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfgeou": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "up", 
-            "valid_min": "", 
-            "long_name": "Upward Geothermal Heat Flux at Sea Floor", 
-            "standard_name": "upward_geothermal_heat_flux_at_sea_floor", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfgeou", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intppcalc": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Net Primary Mole Productivity of Carbon by Calcareous Phytoplankton", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_calcareous_phytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intppcalc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "vsfsit": {
-            "comment": "This variable measures the virtual salt flux into sea water due to the melting of sea ice. It is set to zero in models which receive a real water flux.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Virtual Salt Flux into Sea Water due to Sea Ice Thermodynamics", 
-            "standard_name": "virtual_salt_flux_into_sea_water_due_to_sea_ice_thermodynamics", 
-            "modeling_realm": "ocean seaIce", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "vsfsit", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "limirrdiat": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Irradiance limitation of Diatoms", 
-            "standard_name": "irradiance_limitation_of_diatoms", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limirrdiat", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intpbp": {
-            "comment": "Vertically integrated biogenic phosphorus production", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Phosphorus Production", 
-            "standard_name": "tendency_of_ocean_mole_content_of_phosphorus_due_to_biological_production", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intpbp", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intpp": {
-            "comment": "Vertically integrated total primary (organic carbon) production by phytoplankton.  This should equal the sum of intpdiat+intpphymisc, but those individual components may be unavailable in some models.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Primary Organic Carbon Production by All Types of Phytoplankton", 
-            "standard_name": "net_primary_mole_productivity_of_carbon_by_phytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intpp", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "co3satarag": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mole Concentration of Carbonate ion for Seawater in equilibrium with pure Aragonite", 
-            "standard_name": "mole_concentration_of_carbonate_ion_for_seawater_in equilibrium_with_pure_aragonite", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "co3satarag", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "volo": {
-            "comment": "Total volume of liquid seawater.", 
-            "dimensions": "time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Volume", 
-            "standard_name": "sea_water_volume", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: sum where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "m3", 
-            "out_name": "volo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "msftmzmpa": {
-            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
-            "dimensions": "latitude olevel basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "ocean meridional overturning mass streamfunction due to parameterized mesoscale advection", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "msftmzmpa", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfds": {
-            "comment": "This is the net flux of heat entering the liquid water column through its upper surface (excluding any 'flux adjustment') .", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Downward Heat Flux at Sea Water Surface", 
-            "standard_name": "surface_downward_heat_flux_in_sea_water", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfds", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "pop": {
-            "comment": "sum of particulate organic phosphorus component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Particulate Organic Phosphorus Concentration", 
-            "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "pop", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfrainds": {
-            "comment": "This is defined as 'where ice_free_sea over sea'; i.e., the total flux (considered here) entering the ice-free portion of the grid cell divided by the area of the ocean portion of the grid cell.  All such heat fluxes are computed based on Celsius scale.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Temperature Flux due to Rainfall Expressed as Heat Flux into Sea Water", 
-            "standard_name": "temperature_flux_due_to_rainfall_expressed_as_heat_flux_into_sea_water", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where ice_free_sea over sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfrainds", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fsitherm": {
-            "comment": "computed as the sea ice thermodynamic water flux into the ocean divided by the area of the ocean portion of the grid cell.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Water Flux into Sea Water due to Sea Ice Thermodynamics", 
-            "standard_name": "water_flux_into_sea_water_due_to_sea_ice_thermodynamics", 
-            "modeling_realm": "ocean seaIce", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "fsitherm", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sos": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Surface Salinity", 
-            "standard_name": "sea_surface_salinity", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "0.001", 
-            "out_name": "sos", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "href": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: href", 
-            "type": "double", 
-            "dimensions": ""
-        }, 
-        "hfls": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward Latent Heat Flux", 
-            "standard_name": "surface_upward_latent_heat_flux", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where ice_free_sea over sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfls", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fddtdisi": {
-            "comment": "vertical integral of net time rate of change of dissolved inorganic silicate", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Net Dissolved Inorganic Silicate", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fddtdisi", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "vsfpr": {
-            "comment": "zero for models using real water fluxes.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Virtual Salt Flux into Sea Water due to Rainfall", 
-            "standard_name": "virtual_salt_flux_into_sea_water_due_to_rainfall", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "vsfpr", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfibthermds2d": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", 
-            "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfibthermds2d", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "chlmisc": {
-            "comment": "chlorophyll from additional phytoplankton component concentrations alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Other Phytoplankton Chlorophyll Mass Concentration", 
-            "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-3", 
-            "out_name": "chlmisc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "phymisc": {
-            "comment": "carbon concentration from additional phytoplankton component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mole Concentration of Miscellaneous Phytoplankton expressed as Carbon in Sea Water", 
-            "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "phymisc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "htovgyre": {
-            "comment": "From all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Northward Ocean Heat Transport due to Gyre", 
-            "standard_name": "northward_ocean_heat_transport_due_to_gyre", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "#cell_methods": "", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "W", 
-            "out_name": "htovgyre", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ps": {
-            "units": "Pa", 
-            "long_name": "Surface Air Pressure", 
-            "type": "real", 
-            "dimensions": "longitude latitude time"
-        }, 
-        "pp": {
-            "comment": "total primary (organic carbon) production by phytoplankton", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Primary Carbon Production by Phytoplankton", 
-            "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3 s-1", 
-            "out_name": "pp", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "co3satcalc": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mole Concentration of Carbonate ion for Seawater in equilibrium with pure Calcite", 
-            "standard_name": "mole_concentration_of_carbonate_ion_for_seawater_in equilibrium_with_pure_calcite", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "co3satcalc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "limndiat": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Nitrogen limitation of Diatoms", 
-            "standard_name": "nitrogen_limitation_of_diatoms", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limndiat", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "physi": {
-            "comment": "sum of phytoplankton silica component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Phytoplankton Silica Concentration", 
-            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "physi", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "limndiaz": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Nitrogen limitation of Diazotrophs", 
-            "standard_name": "nitrogen_limitation_of_diazotrophs", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limndiaz", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zlev_bnds": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: zlev(k+1/2)", 
-            "type": "double", 
-            "dimensions": "olevel"
-        }, 
-        "froc": {
-            "comment": "Organic Carbon loss to sediments", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Downward Organic Carbon Flux at Ocean Bottom", 
-            "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_sedimentation", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "froc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "phypico": {
-            "comment": "carbon concentration from the picophytoplankton (<2 um) component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mole Concentration of Picophytoplankton expressed as Carbon in Sea Water", 
-            "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "phypico", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "chl": {
-            "comment": "sum of chlorophyll from all phytoplankton group concentrations.  In most models this is equal to chldiat+chlmisc, that is the sum of 'Diatom Chlorophyll Mass Concentration' plus 'Other Phytoplankton Chlorophyll Mass Concentration'", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Total Chlorophyll Mass Concentration", 
-            "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-3", 
-            "out_name": "chl", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "frn": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Nitrogen Loss to Sediments and through Denitrification", 
-            "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_denitrification_and_sedimentation", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "frn", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sf6": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Moles Per Unit Mass of SF6 in Sea Water", 
-            "standard_name": "moles_of_sf6_per_unit_mass_in_sea_water", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol kg-1", 
-            "out_name": "sf6", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fddtalk": {
-            "comment": "vertical integral of net time rate of change of alkalinity", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Alkalinity", 
-            "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fddtalk", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfsifrazil2d": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Heat Flux into Sea Water due to Frazil Ice Formation", 
-            "standard_name": "heat_flux_into_sea_water_due_to_freezing_of_frazil_ice", 
-            "modeling_realm": "ocean seaIce", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfsifrazil2d", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tob": {
-            "comment": "Potential temperature at the ocean bottom-most grid cell.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Potential Temperature at Sea Floor", 
-            "standard_name": "sea_water_potential_temperature_at_sea_floor", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "C", 
-            "out_name": "tob", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ph": {
-            "comment": "negative log of hydrogen ion concentration with the concentration expressed as mol H kg-1.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "pH", 
-            "standard_name": "sea_water_ph_reported_on_total_scale", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "ph", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "calc": {
-            "comment": "sum of particulate calcite component concentrations (e.g. Phytoplankton, Detrital, etc.)", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Calcite Concentration", 
-            "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "calc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "talknat": {
-            "comment": "total alkalinity equivalent concentration (including carbonate, borate, phosphorus, silicon, and nitrogen components) at preindustrial atmospheric xCO2", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Natural Total Alkalinity", 
-            "standard_name": "seawater_alkalinity_expressed_as_mole_equivalent_natural_component", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "talknat", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "a": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: a(k)", 
-            "type": "double", 
-            "dimensions": "alevel"
-        }, 
-        "sfdsi": {
-            "comment": "This field is physical, and it arises since sea ice has a nonzero salt content, so it exchanges salt with the liquid ocean upon melting and freezing.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Downward Sea Ice Basal Salt Flux", 
-            "standard_name": "downward_sea_ice_basal_salt_flux", 
-            "modeling_realm": "ocean seaIce", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "sfdsi", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ficeberg": {
-            "comment": "computed as the iceberg melt water  flux into the ocean divided by the area of the ocean portion of the grid cell.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Water Flux into Sea Water From Icebergs", 
-            "standard_name": "water_flux_into_sea_water_from_icebergs", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "ficeberg", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tomint": {
-            "comment": "Full column sum of density*cell thickness*prognostic temperature. If the model is Boussinesq, then use Boussinesq reference density for the density factor.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "integral wrt depth of product of sea water density and prognostic temperature", 
-            "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_prognostic_temperature", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "(kg/m^2)*C", 
-            "out_name": "tomint", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "expc100": {
-            "comment": "", 
-            "dimensions": "longitude latitude time depth100m", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Downward Flux of Particle Organic Carbon", 
-            "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "expc100", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "expsi100": {
-            "comment": "", 
-            "dimensions": "longitude latitude time depth100m", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Downward Flux of Particulate Silica", 
-            "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "expsi100", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "wfcorr": {
-            "comment": "Positive flux implies correction adds water to ocean.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Water Flux Correction", 
-            "standard_name": "water_flux_correction", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "wfcorr", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "dfe": {
-            "comment": "dissolved iron in sea water is meant to include both Fe2+ and Fe3+ ions (but not, e.g., particulate detrital iron)", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Dissolved Iron Concentration", 
-            "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "dfe", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sfriver": {
-            "comment": "This field is physical, and it arises when rivers carry a nonzero salt content.  Often this is zero, with rivers assumed to be fresh.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Salt Flux into Sea Water from Rivers", 
-            "standard_name": "salt_flux_into_sea_water_from_rivers", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "sfriver", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intdissoc": {
-            "comment": "Vertically integrated DOC (explicit pools only)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Dissolved Organic Carbon Content", 
-            "standard_name": "ocean_mass_content_of_dissolved_organic_carbon", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2", 
-            "out_name": "intdissoc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "expfe100": {
-            "comment": "", 
-            "dimensions": "longitude latitude time depth100m", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Downward Flux of Particulate Iron", 
-            "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "expfe100", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "thetao": {
-            "comment": "Diagnostic should be contributed even for models using conservative temperature as prognostic field.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Potential Temperature", 
-            "standard_name": "sea_water_potential_temperature", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "degree_C", 
-            "out_name": "thetao", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "p0": {
-            "units": "Pa", 
-            "long_name": "vertical coordinate formula term: reference pressure", 
-            "type": "", 
-            "dimensions": ""
-        }, 
-        "b": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: b(k)", 
-            "type": "double", 
-            "dimensions": "alevel"
-        }, 
-        "wfo": {
-            "comment": "computed as the water  flux into the ocean divided by the area of the ocean portion of the grid cell.  This is the sum of the next two variables in this table.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Water Flux into Sea Water", 
-            "standard_name": "water_flux_into_sea_water", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "wfo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zfull": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Depth Below Geoid of Ocean Layer", 
-            "standard_name": "depth_below_geoid", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "m", 
-            "out_name": "zfull", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intpn2": {
-            "comment": "Vertically integrated nitrogen fixation", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Nitrogen Fixation Rate in Ocean", 
-            "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_fixation", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intpn2", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intpbsi": {
-            "comment": "Vertically integrated biogenic silica production", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Silica Production", 
-            "standard_name": "tendency_of_ocean_mole_content_of_silicon_due_to_biological_production", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intpbsi", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tosga": {
-            "comment": "This may differ from 'surface temperature' in regions of sea ice.This may differ from 'surface temperature' in regions of sea ice.For models using conservative temperature as prognostic field, they should report the SST as surface potent", 
-            "dimensions": "time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Global Average Sea Surface Temperature", 
-            "standard_name": "sea_surface_temperature", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "degree_C", 
-            "out_name": "tosga", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "uo": {
-            "comment": "Prognostic x-ward velocity component resolved by the model.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water X Velocity", 
-            "standard_name": "sea_water_x_velocity", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "m s-1", 
-            "out_name": "uo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "limfepico": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Iron limitation of Picophytoplankton", 
-            "standard_name": "iron_limitation_of_picophytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limfepico", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "msftyyz": {
-            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude olevel basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Ocean Y Overturning Mass Streamfunction", 
-            "standard_name": "ocean_y_overturning_mass_streamfunction", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "msftyyz", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "expc": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Sinking Particulate Organic Carbon Flux", 
-            "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "expc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "phycalc": {
-            "comment": "carbon concentration from calcareous (calcite-producing) phytoplankton component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mole Concentration of Calcareous Phytoplankton expressed as Carbon in Sea Water", 
-            "standard_name": "mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "phycalc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "k_c": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: k_c", 
-            "type": "integer", 
-            "dimensions": ""
-        }, 
-        "dms": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Dimethyl Sulphide Concentration", 
-            "standard_name": "mole_fraction_of_dimethyl_sulfide_in_air", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mole mole-1", 
-            "out_name": "dms", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fgcfc11": {
-            "comment": "gas exchange flux of CFC11", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward CFC11 flux", 
-            "standard_name": "surface_downward_mole_flux_of_cfc11", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "mol sec-1 m-2", 
-            "out_name": "fgcfc11", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fgcfc12": {
-            "comment": "gas exchange flux of CFC12", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward CFC12 flux", 
-            "standard_name": "surface_downward_mole_flux_of_cfc12", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "mol sec-1 m-2", 
-            "out_name": "fgcfc12", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fgco2nat": {
-            "comment": "Gas exchange flux of natural CO2 (positive into ocean)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward natural CO2 Flux", 
-            "standard_name": "surface_downward_mass_flux_of_natural_carbon_dioxide_expressed_as_carbon", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "fgco2nat", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "htovovrt": {
-            "comment": "From all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Northward Ocean Heat Transport due to Overturning", 
-            "standard_name": "northward_ocean_heat_transport_due_to_overturning", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "W", 
-            "out_name": "htovovrt", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "chlpico": {
-            "comment": "chlorophyll concentration from the picophytoplankton (<2 um) component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mass Concentration of Picophytoplankton expressed as Chlorophyll in Sea Water", 
-            "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-3", 
-            "out_name": "chlpico", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfbasinpmdiff": {
-            "comment": "Contributions to heat transport from parameterized mesoscale eddy-induced diffusive transport (i.e., neutral diffusion). Diagnosed here as a function of latitude and basin.", 
-            "dimensions": "latitude basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "northward ocean heat transport due to parameterized mesoscale diffusion", 
-            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_diffusion", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "W", 
-            "out_name": "hfbasinpmdiff", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "dissicabio": {
-            "comment": "Abiotic Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Abiotic Dissolved Inorganic Carbon Concentration", 
-            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_abiotic_component", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "dissicabio", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tauvcorr": {
-            "comment": "This is the stress on the liquid ocean from overlying atmosphere, sea ice, ice shelf, etc.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward Y Stress Correction", 
-            "standard_name": "surface_downward_y_stress_correction", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "N m-2", 
-            "out_name": "tauvcorr", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfss": {
-            "comment": "This is defined as 'where ice_free_sea over sea'", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward Sensible Heat Flux", 
-            "standard_name": "surface_downward_sensible_heat_flux", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where ice_free_sea over sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfss", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ap_bnds": {
-            "units": "Pa", 
-            "long_name": "vertical coordinate formula term: ap(k+1/2)", 
-            "type": "double", 
-            "dimensions": "alevel"
-        }, 
-        "vo": {
-            "comment": "Prognostic x-ward velocity component resolved by the model.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Y Velocity", 
-            "standard_name": "sea_water_y_velocity", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "m s-1", 
-            "out_name": "vo", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ap": {
-            "units": "Pa", 
-            "long_name": "vertical coordinate formula term: ap(k)", 
-            "type": "double", 
-            "dimensions": "alevel"
-        }, 
-        "phydiaz": {
-            "comment": "carbon concentration from the diazotrophic phytoplankton component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mole Concentration of Diazotrophs Expressed as Carbon in Sea Water", 
-            "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "phydiaz", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tossq": {
-            "comment": "square of temperature of liquid ocean, averaged over the day.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Square of Sea Surface Temperature", 
-            "standard_name": "square_of_sea_surface_temperature", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "degree_C2", 
-            "out_name": "tossq", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "prsn": {
-            "comment": "at surface; includes precipitation of all forms of water in the solid phase", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Snowfall Flux where Ice Free Ocean over Sea", 
-            "standard_name": "snowfall_flux", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where ice_free_sea over sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "prsn", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "limirrcalc": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Irradiance limitation of Calcareous Phytoplankton", 
-            "standard_name": "irradiance_limitation_of_calcareous_phytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limirrcalc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zlev": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: zlev(k)", 
-            "type": "double", 
-            "dimensions": "olevel"
-        }, 
-        "phydiat": {
-            "comment": "carbon from the diatom phytoplankton component concentration alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mole Concentration of Diatoms expressed as Carbon in Sea Water", 
-            "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "phydiat", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfbasin": {
-            "comment": "Contains contributions from all physical processes affecting the northward heat transport, including resolved advection, parameterized advection, lateral diffusion, etc. Diagnosed here as a function of latitude and basin.   Use Celsius for temperature scale.", 
-            "dimensions": "latitude basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Northward Ocean Heat Transport", 
-            "standard_name": "northward_ocean_heat_transport", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "W", 
-            "out_name": "hfbasin", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "bigthetaoga": {
-            "comment": "Diagnostic should be contributed only for models using conservative temperature as prognostic field.", 
-            "dimensions": "time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Global Average Sea Water Conservative Temperature", 
-            "standard_name": "sea_water_conservative_temperature", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "degree_C", 
-            "out_name": "bigthetaoga", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "pso": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Pressure at Sea Water Surface", 
-            "standard_name": "sea_water_pressure_at_sea_water_surface", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "Pa", 
-            "out_name": "pso", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "o2": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Dissolved Oxygen Concentration", 
-            "standard_name": "mole_concentration_of_molecular_oxygen_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "o2", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zoocmisc": {
-            "comment": "carbon from additional zooplankton component concentrations alone (e.g. Micro, meso).  Since the models all have different numbers of components, this variable has been included to provide a check for intercomparison between models since some phytoplankton groups are supersets.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Other Zooplankton Carbon Concentration", 
-            "standard_name": "mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "zoocmisc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "msftyzsmpa": {
-            "comment": "Report only if there is a submesoscale eddy parameterization.", 
-            "dimensions": "latitude olevel basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "ocean Y overturning mass streamfunction due to parameterized submesoscale advection", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_advection", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "msftyzsmpa", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intparag": {
-            "comment": "Vertically integrated aragonite production", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Aragonite Production", 
-            "standard_name": "tendency_of_ocean_mole_content_of_aragonite_expressed_as_carbon_due_to_biological_production", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "intparag", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fbddtdife": {
-            "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic iron", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Dissolved Inorganic Iron due to Biological Activity", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron_due_to_biological_processes", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fbddtdife", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "si": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Dissolved Silicate Concentration", 
-            "standard_name": "mole_concentration_of_silicate_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "si", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "dissicnat": {
-            "comment": "Dissolved inorganic carbon (CO3+HCO3+H2CO3) concentration at preindustrial atmospheric xCO2", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Natural Dissolved Inorganic Carbon Concentration", 
-            "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_natural_component", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "dissicnat", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zos": {
-            "comment": "This is the dynamic sea level, so should have zero global area mean. It should not include inverse barometer depressions from sea ice.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Surface Height Above Geoid", 
-            "standard_name": "sea_surface_height_above_geoid", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "m", 
-            "out_name": "zos", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fgsf6": {
-            "comment": "gas exchange flux of SF6", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward SF6 flux", 
-            "standard_name": "surface_downward_mole_flux_of_sf6", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "mol sec-1 m-2", 
-            "out_name": "fgsf6", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "masso": {
-            "comment": "Total mass of liquid seawater. For Boussinesq models, report this diagnostic as Boussinesq reference density times total volume.", 
-            "dimensions": "time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Mass", 
-            "standard_name": "sea_water_mass", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: sum where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg", 
-            "out_name": "masso", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "expp100": {
-            "comment": "", 
-            "dimensions": "longitude latitude time depth100m", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Downward Flux of Particulate Phosphorus", 
-            "standard_name": "sinking_mole_flux_of_particulate_phosphorus_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "expp100", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "masscello": {
-            "comment": "Tracer grid-cell mass per unit area used for computing tracer budgets. For Boussinesq models with static ocean grid cell thickness, masscello = rhozero*thickcello, where thickcello is static cell thickness and rhozero is constant Boussinesq reference density. More generally, masscello is time dependent and reported as part of Omon.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Mass Per Unit Area", 
-            "standard_name": "sea_water_mass_per_unit_area", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg/m2", 
-            "out_name": "masscello", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "detoc": {
-            "comment": "sum of detrital organic carbon component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Detrital Organic Carbon Concentration", 
-            "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "detoc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "intdissic": {
-            "comment": "Vertically integrated DIC", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Dissolved Inorganic Carbon Content", 
-            "standard_name": "ocean_mass_content_of_dissolved_inorganic_carbon", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2", 
-            "out_name": "intdissic", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "b_bnds": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: b(k+1/2)", 
-            "type": "double", 
-            "dimensions": "alevel"
-        }, 
-        "limncalc": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Nitrogen limitation of Calcareous Phytoplankton", 
-            "standard_name": "nitrogen_limitation_of_calcareous_phytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limncalc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "msftyzmpa": {
-            "comment": "CMIP5 called this 'due to Bolus Advection'.  Name change respects the more general physics of the mesoscale parameterizations.", 
-            "dimensions": "latitude olevel basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "ocean Y overturning mass streamfunction due to parameterized mesoscale advection", 
-            "standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "msftyzmpa", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "thetaoga": {
-            "comment": "Diagnostic should be contributed even for models using conservative temperature as prognostic field", 
-            "dimensions": "time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Global Average Sea Water Potential Temperature", 
-            "standard_name": "sea_water_potential_temperature", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "degree_C", 
-            "out_name": "thetaoga", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "msftmyz": {
-            "comment": "Overturning mass streamfunction arising from all advective mass transport processes, resolved and parameterized.", 
-            "dimensions": "latitude olevel basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Ocean Meridional Overturning Mass Streamfunction", 
-            "standard_name": "ocean_meridional_overturning_mass_streamfunction", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean longitude: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "msftmyz", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fddtdife": {
-            "comment": "vertical integral of net time rate of change of dissolved inorganic iron", 
-            "dimensions": "longitude latitude time olayer100m", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Rate of Change of Net Dissolved Inorganic Iron", 
-            "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fddtdife", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fgco2abio": {
-            "comment": "Gas exchange flux of abiotic CO2 (positive into ocean)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward abiotic CO2 Flux", 
-            "standard_name": "surface_downward_mass_flux_of_abiotic_carbon_dioxide_expressed_as_carbon", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "fgco2abio", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "phyc": {
-            "comment": "sum of phytoplankton carbon component concentrations.  In most (all?) cases this is the sum of phycdiat and phycmisc (i.e., 'Diatom Carbon Concentration' and 'Non-Diatom Phytoplankton Carbon Concentration'", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Phytoplankton Carbon Concentration", 
-            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "phyc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "msftbarot": {
-            "comment": "Streamfunction or its approximation for free surface models. See OMDP document for details.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Ocean Barotropic Mass Streamfunction", 
-            "standard_name": "ocean_barotropic_mass_streamfunction", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg s-1", 
-            "out_name": "msftbarot", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfibthermds": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Heat Flux into Sea Water due to Iceberg Thermodynamics", 
-            "standard_name": "heat_flux_into_sea_water_due_to_iceberg_thermodynamics", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "W m-2", 
-            "out_name": "hfibthermds", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "phyn": {
-            "comment": "sum of phytoplankton nitrogen component concentrations", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Phytoplankton Nitrogen Concentration", 
-            "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "phyn", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fric": {
-            "comment": "Inorganic Carbon loss to sediments", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Downward Inorganic Carbon Flux at Ocean Bottom", 
-            "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_sedimentation", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fric", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "thkcello": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Ocean Model Cell Thickness", 
-            "standard_name": "cell_thickness", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "m", 
-            "out_name": "thkcello", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfy": {
-            "comment": "Contains all contributions to 'y-ward' heat transport from resolved and parameterized processes. Use Celsius for temperature scale.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Ocean Heat Y Transport", 
-            "standard_name": "ocean_heat_y_transport", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "W", 
-            "out_name": "hfy", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfx": {
-            "comment": "Contains all contributions to 'x-ward' heat transport from resolved and parameterized processes.  Use Celsius for temperature scale.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Ocean Heat X Transport", 
-            "standard_name": "ocean_heat_x_transport", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "W", 
-            "out_name": "hfx", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "chlcalc": {
-            "comment": "chlorophyll concentration from the calcite-producing phytoplankton component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mass Concentration of Calcareous Phytoplankton expressed as Chlorophyll in Sea Water", 
-            "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-3", 
-            "out_name": "chlcalc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "agessc": {
-            "comment": "Time elapsed since water was last in surface layer of the ocean.", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Age Since Surface Contact", 
-            "standard_name": "sea_water_age_since_surface_contact", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "yr", 
-            "out_name": "agessc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "nh4": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Dissolved Ammonium Concentration", 
-            "standard_name": "mole_concentration_of_ammonium_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "nh4", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "limirrmisc": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Irradiance Limitation of Other Phytoplankton", 
-            "standard_name": "irradiance_limitation_of_miscellaneous_phytoplankton", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "1.0", 
-            "out_name": "limirrmisc", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tos": {
-            "comment": "this may differ from 'surface temperature' in regions of sea ice.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Surface Temperature", 
-            "standard_name": "sea_surface_temperature", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "K", 
-            "out_name": "tos", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "fsn": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "", 
-            "long_name": "Surface Downward Net Flux of Nitrogen", 
-            "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_deposition_and_fixation_and_runoff", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-2 s-1", 
-            "out_name": "fsn", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "vsfriver": {
-            "comment": "zero for models using real water fluxes.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Virtual Salt Flux into Sea Water From Rivers", 
-            "standard_name": "virtual_salt_flux_into_sea_water_from_rivers", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "kg m-2 s-1", 
-            "out_name": "vsfriver", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "depth": {
-            "units": "m", 
-            "long_name": "Sea Floor Depth: formula term: thetao", 
-            "type": "real", 
-            "dimensions": "longitude latitude"
-        }, 
-        "zoomeso": {
-            "comment": "carbon  concentration from mesozooplankton (20-200 um) component alone", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Mole Concentration of Mesozooplankton expressed as Carbon in Sea Water", 
-            "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "zoomeso", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "so": {
-            "comment": "", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Sea Water Salinity", 
-            "standard_name": "sea_water_salinity", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "0.001", 
-            "out_name": "so", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hfbasinpadv": {
-            "comment": "Contributions to heat transport from parameterized eddy-induced advective transport due to any subgrid advective process. Diagnosed here as a function of latitude and basin.  Use Celsius for temperature scale.", 
-            "dimensions": "latitude basin time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "northward ocean heat transport due to parameterized eddy advection", 
-            "standard_name": "northward_ocean_heat_transport_due_to_parameterized_eddy_advection", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "W", 
-            "out_name": "hfbasinpadv", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "somint": {
-            "comment": "Full column sum of density*cell thickness*prognostic salinity. If the model is Boussinesq, then use Boussinesq reference density for the density factor.", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "integral wrt depth of product of sea water density and prognostic salinity", 
-            "standard_name": "integral_wrt_depth_of_product_of_sea_water_density_and_prognostic_salinity", 
-            "modeling_realm": "ocean", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacello", 
-            "ok_min_mean_abs": "", 
-            "units": "(kg/m^2)*1e-3", 
-            "out_name": "somint", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sigma": {
-            "units": "", 
-            "long_name": "vertical coordinate formula term: sigma(k)", 
-            "type": "double", 
-            "dimensions": "olevel"
-        }, 
-        "talk": {
-            "comment": "total alkalinity equivalent concentration (including carbonate, nitrogen, silicate, and borate components)", 
-            "dimensions": "longitude latitude olevel time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Total Alkalinity", 
-            "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", 
-            "modeling_realm": "ocnBgchem", 
-            "cell_measures": "time: mean area: mean where sea", 
-            "cell_methods": "area: areacello volume: volcello", 
-            "ok_min_mean_abs": "", 
-            "units": "mol m-3", 
-            "out_name": "talk", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }
-    }
-}
diff --git a/TestTables/CMIP6_cf3hr_0.json b/TestTables/CMIP6_cf3hr_0.json
index 518d2f5..4d90b28 100644
--- a/TestTables/CMIP6_cf3hr_0.json
+++ b/TestTables/CMIP6_cf3hr_0.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.36", 
+        "data_specs_version": "01.10.36", 
         "table_id": "Table cf3hr", 
         "realm": "atmos", 
         "frequency": "3hr", 
         "cmor_version": "3.2", 
         "table_date": "04 October 2016", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "1.00", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "axis_entry": {
         "height40": {
diff --git a/TestTables/CMIP6_cf3hr_1.json b/TestTables/CMIP6_cf3hr_1.json
index 603e9c3..3d3f364 100644
--- a/TestTables/CMIP6_cf3hr_1.json
+++ b/TestTables/CMIP6_cf3hr_1.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.36", 
+        "data_specs_version": "10.10.10",
         "table_id": "Table cf3hr", 
         "realm": "atmos", 
         "frequency": "3hr", 
         "cmor_version": "3.2", 
         "table_date": "04 October 2016", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "1.00", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "axis_entry": {
         "height40": {
diff --git a/TestTables/CMIP6_cf3hr_2.json b/TestTables/CMIP6_cf3hr_2.json
index e677afa..dde1801 100644
--- a/TestTables/CMIP6_cf3hr_2.json
+++ b/TestTables/CMIP6_cf3hr_2.json
@@ -1,17 +1,17 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.36", 
+        "data_specs_version": "10.10.10", 
         "table_id": "Table cf3hr", 
         "realm": "atmos", 
         "frequency": "3hr", 
         "cmor_version": "3.2", 
         "table_date": "04 October 2016", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "1.00", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "axis_entry": {
         "time1": {
diff --git a/TestTables/CMIP6_cfSites.json b/TestTables/CMIP6_cfSites.json
deleted file mode 100644
index 6dc4f32..0000000
--- a/TestTables/CMIP6_cfSites.json
+++ /dev/null
@@ -1,647 +0,0 @@
-{
-    "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table cfSites", 
-        "realm": "atmos", 
-        "frequency": "subhr", 
-        "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
-        "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "", 
-        "generic_levels": "", 
-        "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
-    }, 
-    "variable_entry": {
-        "cl": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Cloud Area Fraction", 
-            "comment": "Percentage cloud cover, including both large-scale and convective cloud.", 
-            "dimensions": "alevel site time1", 
-            "out_name": "cl", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "cli": {
-            "modeling_realm": "atmos", 
-            "standard_name": "mass_fraction_of_cloud_ice_in_air", 
-            "units": "kg kg-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Mass Fraction of Cloud Ice", 
-            "comment": "Includes both large-scale and convective cloud. This is calculated 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. It includes precipitating hydrometeors ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
-            "dimensions": "alevel site time1", 
-            "out_name": "cli", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "clw": {
-            "modeling_realm": "atmos", 
-            "standard_name": "mass_fraction_of_cloud_liquid_water_in_air", 
-            "units": "kg kg-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Mass Fraction of Cloud Liquid Water", 
-            "comment": "Includes 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. Precipitating hydrometeors are included ONLY if the precipitating hydrometeors affect the calculation of radiative transfer in model.", 
-            "dimensions": "alevel site time1", 
-            "out_name": "clw", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "edt": {
-            "modeling_realm": "atmos", 
-            "standard_name": "atmosphere_heat_diffusivity", 
-            "units": "m2 s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Eddy Diffusivity Coefficient for Temperature Variable", 
-            "comment": "Vertical diffusion coefficient for temperature due to parametrised eddies", 
-            "dimensions": "alevel site time1", 
-            "out_name": "edt", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "evu": {
-            "modeling_realm": "atmos", 
-            "standard_name": "atmosphere_momentum_diffusivity", 
-            "units": "m2 s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Eddy Viscosity Coefficient for Momentum Variables", 
-            "comment": "Vertical diffusion coefficient for momentum due to parametrised eddies", 
-            "dimensions": "alevel site time1", 
-            "out_name": "evu", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hur": {
-            "modeling_realm": "atmos", 
-            "standard_name": "relative_humidity", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Relative Humidity", 
-            "comment": "The relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.", 
-            "dimensions": "alevel site time1", 
-            "out_name": "hur", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hus": {
-            "modeling_realm": "atmos", 
-            "standard_name": "specific_humidity", 
-            "units": "1.0", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Specific Humidity", 
-            "comment": "", 
-            "dimensions": "alevel site time1", 
-            "out_name": "hus", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "latitude": {
-            "modeling_realm": "atmos", 
-            "standard_name": "latitude", 
-            "units": "degrees_north", 
-            "cell_methods": "area: point", 
-            "cell_measures": "", 
-            "long_name": "Latitude", 
-            "comment": "", 
-            "dimensions": "site", 
-            "out_name": "latitude", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "longitude": {
-            "modeling_realm": "atmos", 
-            "standard_name": "longitude", 
-            "units": "degrees_east", 
-            "cell_methods": "area: point", 
-            "cell_measures": "", 
-            "long_name": "Longitude", 
-            "comment": "", 
-            "dimensions": "site", 
-            "out_name": "longitude", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "mc": {
-            "modeling_realm": "atmos", 
-            "standard_name": "atmosphere_net_upward_convective_mass_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Convective Mass Flux", 
-            "comment": "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.", 
-            "dimensions": "alevhalf site time1", 
-            "out_name": "mc", 
-            "type": "real", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "pfull": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_pressure", 
-            "units": "Pa", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Pressure on Model Levels", 
-            "comment": "Air pressure on model levels", 
-            "dimensions": "alevel site time1", 
-            "out_name": "pfull", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "phalf": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_pressure", 
-            "units": "Pa", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Pressure on Model Half-Levels", 
-            "comment": "Air pressure on model half-levels", 
-            "dimensions": "alevhalf site time1", 
-            "out_name": "phalf", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rld": {
-            "modeling_realm": "atmos", 
-            "standard_name": "downwelling_longwave_flux_in_air", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Downwelling Longwave Radiation", 
-            "comment": "Downwelling Longwave Radiation (includes the fluxes at the surface and TOA)", 
-            "dimensions": "alevhalf site time1", 
-            "out_name": "rld", 
-            "type": "real", 
-            "positive": "down", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rldcs": {
-            "modeling_realm": "atmos", 
-            "standard_name": "downwelling_longwave_flux_in_air_assuming_clear_sky", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Downwelling Clear-Sky Longwave Radiation", 
-            "comment": "Downwelling clear-sky longwave radiation (includes the fluxes at the surface and TOA)", 
-            "dimensions": "alevhalf site time1", 
-            "out_name": "rldcs", 
-            "type": "real", 
-            "positive": "down", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rlu": {
-            "modeling_realm": "atmos", 
-            "standard_name": "upwelling_longwave_flux_in_air", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Upwelling Longwave Radiation", 
-            "comment": "Upwelling longwave radiation (includes the fluxes at the surface and TOA)", 
-            "dimensions": "alevhalf site time1", 
-            "out_name": "rlu", 
-            "type": "real", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rlucs": {
-            "modeling_realm": "atmos", 
-            "standard_name": "upwelling_longwave_flux_in_air_assuming_clear_sky", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Upwelling Clear-Sky Longwave Radiation", 
-            "comment": "Upwelling clear-sky longwave radiation  (includes the fluxes at the surface and TOA)", 
-            "dimensions": "alevhalf site time1", 
-            "out_name": "rlucs", 
-            "type": "real", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rsd": {
-            "modeling_realm": "atmos", 
-            "standard_name": "downwelling_shortwave_flux_in_air", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Downwelling Shortwave Radiation", 
-            "comment": "Downwelling shortwave radiation (includes the fluxes at the surface and top-of-atmosphere)", 
-            "dimensions": "alevhalf site time1", 
-            "out_name": "rsd", 
-            "type": "real", 
-            "positive": "down", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rsdcs": {
-            "modeling_realm": "atmos", 
-            "standard_name": "downwelling_shortwave_flux_in_air_assuming_clear_sky", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Downwelling Clear-Sky Shortwave Radiation", 
-            "comment": "Downwelling clear-sky shortwave radiation (includes the fluxes at the surface and top-of-atmosphere)", 
-            "dimensions": "alevhalf site time1", 
-            "out_name": "rsdcs", 
-            "type": "real", 
-            "positive": "down", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rsu": {
-            "modeling_realm": "atmos", 
-            "standard_name": "upwelling_shortwave_flux_in_air", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Upwelling Shortwave Radiation", 
-            "comment": "Upwelling shortwave radiation  (includes also the fluxes at the surface and top of atmosphere)", 
-            "dimensions": "alevhalf site time1", 
-            "out_name": "rsu", 
-            "type": "real", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rsucs": {
-            "modeling_realm": "atmos", 
-            "standard_name": "upwelling_shortwave_flux_in_air_assuming_clear_sky", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Upwelling Clear-Sky Shortwave Radiation", 
-            "comment": "Upwelling clear-sky shortwave radiation  (includes the fluxes at the surface and TOA)", 
-            "dimensions": "alevhalf site time1", 
-            "out_name": "rsucs", 
-            "type": "real", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ta": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_temperature", 
-            "units": "K", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Air Temperature", 
-            "comment": "Air Temperature", 
-            "dimensions": "alevel site time1", 
-            "out_name": "ta", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tnhus": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_specific_humidity", 
-            "units": "s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Specific Humidity", 
-            "comment": "Tendency of Specific Humidity", 
-            "dimensions": "alevel site time1", 
-            "out_name": "tnhus", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tnhusa": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_specific_humidity_due_to_advection", 
-            "units": "s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Specific Humidity due to Advection", 
-            "comment": "Tendency of Specific Humidity due to Advection", 
-            "dimensions": "alevel site time1", 
-            "out_name": "tnhusa", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tnhusc": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_specific_humidity_due_to_convection", 
-            "units": "s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Specific Humidity due to Convection", 
-            "comment": "Tendencies from cumulus convection scheme.", 
-            "dimensions": "alevel site time1", 
-            "out_name": "tnhusc", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tnhusd": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_specific_humidity_due_to_diffusion", 
-            "units": "s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Specific Humidity due to Numerical Diffusion", 
-            "comment": "Tendency of specific humidity due to numerical diffusion.This includes any horizontal or vertical numerical moisture diffusion not associated with the parametrized moist physics or the resolved dynamics.  For example, any vertical diffusion which is part of the boundary layer mixing scheme should be excluded, as should any diffusion which is included in the terms from the resolved dynamics.   This term is required to check the closure of the moisture budget.", 
-            "dimensions": "alevel site time1", 
-            "out_name": "tnhusd", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tnhusmp": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_specific_humidity_due_to_model_physics", 
-            "units": "s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Specific Humidity due to Model Physics", 
-            "comment": "Tendency of specific humidity due to model physics. This includes sources and sinks from parametrized moist physics (e.g. convection, boundary layer, stratiform condensation/evaporation, etc.) and excludes sources and sinks from resolved dynamics or from horizontal or vertical numerical diffusion not associated with model physicsl.  For example any diffusive mixing by the boundary layer scheme would be included.", 
-            "dimensions": "alevel site time1", 
-            "out_name": "tnhusmp", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tnhusscpbl": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", 
-            "units": "s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Specific Humidity Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", 
-            "comment": "Tendency of Specific Humidity Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing  (to be specified only in  models which do not separate budget terms for stratiform cloud, precipitation and boundary layer schemes.  Includes all bounday layer terms including and diffusive terms.)", 
-            "dimensions": "alevel site time1", 
-            "out_name": "tnhusscpbl", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tnt": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_air_temperature", 
-            "units": "K s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Air Temperature", 
-            "comment": "Tendency of Air Temperature", 
-            "dimensions": "alevel site time1", 
-            "out_name": "tnt", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tnta": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_air_temperature_due_to_advection", 
-            "units": "K s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Air Temperature due to Advection", 
-            "comment": "Tendency of Air Temperature due to Advection", 
-            "dimensions": "alevel site time1", 
-            "out_name": "tnta", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tntc": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_air_temperature_due_to_convection", 
-            "units": "K s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Air Temperature due to Convection", 
-            "comment": "Tendencies from cumulus convection scheme.", 
-            "dimensions": "alevel site time1", 
-            "out_name": "tntc", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tntmp": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_air_temperature_due_to_model_physics", 
-            "units": "K s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Air Temperature due to Model Physics", 
-            "comment": "Tendency of air temperature due to model physics. This includes sources and sinks from parametrized physics (e.g. radiation, convection, boundary layer, stratiform condensation/evaporation, etc.). It excludes sources and sinks from resolved dynamics and numerical diffusion not associated with parametrized physics.  For example, any vertical diffusion which is part of the boundary layer mixing scheme should be included, while numerical diffusion applied in addition [...]
-            "dimensions": "alevel site time1", 
-            "out_name": "tntmp", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tntr": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_air_temperature_due_to_radiative_heating", 
-            "units": "K s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Air Temperature due to Radiative Heating", 
-            "comment": "Tendency of Air Temperature due to Radiative Heating", 
-            "dimensions": "alevel site time1", 
-            "out_name": "tntr", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "tntscpbl": {
-            "modeling_realm": "atmos", 
-            "standard_name": "tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation_and_boundary_layer_mixing", 
-            "units": "K s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Tendency of Air Temperature Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing", 
-            "comment": "Tendency of Air Temperature Due to Stratiform Cloud and Precipitation and Boundary Layer Mixing (to be specified only in  models which do not separate cloud, precipitation and boundary layer terms.  Includes all boundary layer terms including diffusive ones.)", 
-            "dimensions": "alevel site time1", 
-            "out_name": "tntscpbl", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ua": {
-            "modeling_realm": "atmos", 
-            "standard_name": "eastward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Eastward Wind", 
-            "comment": "", 
-            "dimensions": "alevel site time1", 
-            "out_name": "ua", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "va": {
-            "modeling_realm": "atmos", 
-            "standard_name": "northward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Northward Wind", 
-            "comment": "", 
-            "dimensions": "alevel site time1", 
-            "out_name": "va", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "wap": {
-            "modeling_realm": "atmos", 
-            "standard_name": "lagrangian_tendency_of_air_pressure", 
-            "units": "Pa s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "omega (=dp/dt)", 
-            "comment": "Omega (vertical velocity in pressure coordinates, positive downwards)", 
-            "dimensions": "alevel site time1", 
-            "out_name": "wap", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "zg": {
-            "modeling_realm": "atmos", 
-            "standard_name": "geopotential_height", 
-            "units": "m", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Geopotential Height", 
-            "comment": "", 
-            "dimensions": "alevel site time1", 
-            "out_name": "zg", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }
-    }
-}
diff --git a/TestTables/CMIP6_chunking.json b/TestTables/CMIP6_chunking.json
new file mode 100644
index 0000000..469f026
--- /dev/null
+++ b/TestTables/CMIP6_chunking.json
@@ -0,0 +1,39 @@
+{
+    "Header": {
+        "missing_value": "1e20",
+        "approx_interval": "30.00000",
+        "cmor_version": "3.0",
+        "frequency": "mon",
+        "table_id": "Table AmonChunking",
+        "table_date": "24 February 2016",
+        "realm": "atmos",
+        "generic_levels": "alevel alevhalf",
+        "product":"model-output",
+        "data_specs_version": "10.10.10",
+        "Conventions": "CF-1.7 CMIP-6.0"
+    },
+    "variable_entry": {
+        "tas": {
+            "deflate": "1",
+            "shuffle": "1",
+            "deflate_level": "9",
+            "#chunk_dimensions":  "time   ,level  latitude  longitude #Follow CF-1 convention",
+            "chunk_dimensions":   "11       3      15       20",
+            "comment": "near-surface (usually, 2 meter) air temperature", 
+            "dimensions":         "longitude latitude time", 
+            "positive": "", 
+            "valid_min": "180.6", 
+            "long_name": "Near-Surface Air Temperature", 
+            "standard_name": "air_temperature", 
+            "modeling_realm": "atmos", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacella", 
+            "ok_min_mean_abs": "262.4", 
+            "units": "K", 
+            "out_name": "tas", 
+            "type": "real", 
+            "valid_max": "335.1", 
+            "ok_max_mean_abs": "293"
+        }
+    }
+}
diff --git a/TestTables/CMIP6_configure.json b/TestTables/CMIP6_configure.json
deleted file mode 100644
index 64d2594..0000000
--- a/TestTables/CMIP6_configure.json
+++ /dev/null
@@ -1,5 +0,0 @@
-    "CMIP6_configuration":{
-                    "activity_id":"",
-                    "experiment_id":"",
-              },
-
diff --git a/TestTables/CMIP6_coordinate.json b/TestTables/CMIP6_coordinate.json
index 937c099..5c8f4c4 100644
--- a/TestTables/CMIP6_coordinate.json
+++ b/TestTables/CMIP6_coordinate.json
@@ -489,7 +489,7 @@
         }, 
         "effectRadIc": {
             "standard_name": "", 
-            "units": "m", 
+            "units": "micron", 
             "axis": "", 
             "long_name": "Effective Radius [Values to be specified]", 
             "climatology": "", 
@@ -497,8 +497,28 @@
             "must_have_bounds": "", 
             "out_name": "effectRadIc", 
             "positive": "", 
-            "requested": "", 
-            "requested_bounds": "", 
+            "requested": [
+                "5.", 
+                "15.", 
+                "25.", 
+                "35.", 
+                "50.", 
+                "75."
+            ], 
+            "requested_bounds": [
+                "0.", 
+                "10.", 
+                "10.", 
+                "20.", 
+                "20.", 
+                "30.", 
+                "30.", 
+                "40.", 
+                "40.", 
+                "60.", 
+                "60.", 
+                "90."
+            ], 
             "stored_direction": "", 
             "tolerance": "", 
             "type": "double", 
@@ -511,7 +531,7 @@
         }, 
         "effectRadLi": {
             "standard_name": "", 
-            "units": "m", 
+            "units": "micron", 
             "axis": "", 
             "long_name": "Effective Radius [Values to be specified]", 
             "climatology": "", 
@@ -519,8 +539,28 @@
             "must_have_bounds": "", 
             "out_name": "effectRadLi", 
             "positive": "", 
-            "requested": "", 
-            "requested_bounds": "", 
+            "requested": [
+                "4.", 
+                "9.", 
+                "11.5", 
+                "14.", 
+                "17.5", 
+                "25."
+            ], 
+            "requested_bounds": [
+                "0.", 
+                "8.", 
+                "8.", 
+                "10.", 
+                "10.", 
+                "13.", 
+                "13.", 
+                "15.", 
+                "15.", 
+                "20.", 
+                "20.", 
+                "30."
+            ], 
             "stored_direction": "", 
             "tolerance": "", 
             "type": "double", 
@@ -951,6 +991,50 @@
             "z_factors": "", 
             "bounds_values": ""
         }, 
+        "p10": {
+            "standard_name": "air_pressure", 
+            "units": "Pa", 
+            "axis": "Z", 
+            "long_name": "pressure", 
+            "climatology": "", 
+            "formula": "", 
+            "must_have_bounds": "no", 
+            "out_name": "plev", 
+            "positive": "down", 
+            "requested": "", 
+            "requested_bounds": "", 
+            "stored_direction": "", 
+            "tolerance": "", 
+            "type": "double", 
+            "valid_max": "", 
+            "valid_min": "", 
+            "value": "1000.", 
+            "z_bounds_factors": "", 
+            "z_factors": "", 
+            "bounds_values": ""
+        }, 
+        "p100": {
+            "standard_name": "air_pressure", 
+            "units": "Pa", 
+            "axis": "Z", 
+            "long_name": "pressure", 
+            "climatology": "", 
+            "formula": "", 
+            "must_have_bounds": "no", 
+            "out_name": "plev", 
+            "positive": "down", 
+            "requested": "", 
+            "requested_bounds": "", 
+            "stored_direction": "", 
+            "tolerance": "", 
+            "type": "double", 
+            "valid_max": "", 
+            "valid_min": "", 
+            "value": "10000.", 
+            "z_bounds_factors": "", 
+            "z_factors": "", 
+            "bounds_values": ""
+        }, 
         "p1000": {
             "standard_name": "air_pressure", 
             "units": "Pa", 
@@ -1081,7 +1165,7 @@
             "value": "70000.", 
             "z_bounds_factors": "", 
             "z_factors": "", 
-            "bounds_values": ""
+            "bounds_values": "85000.0 60000.0"
         }, 
         "p840": {
             "standard_name": "air_pressure", 
@@ -1127,6 +1211,28 @@
             "z_factors": "", 
             "bounds_values": ""
         }, 
+        "pl700": {
+            "standard_name": "air_pressure", 
+            "units": "Pa", 
+            "axis": "Z", 
+            "long_name": "pressure", 
+            "climatology": "", 
+            "formula": "", 
+            "must_have_bounds": "no", 
+            "out_name": "plev", 
+            "positive": "down", 
+            "requested": "", 
+            "requested_bounds": "", 
+            "stored_direction": "", 
+            "tolerance": "", 
+            "type": "double", 
+            "valid_max": "", 
+            "valid_min": "", 
+            "value": "70000.", 
+            "z_bounds_factors": "", 
+            "z_factors": "", 
+            "bounds_values": ""
+        }, 
         "plev10": {
             "standard_name": "air_pressure", 
             "units": "Pa", 
@@ -1540,7 +1646,7 @@
             "out_name": "plev", 
             "positive": "down", 
             "requested": [
-                "925000.", 
+                "92500.", 
                 "85000.", 
                 "70000.", 
                 "60000.", 
@@ -1676,10 +1782,10 @@
             "type": "double", 
             "valid_max": "", 
             "valid_min": "", 
-            "value": "", 
+            "value": "0.005, 0.605, 2.1, 4, 6, 8.5, 12.5, 17.5, 22.5, 27.5, 35, 45, 55, 70, 50040", 
             "z_bounds_factors": "", 
             "z_factors": "", 
-            "bounds_values": ""
+            "bounds_values": "0.0 0.01 1.2 3.0 5.0 7.0 10.0 15.0 20.0 25.0 30.0 40.0 50.0 60.0 80.0 100000.0"
         }, 
         "sdepth": {
             "standard_name": "depth", 
@@ -1845,8 +1951,8 @@
             "bounds_values": ""
         }, 
         "spectband": {
-            "standard_name": "wave_frequency", 
-            "units": "s-1", 
+            "standard_name": "sensor_band_central_radiation_wavenumber", 
+            "units": "m-1", 
             "axis": "", 
             "long_name": "Spectral Frequency Band", 
             "climatology": "", 
@@ -2093,6 +2199,28 @@
             "z_factors": "", 
             "bounds_values": ""
         }, 
+        "typeburnt": {
+            "standard_name": "area_type", 
+            "units": "", 
+            "axis": "", 
+            "long_name": "Burnt vegetation area type", 
+            "climatology": "", 
+            "formula": "", 
+            "must_have_bounds": "no", 
+            "out_name": "type", 
+            "positive": "", 
+            "requested": "", 
+            "requested_bounds": "", 
+            "stored_direction": "", 
+            "tolerance": "", 
+            "type": "character", 
+            "valid_max": "", 
+            "valid_min": "", 
+            "value": "burnt_vegetation", 
+            "z_bounds_factors": "", 
+            "z_factors": "", 
+            "bounds_values": ""
+        }, 
         "typec3pft": {
             "standard_name": "area_type", 
             "units": "", 
@@ -2137,6 +2265,94 @@
             "z_factors": "", 
             "bounds_values": ""
         }, 
+        "typecrop": {
+            "standard_name": "area_type", 
+            "units": "", 
+            "axis": "", 
+            "long_name": "Crop area type", 
+            "climatology": "", 
+            "formula": "", 
+            "must_have_bounds": "no", 
+            "out_name": "type", 
+            "positive": "", 
+            "requested": "", 
+            "requested_bounds": "", 
+            "stored_direction": "", 
+            "tolerance": "", 
+            "type": "character", 
+            "valid_max": "", 
+            "valid_min": "", 
+            "value": "crops", 
+            "z_bounds_factors": "", 
+            "z_factors": "", 
+            "bounds_values": ""
+        }, 
+        "typemp": {
+            "standard_name": "area_type", 
+            "units": "", 
+            "axis": "", 
+            "long_name": "Melt pond area type", 
+            "climatology": "", 
+            "formula": "", 
+            "must_have_bounds": "no", 
+            "out_name": "type", 
+            "positive": "", 
+            "requested": "", 
+            "requested_bounds": "", 
+            "stored_direction": "", 
+            "tolerance": "", 
+            "type": "character", 
+            "valid_max": "", 
+            "valid_min": "", 
+            "value": "sea_ice_melt_pond", 
+            "z_bounds_factors": "", 
+            "z_factors": "", 
+            "bounds_values": ""
+        }, 
+        "typenatgr": {
+            "standard_name": "area_type", 
+            "units": "", 
+            "axis": "", 
+            "long_name": "Natural grass area type", 
+            "climatology": "", 
+            "formula": "", 
+            "must_have_bounds": "no", 
+            "out_name": "type", 
+            "positive": "", 
+            "requested": "", 
+            "requested_bounds": "", 
+            "stored_direction": "", 
+            "tolerance": "", 
+            "type": "character", 
+            "valid_max": "", 
+            "valid_min": "", 
+            "value": "natural_grasses", 
+            "z_bounds_factors": "", 
+            "z_factors": "", 
+            "bounds_values": ""
+        }, 
+        "typepasture": {
+            "standard_name": "area_type", 
+            "units": "", 
+            "axis": "", 
+            "long_name": "Pasture area type", 
+            "climatology": "", 
+            "formula": "", 
+            "must_have_bounds": "no", 
+            "out_name": "type", 
+            "positive": "", 
+            "requested": "", 
+            "requested_bounds": "", 
+            "stored_direction": "", 
+            "tolerance": "", 
+            "type": "character", 
+            "valid_max": "", 
+            "valid_min": "", 
+            "value": "pastures", 
+            "z_bounds_factors": "", 
+            "z_factors": "", 
+            "bounds_values": ""
+        }, 
         "typepdec": {
             "standard_name": "area_type", 
             "units": "", 
@@ -2225,10 +2441,76 @@
             "z_factors": "", 
             "bounds_values": ""
         }, 
-        "vegtype": {
+        "typeshrub": {
             "standard_name": "area_type", 
             "units": "", 
             "axis": "", 
+            "long_name": "Shrub area type", 
+            "climatology": "", 
+            "formula": "", 
+            "must_have_bounds": "no", 
+            "out_name": "type", 
+            "positive": "", 
+            "requested": "", 
+            "requested_bounds": "", 
+            "stored_direction": "", 
+            "tolerance": "", 
+            "type": "character", 
+            "valid_max": "", 
+            "valid_min": "", 
+            "value": "shrubs", 
+            "z_bounds_factors": "", 
+            "z_factors": "", 
+            "bounds_values": ""
+        }, 
+        "typetree": {
+            "standard_name": "area_type", 
+            "units": "", 
+            "axis": "", 
+            "long_name": "Tree area type", 
+            "climatology": "", 
+            "formula": "", 
+            "must_have_bounds": "no", 
+            "out_name": "type", 
+            "positive": "", 
+            "requested": "", 
+            "requested_bounds": "", 
+            "stored_direction": "", 
+            "tolerance": "", 
+            "type": "character", 
+            "valid_max": "", 
+            "valid_min": "", 
+            "value": "trees", 
+            "z_bounds_factors": "", 
+            "z_factors": "", 
+            "bounds_values": ""
+        }, 
+        "typeveg": {
+            "standard_name": "area_type", 
+            "units": "", 
+            "axis": "", 
+            "long_name": "Vegetation area type", 
+            "climatology": "", 
+            "formula": "", 
+            "must_have_bounds": "no", 
+            "out_name": "type", 
+            "positive": "", 
+            "requested": "", 
+            "requested_bounds": "", 
+            "stored_direction": "", 
+            "tolerance": "", 
+            "type": "character", 
+            "valid_max": "", 
+            "valid_min": "", 
+            "value": "vegetation", 
+            "z_bounds_factors": "", 
+            "z_factors": "", 
+            "bounds_values": ""
+        }, 
+        "vegtype": {
+            "standard_name": "", 
+            "units": "", 
+            "axis": "", 
             "long_name": "plant functional type", 
             "climatology": "", 
             "formula": "", 
diff --git a/TestTables/CMIP6_coordinate.json b/TestTables/CMIP6_coordinateTESTNOBOUNDS.json
similarity index 99%
copy from TestTables/CMIP6_coordinate.json
copy to TestTables/CMIP6_coordinateTESTNOBOUNDS.json
index 937c099..4ccc488 100644
--- a/TestTables/CMIP6_coordinate.json
+++ b/TestTables/CMIP6_coordinateTESTNOBOUNDS.json
@@ -700,7 +700,7 @@
             "long_name": "latitude", 
             "climatology": "", 
             "formula": "", 
-            "must_have_bounds": "yes", 
+            "must_have_bounds": "no", 
             "out_name": "lat", 
             "positive": "", 
             "requested": "", 
@@ -744,7 +744,7 @@
             "long_name": "longitude", 
             "climatology": "", 
             "formula": "", 
-            "must_have_bounds": "yes", 
+            "must_have_bounds": "no", 
             "out_name": "lon", 
             "positive": "", 
             "requested": "", 
@@ -1676,10 +1676,10 @@
             "type": "double", 
             "valid_max": "", 
             "valid_min": "", 
-            "value": "", 
+            "value": "0.005, 0.605, 2.1, 4, 6, 8.5, 12.5, 17.5, 22.5, 27.5, 35, 45, 55, 70, 50040", 
             "z_bounds_factors": "", 
             "z_factors": "", 
-            "bounds_values": ""
+            "bounds_values": "0.0 0.01 1.2 3.0 5.0 7.0 10.0 15.0 20.0 25.0 30.0 40.0 50.0 60.0 80.0 100000.0"
         }, 
         "sdepth": {
             "standard_name": "depth", 
@@ -1990,7 +1990,7 @@
             "long_name": "time", 
             "climatology": "", 
             "formula": "", 
-            "must_have_bounds": "yes", 
+            "must_have_bounds": "no", 
             "out_name": "time", 
             "positive": "", 
             "requested": "", 
@@ -2226,7 +2226,7 @@
             "bounds_values": ""
         }, 
         "vegtype": {
-            "standard_name": "area_type", 
+            "standard_name": "", 
             "units": "", 
             "axis": "", 
             "long_name": "plant functional type", 
diff --git a/TestTables/CMIP6_day.json b/TestTables/CMIP6_day.json
index 7c522f3..647a1ac 100644
--- a/TestTables/CMIP6_day.json
+++ b/TestTables/CMIP6_day.json
@@ -1,24 +1,24 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table day", 
         "realm": "atmos", 
         "frequency": "day", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "1.00000", 
         "generic_levels": "", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "clt": {
             "modeling_realm": "atmos", 
             "standard_name": "cloud_area_fraction", 
-            "units": "1.0", 
-            "cell_methods": "time: mean", 
+            "units": "%", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Total Cloud Fraction", 
             "comment": "Total cloud area fraction for the whole atmospheric column, as seen from the surface or the top of the atmosphere. Includes both large-scale and convective cloud.", 
@@ -35,7 +35,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_latent_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upward Latent Heat Flux", 
             "comment": "", 
@@ -52,7 +52,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upward_sensible_heat_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upward Sensible Heat Flux", 
             "comment": "", 
@@ -82,6 +82,57 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
+        "hurs": {
+            "modeling_realm": "atmos", 
+            "standard_name": "relative_humidity", 
+            "units": "%", 
+            "cell_methods": "time: mean", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Near-Surface Relative Humidity", 
+            "comment": "The relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.", 
+            "dimensions": "longitude latitude time height2m", 
+            "out_name": "hurs", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "hursmax": {
+            "modeling_realm": "atmos", 
+            "standard_name": "relative_humidity", 
+            "units": "%", 
+            "cell_methods": "area: mean time: maximum", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Surface Daily Maximum Relative Humidity", 
+            "comment": "", 
+            "dimensions": "longitude latitude time height2m", 
+            "out_name": "hursmax", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
+        "hursmin": {
+            "modeling_realm": "atmos", 
+            "standard_name": "relative_humidity", 
+            "units": "%", 
+            "cell_methods": "area: mean time: minimum", 
+            "cell_measures": "area: areacella", 
+            "long_name": "Surface Daily Minimum Relative Humidity", 
+            "comment": "", 
+            "dimensions": "longitude latitude time height2m", 
+            "out_name": "hursmin", 
+            "type": "real", 
+            "positive": "", 
+            "valid_min": "", 
+            "valid_max": "", 
+            "ok_min_mean_abs": "", 
+            "ok_max_mean_abs": ""
+        }, 
         "hus": {
             "modeling_realm": "atmos", 
             "standard_name": "specific_humidity", 
@@ -116,23 +167,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "mrro": {
-            "modeling_realm": "land", 
-            "standard_name": "runoff_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "area: mean where land time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Total Runoff", 
-            "comment": "The total run-off (including drainage through the base of the soil model) per unit area leaving the land portion of the grid cell.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "mrro", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "mrso": {
             "modeling_realm": "land", 
             "standard_name": "soil_moisture_content", 
@@ -167,28 +201,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "omldamax": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_mixed_layer_thickness_defined_by_mixing_scheme", 
-            "units": "m", 
-            "cell_methods": "time: maximum", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", 
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "omldamax", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "pr": {
             "modeling_realm": "atmos", 
             "standard_name": "precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Precipitation", 
             "comment": "includes both liquid and solid phases", 
@@ -205,7 +222,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "convective_precipitation_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Convective Precipitation", 
             "comment": "Convective precipitation at surface; includes both liquid and solid phases.", 
@@ -222,7 +239,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "snowfall_flux", 
             "units": "kg m-2 s-1", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Snowfall Flux", 
             "comment": "at surface; includes precipitation of all forms of water in the solid phase", 
@@ -239,7 +256,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_pressure_at_sea_level", 
             "units": "Pa", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Sea Level Pressure", 
             "comment": "Sea Level Pressure", 
@@ -252,62 +269,11 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "rhs": {
-            "modeling_realm": "atmos", 
-            "standard_name": "relative_humidity", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Near-Surface 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.", 
-            "dimensions": "longitude latitude time height2m", 
-            "out_name": "rhs", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rhsmax": {
-            "modeling_realm": "atmos", 
-            "standard_name": "relative_humidity", 
-            "units": "%", 
-            "cell_methods": "time: maximum", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Surface Daily Maximum Relative Humidity", 
-            "comment": "Surface daily maximum of relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.", 
-            "dimensions": "longitude latitude time height2m", 
-            "out_name": "rhsmax", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rhsmin": {
-            "modeling_realm": "atmos", 
-            "standard_name": "relative_humidity", 
-            "units": "%", 
-            "cell_methods": "time: minimum", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Surface Daily Minimum Relative Humidity", 
-            "comment": "Surface daily minimum of relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.", 
-            "dimensions": "longitude latitude time height2m", 
-            "out_name": "rhsmin", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "rlds": {
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Longwave Radiation", 
             "comment": "", 
@@ -324,7 +290,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_longwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upwelling Longwave Radiation", 
             "comment": "", 
@@ -341,7 +307,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "toa_outgoing_longwave_flux", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "TOA Outgoing Longwave Radiation", 
             "comment": "at the top of the atmosphere (to be compared with satellite measurements)", 
@@ -358,7 +324,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_downwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Downwelling Shortwave Radiation", 
             "comment": "surface solar irradiance for UV calculations", 
@@ -375,7 +341,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "surface_upwelling_shortwave_flux_in_air", 
             "units": "W m-2", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Upwelling Shortwave Radiation", 
             "comment": "", 
@@ -409,7 +375,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "wind_speed", 
             "units": "m s-1", 
-            "cell_methods": "time: maximum", 
+            "cell_methods": "area: mean time: maximum", 
             "cell_measures": "", 
             "long_name": "Daily Maximum Near-Surface Wind Speed", 
             "comment": "Daily maximum near-surface (usually, 10 meters) wind speed.", 
@@ -422,16 +388,16 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "sic": {
+        "sithick": {
             "modeling_realm": "seaIce ocean", 
-            "standard_name": "sea_ice_area_fraction", 
-            "units": "1.0", 
+            "standard_name": "sea_ice_thickness", 
+            "units": "m", 
             "cell_methods": "time: mean", 
             "cell_measures": "area: areacello", 
-            "long_name": "Sea Ice Area Fraction", 
-            "comment": "fraction of grid cell covered by sea ice.", 
+            "long_name": "Sea Ice Thickness", 
+            "comment": "Actual (floe) thickness of sea ice (NOT volume divided by grid area as was done in CMIP5)", 
             "dimensions": "longitude latitude time", 
-            "out_name": "sic", 
+            "out_name": "sithick", 
             "type": "real", 
             "positive": "", 
             "valid_min": "", 
@@ -443,7 +409,7 @@
             "modeling_realm": "landIce land", 
             "standard_name": "surface_snow_area_fraction", 
             "units": "%", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Snow Area Fraction", 
             "comment": "Fraction of each grid cell that is occupied by snow that rests on land portion of cell.", 
@@ -456,23 +422,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "snw": {
-            "modeling_realm": "landIce land", 
-            "standard_name": "surface_snow_amount", 
-            "units": "kg m-2", 
-            "cell_methods": "area: mean where land time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Surface Snow Amount", 
-            "comment": "The mass of surface snow on the land portion of the grid cell divided by the land area in the grid cell; reported as missing where the land fraction is 0; excludes snow on vegetation canopy or on sea ice.", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "snw", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "ta": {
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
@@ -511,7 +460,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "time: maximum", 
+            "cell_methods": "area: mean time: maximum", 
             "cell_measures": "area: areacella", 
             "long_name": "Daily Maximum Near-Surface Air Temperature", 
             "comment": "maximum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: max')", 
@@ -528,7 +477,7 @@
             "modeling_realm": "atmos", 
             "standard_name": "air_temperature", 
             "units": "K", 
-            "cell_methods": "time: minimum", 
+            "cell_methods": "area: mean time: minimum", 
             "cell_measures": "area: areacella", 
             "long_name": "Daily Minimum Near-Surface Air Temperature", 
             "comment": "minimum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: min')", 
@@ -545,7 +494,7 @@
             "modeling_realm": "land", 
             "standard_name": "surface_temperature", 
             "units": "K", 
-            "cell_methods": "time: mean", 
+            "cell_methods": "area: time: mean ", 
             "cell_measures": "area: areacella", 
             "long_name": "Surface Temperature Where Land or Sea Ice", 
             "comment": "'skin' temperature of all surfaces except open ocean.", 
@@ -592,23 +541,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "usi": {
-            "modeling_realm": "seaIce ocean", 
-            "standard_name": "sea_ice_x_velocity", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "X-Component of Sea Ice Velocity", 
-            "comment": "'Reported as ''missing'' in regions free of sea ice.'", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "usi", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "va": {
             "modeling_realm": "atmos", 
             "standard_name": "northward_wind", 
@@ -643,23 +575,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "vsi": {
-            "modeling_realm": "seaIce ocean", 
-            "standard_name": "sea_ice_y_velocity", 
-            "units": "m s-1", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Y-Component of Sea Ice Velocity", 
-            "comment": "'Reported as ''missing'' in regions free of sea ice.'", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "vsi", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "wap": {
             "modeling_realm": "atmos", 
             "standard_name": "lagrangian_tendency_of_air_pressure", 
diff --git a/TestTables/CMIP6_em3hrpt.json b/TestTables/CMIP6_em3hrpt.json
deleted file mode 100644
index dedf41b..0000000
--- a/TestTables/CMIP6_em3hrpt.json
+++ /dev/null
@@ -1,375 +0,0 @@
-{
-    "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table em3hrpt", 
-        "realm": "atmos", 
-        "frequency": "3hr", 
-        "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
-        "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "0.125000", 
-        "generic_levels": "", 
-        "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
-    }, 
-    "variable_entry": {
-        "cfadDbze94": {
-            "modeling_realm": "atmos", 
-            "standard_name": "histogram_of_equivalent_reflectivity_factor_over_height_above_reference_ellipsoid", 
-            "units": "1.0", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CloudSat Radar Reflectivity", 
-            "comment": "CFAD (Cloud Frequency Altitude Diagrams) are frequency distributions of radar  reflectivity (or lidar scattering ratio) as a function of altitude. The variable cfadDbze94 is defined as the simulated relative frequency of occurrence of radar reflectivity in sampling volumes defined by altitude bins. The radar is observing at a frequency of 94GHz.", 
-            "dimensions": "longitude latitude alt40 dbze time1", 
-            "out_name": "cfadDbze94", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "cfadLidarsr532": {
-            "modeling_realm": "atmos", 
-            "standard_name": "histogram_of_backscattering_ratio_over_height_above_reference_ellipsoid", 
-            "units": "1.0", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Scattering Ratio", 
-            "comment": "CFAD (Cloud Frequency Altitude Diagrams) are frequency distributions of radar  reflectivity (or lidar scattering ratio) as a function of altitude. The variable cfadLidarsr532 is defined as the simulated relative frequency of lidar scattering ratio in sampling volumes defined by altitude bins. The lidar is observing at a wavelength of 532nm.", 
-            "dimensions": "longitude latitude alt40 scatratio time1", 
-            "out_name": "cfadLidarsr532", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "clcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Percentage Cloud Cover", 
-            "comment": "Percentage cloud cover at CALIPSO standard heights.", 
-            "dimensions": "longitude latitude alt40 time1", 
-            "out_name": "clcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "clcalipso2": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Cloud Fraction Undetected by CloudSat", 
-            "comment": "Clouds detected by CALIPSO but below the detectability threshold of CloudSat", 
-            "dimensions": "longitude latitude alt40 time1", 
-            "out_name": "clcalipso2", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "clhcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Percentage High Level Cloud", 
-            "comment": "Percentage cloud cover in layer centred on 220hPa", 
-            "dimensions": "longitude latitude time1", 
-            "out_name": "clhcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "clisccp": {
-            "modeling_realm": "atmos", 
-            "standard_name": "isccp_cloud_area_fraction", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "ISCCP Cloud Area Fraction", 
-            "comment": "Percentage cloud cover in optical depth categories.", 
-            "dimensions": "longitude latitude plev7c tau time1", 
-            "out_name": "clisccp", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "cllcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Percentage Low Level Cloud", 
-            "comment": "Percentage cloud cover in layer centred on 840hPa", 
-            "dimensions": "longitude latitude time1", 
-            "out_name": "cllcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "clmcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Percentage Mid Level Cloud", 
-            "comment": "Percentage cloud cover in layer centred on 560hPa", 
-            "dimensions": "longitude latitude time1", 
-            "out_name": "clmcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "clmisr": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Percentage Cloud Cover as Calculated by the MISR Simulator", 
-            "comment": "Cloud percentage in spectral bands and layers as observed by the Multi-angle Imaging SpectroRadiometer (MISR) instrument.", 
-            "dimensions": "longitude latitude alt16 misrBands time1", 
-            "out_name": "clmisr", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "cltcalipso": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "CALIPSO Total Cloud Fraction", 
-            "comment": "", 
-            "dimensions": "longitude latitude time1", 
-            "out_name": "cltcalipso", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "hus7h": {
-            "modeling_realm": "atmos", 
-            "standard_name": "specific_humidity", 
-            "units": "1.0", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Specific Humidity", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev7h time1", 
-            "out_name": "hus7h", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "jpdftaureicemodis": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "MODIS Optical Thickness-Particle Size joint  distribution, ice", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev7c effectRadIc|tau time1", 
-            "out_name": "jpdftaureicemodis", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "jpdftaureliqmodis": {
-            "modeling_realm": "atmos", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "units": "%", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "MODIS Optical Thickness-Particle Size joint  distribution, liquid", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev7c effectRadLi|tau time1", 
-            "out_name": "jpdftaureliqmodis", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "parasolRefl": {
-            "modeling_realm": "atmos", 
-            "standard_name": "toa_bidirectional_reflectance", 
-            "units": "1.0", 
-            "cell_methods": "area: mean time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "PARASOL Reflectance", 
-            "comment": "Simulated reflectance from PARASOL as seen at the top of the atmosphere for 5 solar zenith angles. Valid only over ocean and for one viewing direction (viewing zenith angle of 30 degrees and relative azimuth angle 320 degrees).", 
-            "dimensions": "longitude latitude sza5 time1", 
-            "out_name": "parasolRefl", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "psl": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_pressure_at_sea_level", 
-            "units": "Pa", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Sea Level Pressure", 
-            "comment": "Sea Level Pressure", 
-            "dimensions": "longitude latitude time1", 
-            "out_name": "psl", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ta7h": {
-            "modeling_realm": "atmos", 
-            "standard_name": "air_temperature", 
-            "units": "K", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Air Temperature", 
-            "comment": "Air Temperature", 
-            "dimensions": "longitude latitude plev7h time1", 
-            "out_name": "ta7h", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ua7h": {
-            "modeling_realm": "atmos", 
-            "standard_name": "eastward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Eastward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev7h time1", 
-            "out_name": "ua7h", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ua850": {
-            "modeling_realm": "atmos", 
-            "standard_name": "eastward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Eastward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude time1 p850", 
-            "out_name": "ua850", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "va7h": {
-            "modeling_realm": "atmos", 
-            "standard_name": "northward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Northward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude plev7h time1", 
-            "out_name": "va7h", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "va850": {
-            "modeling_realm": "atmos", 
-            "standard_name": "northward_wind", 
-            "units": "m s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Northward Wind", 
-            "comment": "", 
-            "dimensions": "longitude latitude time1 p850", 
-            "out_name": "va850", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "wap7h": {
-            "modeling_realm": "atmos", 
-            "standard_name": "lagrangian_tendency_of_air_pressure", 
-            "units": "Pa s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "omega (=dp/dt)", 
-            "comment": "Omega (vertical velocity in pressure coordinates, positive downwards)", 
-            "dimensions": "longitude latitude plev7h time1", 
-            "out_name": "wap7h", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }
-    }
-}
diff --git a/TestTables/CMIP6_emDaypt.json b/TestTables/CMIP6_emDaypt.json
deleted file mode 100644
index 41533b9..0000000
--- a/TestTables/CMIP6_emDaypt.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-    "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table emDaypt", 
-        "realm": "atmos", 
-        "frequency": "day", 
-        "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
-        "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "1.00000", 
-        "generic_levels": "", 
-        "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
-    }, 
-    "variable_entry": {
-        "prhmax": {
-            "modeling_realm": "atmos", 
-            "standard_name": "precipitation_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Daily Maximum Hourly Precipitation Rate", 
-            "comment": "", 
-            "dimensions": "longitude latitude time1", 
-            "out_name": "prhmax", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "prmax": {
-            "modeling_realm": "atmos", 
-            "standard_name": "precipitation_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Precipitation maximum", 
-            "comment": "Maximum instantaneous precipitation", 
-            "dimensions": "longitude latitude time1", 
-            "out_name": "prmax", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }
-    }
-}
diff --git a/TestTables/CMIP6_emFx.json b/TestTables/CMIP6_emFx.json
deleted file mode 100644
index 11edacd..0000000
--- a/TestTables/CMIP6_emFx.json
+++ /dev/null
@@ -1,171 +0,0 @@
-{
-    "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table emFx", 
-        "realm": "atmos", 
-        "frequency": "fx", 
-        "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
-        "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "0.00000", 
-        "generic_levels": "", 
-        "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
-    }, 
-    "variable_entry": {
-        "rld": {
-            "modeling_realm": "atmos", 
-            "standard_name": "downwelling_longwave_flux_in_air", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Downwelling Longwave Radiation", 
-            "comment": "Downwelling Longwave Radiation (includes the fluxes at the surface and TOA)", 
-            "dimensions": "alevel spectband time1", 
-            "out_name": "rld", 
-            "type": "real", 
-            "positive": "down", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rlu": {
-            "modeling_realm": "atmos", 
-            "standard_name": "upwelling_longwave_flux_in_air", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Upwelling Longwave Radiation", 
-            "comment": "Upwelling longwave radiation (includes the fluxes at the surface and TOA)", 
-            "dimensions": "alevel spectband time1", 
-            "out_name": "rlu", 
-            "type": "real", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rsd": {
-            "modeling_realm": "atmos", 
-            "standard_name": "downwelling_shortwave_flux_in_air", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Downwelling Shortwave Radiation", 
-            "comment": "Downwelling shortwave radiation (includes the fluxes at the surface and top-of-atmosphere)", 
-            "dimensions": "alevel spectband time1", 
-            "out_name": "rsd", 
-            "type": "real", 
-            "positive": "down", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "rsu": {
-            "modeling_realm": "atmos", 
-            "standard_name": "upwelling_shortwave_flux_in_air", 
-            "units": "W m-2", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Upwelling Shortwave Radiation", 
-            "comment": "Upwelling shortwave radiation  (includes also the fluxes at the surface and top of atmosphere)", 
-            "dimensions": "alevel spectband time1", 
-            "out_name": "rsu", 
-            "type": "real", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sftflf": {
-            "modeling_realm": "landIce", 
-            "standard_name": "floating_ice_shelf_area_fraction", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Floating Ice Shelf  Area Fraction", 
-            "comment": "Fraction of grid cell covered by floating ice shelf, the component of the ice sheet that is flowing over seawater", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "sftflf", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sftgif": {
-            "modeling_realm": "land", 
-            "standard_name": "land_ice_area_fraction", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Fraction of Grid Cell Covered with Glacier", 
-            "comment": "Fraction of grid cell covered by land ice (ice sheet, ice shelf, ice cap, glacier)", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "sftgif", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "sftgrf": {
-            "modeling_realm": "landIce", 
-            "standard_name": "grounded_ice_sheet_area_fraction", 
-            "units": "%", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Grounded Ice Sheet  Area Fraction", 
-            "comment": "Fraction of grid cell covered by grounded ice sheet", 
-            "dimensions": "longitude latitude time", 
-            "out_name": "sftgrf", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "spectlower": {
-            "modeling_realm": "atmos", 
-            "standard_name": "band_lower_bound", 
-            "units": "cm-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Lower frequency bound of band", 
-            "comment": "", 
-            "dimensions": "spectband time1", 
-            "out_name": "spectlower", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "spectupper": {
-            "modeling_realm": "atmos", 
-            "standard_name": "band_upper_bound", 
-            "units": "cm-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "", 
-            "long_name": "Upper frequency bound of band", 
-            "comment": "", 
-            "dimensions": "spectband time1", 
-            "out_name": "spectupper", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }
-    }
-}
diff --git a/TestTables/CMIP6_emMonpt.json b/TestTables/CMIP6_emMonpt.json
deleted file mode 100644
index 836138f..0000000
--- a/TestTables/CMIP6_emMonpt.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-    "Header": {
-        "data_specs_version": "01.beta.45", 
-        "table_id": "Table emMonpt", 
-        "realm": "atmos", 
-        "frequency": "mon", 
-        "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
-        "missing_value": "1e20", 
-        "product": "output", 
-        "approx_interval": "30.00000", 
-        "generic_levels": "", 
-        "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
-    }, 
-    "variable_entry": {
-        "prhmax": {
-            "modeling_realm": "atmos", 
-            "standard_name": "precipitation_flux", 
-            "units": "kg m-2 s-1", 
-            "cell_methods": "time: point", 
-            "cell_measures": "area: areacella", 
-            "long_name": "Daily Maximum Hourly Precipitation Rate", 
-            "comment": "", 
-            "dimensions": "longitude latitude time1", 
-            "out_name": "prhmax", 
-            "type": "", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }
-    }
-}
diff --git a/TestTables/CMIP6_excerpts.json b/TestTables/CMIP6_excerpts.json
deleted file mode 100644
index 23fe99c..0000000
--- a/TestTables/CMIP6_excerpts.json
+++ /dev/null
@@ -1,295 +0,0 @@
-{
-    "Header": {
-        "mip_era":     "CMIP6", 
-        "approx_interval": "30.00000", 
-        "realm": "atmos", 
-        "product": "output", 
-        "cmor_version": "3.0", 
-        "Conventions": "CF-1.6 CMIP-6.0", 
-        "frequency": "mon", 
-        "table_id": "Table Amon", 
-        "data_specs_version": "3.0", 
-        "generic_levels": "alevel alevhalf", 
-        "missing_value": "1e20", 
-        "table_date": "01 April 2016"
-    }, 
-    "axis_entry": {
-        "forecast": {
-            "stored_direction": "increasing",
-            "must_have_bounds": "no",
-            "long_name": "ensemble time axis",
-            "standard_name": "time",
-            "out_name": "forecast",
-            "type": "double",
-            "units": "days since 1900-01-01",
-            "value": "0.0", 
-            "axis": "T"
-        },
-        "plev17": {
-            "requested": [
-                "100000.", 
-                "92500.", 
-                "85000.", 
-                "70000.", 
-                "60000.", 
-                "50000.", 
-                "40000.", 
-                "30000.", 
-                "25000.", 
-                "20000.", 
-                "15000.", 
-                "10000.", 
-                "7000.", 
-                "5000.", 
-                "3000.", 
-                "2000.", 
-                "1000."
-            ], 
-            "stored_direction": "decreasing", 
-            "z_factors": "", 
-            "positive": "down", 
-            "must_have_bounds": "no", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "pressure", 
-            "standard_name": "air_pressure", 
-            "value": "", 
-            "out_name": "plev", 
-            "type": "double", 
-            "units": "Pa", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "0.001", 
-            "valid_max": "", 
-            "axis": "Z"
-        }, 
-        "height2m": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "up", 
-            "must_have_bounds": "no", 
-            "valid_min": "1.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "height", 
-            "standard_name": "height", 
-            "value": "2.0", 
-            "out_name": "height", 
-            "type": "double", 
-            "units": "m", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "10.0", 
-            "axis": "Z"
-        }, 
-        "latitude": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "yes", 
-            "valid_min": "-90.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "latitude", 
-            "standard_name": "latitude", 
-            "value": "", 
-            "out_name": "lat", 
-            "type": "double", 
-            "units": "degrees_north", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "90.0", 
-            "axis": "Y"
-        }, 
-        "longitude": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "yes", 
-            "valid_min": "0.0", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "longitude", 
-            "standard_name": "longitude", 
-            "value": "", 
-            "out_name": "lon", 
-            "type": "double", 
-            "units": "degrees_east", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "360.0", 
-            "axis": "X"
-        }, 
-        "time": {
-            "requested": "", 
-            "stored_direction": "increasing", 
-            "z_factors": "", 
-            "positive": "", 
-            "must_have_bounds": "yes", 
-            "valid_min": "", 
-            "requested_bounds": "", 
-            "z_bounds_factors": "", 
-            "bounds_values": "", 
-            "long_name": "time", 
-            "standard_name": "time", 
-            "value": "", 
-            "out_name": "time", 
-            "type": "double", 
-            "units": "days since ?", 
-            "formula": "", 
-            "climatology": "", 
-            "tolerance": "", 
-            "valid_max": "", 
-            "axis": "T"
-        } 
-    }, 
-    "variable_entry": {
-        "rsutcs": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "up", 
-            "valid_min": "0", 
-            "long_name": "TOA Outgoing Clear-Sky Shortwave Radiation", 
-            "standard_name": "toa_outgoing_shortwave_flux_assuming_clear_sky", 
-            "modeling_realm": "atmos", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacella", 
-            "ok_min_mean_abs": "54.7", 
-            "units": "W m-2", 
-            "out_name": "rsutcs", 
-            "type": "real", 
-            "valid_max": "444", 
-            "ok_max_mean_abs": "73.36"
-        }, 
-        "tas": {
-            "comment": "near-surface (usually, 2 meter) air temperature", 
-            "dimensions": "longitude latitude time height2m", 
-            "positive": "", 
-            "valid_min": "180.6", 
-            "long_name": "Near-Surface Air Temperature", 
-            "standard_name": "air_temperature", 
-            "modeling_realm": "atmos", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacella", 
-            "ok_min_mean_abs": "262.4", 
-            "units": "K", 
-            "out_name": "tas", 
-            "type": "real", 
-            "valid_max": "335.1", 
-            "ok_max_mean_abs": "293"
-        }, 
-        "tasforecast": {
-            "comment": "near-surface (usually, 2 meter) air temperature", 
-            "dimensions": "longitude latitude time height2m forecast", 
-            "positive": "", 
-            "valid_min": "180.6", 
-            "long_name": "Near-Surface Air Temperature", 
-            "standard_name": "air_temperature", 
-            "modeling_realm": "atmos", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacella", 
-            "ok_min_mean_abs": "262.4", 
-            "units": "K", 
-            "out_name": "tas", 
-            "type": "real", 
-            "valid_max": "335.1", 
-            "ok_max_mean_abs": "293"
-        }, 
-        "rldscs": {
-            "comment": "", 
-            "dimensions": "longitude latitude time", 
-            "positive": "down", 
-            "valid_min": "33.55", 
-            "long_name": "Surface Downwelling Clear-Sky Longwave Radiation", 
-            "standard_name": "surface_downwelling_longwave_flux_in_air_assuming_clear_sky", 
-            "modeling_realm": "atmos", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacella", 
-            "ok_min_mean_abs": "238.6", 
-            "units": "W m-2", 
-            "out_name": "rldscs", 
-            "type": "real", 
-            "valid_max": "543.6", 
-            "ok_max_mean_abs": "293.8"
-        }, 
-        "n2oglobal": {
-            "comment": "", 
-            "dimensions": "time", 
-            "positive": "", 
-            "valid_min": "", 
-            "long_name": "Global Mean Mole Fraction of N2O", 
-            "standard_name": "mole_fraction_of_nitrous_oxide_in_air", 
-            "modeling_realm": "atmos atmosChem", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "", 
-            "ok_min_mean_abs": "", 
-            "units": "1e-09", 
-            "out_name": "n2oglobal", 
-            "type": "real", 
-            "valid_max": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "ts": {
-            "comment": "'skin' temperature (i.e., SST for open ocean)", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "176.8", 
-            "long_name": "Surface Temperature", 
-            "standard_name": "surface_temperature", 
-            "modeling_realm": "atmos", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacella", 
-            "ok_min_mean_abs": "262.8", 
-            "units": "K", 
-            "out_name": "ts", 
-            "type": "real", 
-            "valid_max": "339.6", 
-            "ok_max_mean_abs": "293.3"
-        }, 
-        "clt": {
-            "comment": "cloud area fraction", 
-            "dimensions": "longitude latitude time", 
-            "positive": "", 
-            "valid_min": "-0.0001822", 
-            "long_name": "Total Cloud Fraction", 
-            "standard_name": "cloud_area_fraction_in_atmosphere_layer", 
-            "modeling_realm": "atmos", 
-            "cell_measures": "time: mean", 
-            "cell_methods": "area: areacella", 
-            "ok_min_mean_abs": "39.37", 
-            "units": "1.0", 
-            "out_name": "clt", 
-            "type": "real", 
-            "valid_max": "105", 
-            "ok_max_mean_abs": "84.98"
-        }, 
-        "tasmax": {
-            "comment": "maximum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: max')", 
-            "dimensions": "longitude latitude time height2m", 
-            "positive": "", 
-            "valid_min": "181.9", 
-            "long_name": "Daily Maximum Near-Surface Air Temperature", 
-            "standard_name": "air_temperature", 
-            "modeling_realm": "atmos", 
-            "cell_measures": "time: maximum within days time: mean over days", 
-            "cell_methods": "area: areacella", 
-            "ok_min_mean_abs": "264.9", 
-            "units": "K", 
-            "out_name": "tasmax", 
-            "type": "real", 
-            "valid_max": "341.9", 
-            "ok_max_mean_abs": "294"
-        }
-    }
-}
diff --git a/TestTables/CMIP6_expt_list_042716-1.csv b/TestTables/CMIP6_expt_list_042716-1.csv
deleted file mode 100644
index e88fb39..0000000
--- a/TestTables/CMIP6_expt_list_042716-1.csv
+++ /dev/null
@@ -1 +0,0 @@
-,Description of key columns:,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,"""minimal model configuration"" lists minimal (combination) of components needed to carry out the experiment.  It is understood that it is o.k. to run these experiments with additional components (like interactive chemistry, carbon cycle, or ice-sheet model).  So enter, for example, ""AOGCM CHEM"" *only* if an interactive chemistry model is required in a coupled model experiment.  Similarly enter ""AOGCM BGM"" only if a biogechemical model is required in a coupled run.  Reserve the  [...]
� AGCM (atmospheric general circulation model, with land model), 
� OGCM (ocean general circulation model with sea-ice model), 
� AOGCM (atmosphere-ocean global climate model), 
� LAND (the land model component of a model but run �offline�), 
� ISM (ice-sheet model), 
",,,,,,,,,,,,,,,,,,,,,,,
,column G:    ,,,,"� BGM (biogeochemical  model that at the very least accounts for carbon reservoirs and fluxes in the atmosphere, terrestrial biosphere, and ocean; when run with atmospheric concentration calculated, specify ESM rather than ""AOGCM BCM""), 
� RAD (radiation code component of atmospheric model but run �offline�),
� CHEM (for models that calculate ozone, rather than rely on prescribed concentrations,
� AER (for models that calculate tropospheric aerosols driven by emissions fluxes, rather than relying on prescribed concentrations),
� SLAB (a slab-ocean model).      
� ESM (AOGCM couple with a BCM and run with atmospheric concentration calculated, based on emissions, etc.;  for concentration-driven runs with a BCM, specify ""AOGCM BCM"")                                                    ",,,,,,,,,,,,,,,,,,,,,,,
,column O:,,,,"The experiment_id is used in constructing file names, and providing unique identifiers of experiments within CMIP6.",,,,,,,,,,,,,,,,,,,,,,,
,column V:,,,,Transcribe the experiment labels you plan to use in the final version of your GMD article into this column.  For those of you who  are using the experiment_id exclusively as your official labels in your GMD article column O and V will be the same. ,,,,,,,,,,,,,,,,,,,,,,,
,column W:,,,,Enter a short title that reminds users already familiar with your MIP experiments what experiment conditions are imposed.  Provide titles in red-shaded cells and check all other titles.,,,,,,,,,,,,,,,,,,,,,,,
,column X:,,,,"parent_experiment_id is defined as the experiment_id of the simulation that  provides the initial condiions for an experiment, but only if those initial conditions matter.  Especially check red-shaded cells.",,,,,,,,,,,,,,,,,,,,,,,
,column AA:,,,,"In this column, enter answers to questions, ask questions and provide comments/notes.  Please respond to issues raised in boxes shaded red.",,,,,,,,,,,,,,,,,,,,,,,
,hidden columns:,,,,"You may ignore all the ""hidden"" columns on this spread sheet at this time, even if the information is incorrect.  Also there is no need to correct columns B and F; they are included just to help you identify the experiment (but some of them may be somewhat wrong).  ",,,,,,,,,,,,,,,""","" means ""and""",""","" means ""and/or""",,,,,,,
,"IF YOU MAKE ANY CHANGES TO A CELL, PLEASE  FILL THE CELL WITH YELLOW AS DONE HERE.",,,,,,,,,,,,,,,,,,,CHEM and AER should not appear ,,,,,,,,
,,,,,,,activity_id,,,,,,,,segments of experiment_id,,,,,,,,experiment,,,,,
comment,description,egid,endy,ensz,original label,minimal model configuration,mip,nstart,ntot,starty,tier,uid,yps,experiment_id,seg-1,seg-2,seg-3,sub_experiment_id,sub_experiment,required source_type elements,additional allowed source_type elements,experiment label used in final version of GMD article,experiment title,parent_ experiment_id,parent_sub_ experiment_id,parent_activity_id,Questions/Comments/Notes,
,"Historical WMGHG and halocarbons concentrations,  1850 NTCF emissions",f19ad380-c478-11e5-868e-ac72891c3257,2014,3,HISTghg,AOGCM CHEM,AerChemMIP,1,495,1850,1,f19ad10a-c478-11e5-868e-ac72891c3257,165,hist-piNTCF,hist,piNTCF,,none,none,AOGCM AER CHEM,,hist-piNTCF,"historical forcing, but with pre-industrial NTCF emissions",piControl,none,CMIP,,
,"Historical WMGHG, halocarbon concentrations and O3 precursor emissions, 1850 aerosol precursor emissions",f19ad380-c478-11e5-868e-ac72891c3257,2014,3,HISTghgntcf,AOGCM AER,AerChemMIP,1,495,1850,2,f19add76-c478-11e5-868e-ac72891c3257,165,hist-piAer,hist,piAer,,none,none,AOGCM AER,CHEM,hist-piAer,"historical forcing, but with pre-industrial aerosol emissions",piControl,none,CMIP,,
,"Historical WMGHG concentrations and NTCF emissions, 1950 halocarbon concentrations, start 1950",f19ad380-c478-11e5-868e-ac72891c3257,2014,3,HISTghgntcfhc1950,AOGCM CHEM,AerChemMIP,1,195,1950,1,f19ad862-c478-11e5-868e-ac72891c3257,65,hist-1950HC,hist,1950HC,,none,none,AOGCM AER CHEM,,hist-1950HC,"historical forcing, but with1950s halocarbon concentrations; initialized in 1950",historical,none,CMIP,,
,Historical transient with SSTs prescribed from historical,,2014,1,,AGCM AER,AerChemMIP,1,165,1850,1,,,histSST,histSST,,,none,none,AGCM AER,CHEM,histSST,historical prescribed SSTs and historical forcing,,,,,
,"Historical WMGHG concentrations and halocarbons emissions, 1850 NTCF emissions, prescribed SSTs",f19ae4b0-c478-11e5-868e-ac72891c3257,2014,1,HISTsstghgntcf1850,AGCM CHEM,AerChemMIP,1,165,1850,1,f19ae99c-c478-11e5-868e-ac72891c3257,165,histSST-piNTCF,histSST,piNTCF,,none,none,AGCM AER CHEM,,histSST-piNTCF,"historical SSTs and historical forcing, but with pre-industrial NTCF emissions",,,,,
,"Historical WMGHG, halocarbon concentrations and tropospheric ozone precursors emissions, 1850 aerosol precursor emissions, prescribed SSTs",f19ae4b0-c478-11e5-868e-ac72891c3257,2014,3,HISTsstghgntcf,AGCM AER,AerChemMIP,1,495,1850,2,f19af37e-c478-11e5-868e-ac72891c3257,165,histSST-piAer,histSST,piAer,,none,none,AGCM AER,CHEM,histSST-piAer,"historical SSTs and historical forcing, but with pre-industrial aerosol emissions",,,,,
,"Historical WMGHG, halocarbon concentrations and aerosol precursor emissions, 1850 tropospheric ozone precursors  emissions, prescribed SSTs",f19ae4b0-c478-11e5-868e-ac72891c3257,2014,1,HISTsstghg,AGCM CHEM,AerChemMIP,1,165,1850,2,f19ae258-c478-11e5-868e-ac72891c3257,165,histSST-piO3,histSST,piO3,,none,none,AGCM AER CHEM,,histSST-piO3,"historical SSTs and historical forcing, but with pre-industrial ozone precursor emissions",,,,,
,"Historical WMGHG concentrations and NTCF emissions, 1950 halocarbon concentrations",f19ae4b0-c478-11e5-868e-ac72891c3257,2014,1,HISTsstghgntcfhc1950,AGCM CHEM,AerChemMIP,1,65,1950,1,f19aee88-c478-11e5-868e-ac72891c3257,65,histSST-1950HC,histSST,1950HC,,none,none,AGCM AER CHEM,,histSST-1950HC,"historical SSTs and historical forcing, but with1950 halocarbon concentrations",,,,,
,"Historical (non-CH4) WMGHG concentrations and NTCF emissions, 1850 CH4 concentrations",f19b17d2-c478-11e5-868e-ac72891c3257,2014,1,WMFORCch4,AGCM CHEM,AerChemMIP,1,165,1850,1,f19b166a-c478-11e5-868e-ac72891c3257,165,histSST-piCH4,histSST,piCH4,,none,none,AGCM AER CHEM,,histSST-piCH4,"historical SSTs and historical forcing, but with pre-industrial methane concentrations",,,,,
,"Historical (non-N2O) WMGHG concentrations and NTCF emissions, 1850 N2O concentrations",f19b17d2-c478-11e5-868e-ac72891c3257,2014,1,WMFORCn20,AGCM CHEM,AerChemMIP,1,165,1850,2,f19b1aca-c478-11e5-868e-ac72891c3257,165,histSST-piN2O,histSST,piN2O,,none,none,AGCM AER CHEM,,histSST-piN2O,"historical SSTs and historical forcings, but with pre-industrial N2O concentrations",,,,,
,Future scenario with high radiative forcing by the end of century. Reaches about 7.0 W/m2 by 2100; fills gap in RCP forcing pathways between 6.0 and 8.5 W/m2. Concentration-driven.,f19af98c-c478-11e5-868e-ac72891c3257,2055,3,NtcfrespSsp37,AOGCM AER,"ScenarioMIP, AerChemMIP",1,123,2015,1,f19af806-c478-11e5-868e-ac72891c3257,41,ssp370,ssp370,,,none,none,AOGCM AER,CHEM,ssp370,Gap-filling scenario reaching 7.0 based on SSP3,historical,none,CMIP,ScenarioMIP also wants this done.,
,Future SSP3-7.0 with reduced NTCF emissions,f19af98c-c478-11e5-868e-ac72891c3257,2055,3,NtcfrespSsp37ntcf,AOGCM AER,AerChemMIP,1,41,2015,1,f19afd6a-c478-11e5-868e-ac72891c3257,41,ssp370-lowNTCF,ssp370,lowNTCF,,none,none,AOGCM AER,CHEM,ssp370-lowNTCF,"SSP3-7.0, with low NTCF emissions",historical,none,CMIP,,
,"Future SSP3-7.0, with SSTs prescribed  from ssp370",f19b0256-c478-11e5-868e-ac72891c3257,2055,1,NTCFRESPcntrl,AGCM AER,AerChemMIP,1,41,2015,1,f19b00e4-c478-11e5-868e-ac72891c3257,41,ssp370SST,ssp370SST,,,none,none,AGCM AER,CHEM,ssp370SST,"SSP3-7.0, with  SSTs prescribed from ssp370",,,,,
,"Future SSP3-7.0 with reduced NTCF emissions, prescribed SSTs",f19b0256-c478-11e5-868e-ac72891c3257,2055,1,NTCFRESPntcf,AGCM CHEM,AerChemMIP,1,41,2015,1,f19b0846-c478-11e5-868e-ac72891c3257,41,ssp370SST-lowNTCF,ssp370SST,lowNTCF,,none,none,AGCM AER CHEM,,ssp370SST-lowNTCF,"SSP3-7.0, prescribed SSTs, with low NTCF emissions",,,,,
,"Future SSP3-7.0 with reduced aerosol emissions (from ssp370-lowNTCF), prescribed SSTs",f19b0256-c478-11e5-868e-ac72891c3257,2055,1,NTCFRESPnox,AGCM AER,AerChemMIP,1,41,2015,1,f19b0846-c478-11e5-868e-ac72891c3257,41,ssp370SST-lowAer,ssp370SST,lowAer,,none,none,AGCM AER,CHEM,ssp370SST-lowAer,"SSP3-7.0, prescribed SSTs, with low aerosol emissions",,,,,
,"Future SSP3-7.0 with reduced black carbon emissions, prescribed SSTs",f19b0256-c478-11e5-868e-ac72891c3257,2055,1,NTCFRESPbc,AGCM AER,AerChemMIP,1,41,2015,1,f19b054e-c478-11e5-868e-ac72891c3257,41,ssp370SST-lowBC,ssp370SST,lowBC,,none,none,AGCM AER,CHEM,ssp370SST-lowBC,"SSP3-7.0, prescribed SSTs, with low black carbon emissions",,,,,
,"Future SSP3-7.0 with reduced ozone precursor emisions (from ssp370-lowNTCF), prescribed SSTs",f19b0256-c478-11e5-868e-ac72891c3257,2055,1,NTCFRESPo3,AGCM CHEM,AerChemMIP,1,41,2015,1,f19b0b34-c478-11e5-868e-ac72891c3257,41,ssp370SST-lowO3,ssp370SST,lowO3,,none,none,AGCM AER CHEM,,ssp370SST-lowO3,"SSP3-7.0, prescribed SSTs, with low ozone precursor emissions",,,,,
,"Future SSP3-7.0 with reduced CH4 concentrations, prescribed SSTs",f19b0256-c478-11e5-868e-ac72891c3257,2055,1,NTCFRESPo3ch4,AGCM CHEM,AerChemMIP,1,41,2015,1,f19b0ff8-c478-11e5-868e-ac72891c3257,41,ssp370SST-lowCH4,ssp370SST,lowCH4,,none,none,AGCM AER CHEM,,ssp370SST-lowCH4,"SSP3-7.0, prescribed SSTs, with low methane concentrations",,,,,
," Future SSP3-7.0 with low land use change (from ssp126), prescribed SSTs",,2055,1,,AGCM AER,AerChemMIP,1,41,2015,1,,41,ssp370SST-lowLu,ssp370SST,lowLu,,none,none,AGCM AER,CHEM,ssp370SST-lowLu,"SSP3-7.0, prescribed SSTs, with low land-use change",,,,,
,1850 control ,f19a9f3c-c478-11e5-868e-ac72891c3257,1850,1,RFDOCcntrl,AGCM AER,"RFMIP, AerChemMIP",1,30,1850,1,f19a9bf4-c478-11e5-868e-ac72891c3257,30,piClim-control,piClim,control,,none,none,AGCM AER,CHEM,piClim-control,pre-industrial with prescribed climatological SSTs,,,,RFMIP also wants this done.,
,Perturbation from 1850 control using 2014 aerosol and ozone precursor emissions,f19a9f3c-c478-11e5-868e-ac72891c3257,1850,1,RFDOCntcf,AGCM CHEM,AerChemMIP,1,30,1850,1,f19aa64e-c478-11e5-868e-ac72891c3257,30,piClim-NTCF,piClim,NTCF,,none,none,AGCM AER CHEM,,piClim-NTCF,"pre-industrial climatolgical SSTs and forcing, but with 2014 NTCF emissions",,,,,
,Perturbation from 1850 control using 2014 aerosol emissions,f19a9f3c-c478-11e5-868e-ac72891c3257,1850,1,RFDOCbc,AGCM AER,AerChemMIP,1,30,1850,2,f19aac20-c478-11e5-868e-ac72891c3257,30,piClim-aer,piClim,aer,,none,none,AGCM AER,CHEM,piClim-aer,"pre-industrial climatological SSTs and forcing, but 2014 aerosol emissions",,,,,
,Perturbation from 1850 control using 2014 BC emissions,f19a9f3c-c478-11e5-868e-ac72891c3257,1850,1,RFDOCbc,AGCM AER,AerChemMIP,1,30,1850,2,f19aac20-c478-11e5-868e-ac72891c3257,30,piClim-BC,piClim,BC,,none,none,AGCM AER,CHEM,piClim-BC,"pre-industrial climatological SSTs and forcing, but with 2014 black carbon emissions",,,,,
,Perturbation from 1850 control using 2014 ozone precursor emissions,f19a9f3c-c478-11e5-868e-ac72891c3257,1850,1,RFDOCo3,AGCM CHEM,AerChemMIP,1,30,1850,2,f19ab2e2-c478-11e5-868e-ac72891c3257,30,piClim-O3,piClim,O3,,none,none,AGCM AER CHEM,,piClim-O3,"pre-industrial climatological SSTs and forcing, but with 2014 ozone precursor emissions",,,,,
,Perturbation from 1850 control using 2014 CH4 concentrations,f19a9f3c-c478-11e5-868e-ac72891c3257,1850,1,RFDOCch4,AGCM CHEM,AerChemMIP,1,30,1850,2,f19ab85a-c478-11e5-868e-ac72891c3257,30,piClim-CH4,piClim,CH4,,none,none,AGCM AER CHEM,,piClim-CH4,"pre-industrial climatological SSTs and forcing, but with 2014 methane concentrations (including chemistry)",,,,,
,Perturbation from 1850 control using 2014 N2O concentrations,f19a9f3c-c478-11e5-868e-ac72891c3257,1850,1,RFDOCn2o,AGCM CHEM,AerChemMIP,1,30,1850,2,f19abd64-c478-11e5-868e-ac72891c3257,30,piClim-N2O,piClim,N2O,,none,none,AGCM AER CHEM,,piClim-N2O,"pre-industrial climatological SSTs and forcing, but with 2014 N2O concentrations (including chemistry)",,,,,
,Perturbation from 1850 control using 2014 halocarbon concentrations,f19a9f3c-c478-11e5-868e-ac72891c3257,1850,1,RFDOCods,AGCM CHEM,AerChemMIP,1,30,1850,2,f19ac246-c478-11e5-868e-ac72891c3257,30,piClim-HC,piClim,HC,,none,none,AGCM AER CHEM,,piClim-HC,"pre-industrial climatological SSTs and forcing, but with 2014 halocarbon concentrations (including chemistry)",,,,,
,Perturbation from 1850 control using 2014 NOx emissions,f19a9f3c-c478-11e5-868e-ac72891c3257,1850,1,RFDOCnox,AGCM CHEM,AerChemMIP,1,30,1850,3,f19ac728-c478-11e5-868e-ac72891c3257,30,piClim-NOX,piClim,NOX,,none,none,AGCM AER CHEM,,piClim-NOX,"pre-industrial climatological SSTs and forcing, but with 2014 NOx emissions",,,,,
,Perturbation from 1850 control using 2014 CO/VOC emissions,f19a9f3c-c478-11e5-868e-ac72891c3257,1850,1,RFDOCcovoc,AGCM CHEM,AerChemMIP,1,30,1850,3,f19acc0a-c478-11e5-868e-ac72891c3257,30,piClim-VOC,piClim,VOC,,none,none,AGCM AER CHEM,,piClim-VOC,"pre-industrial climatological SSTs and forcing, but with 2014 VOC emissions",,,,,
,1850 control with doubled dust emissions,f19b1f20-c478-11e5-868e-ac72891c3257,2014,1,FDBCKdust,AGCM AER,AerChemMIP,1,30,1850,2,f19b1db8-c478-11e5-868e-ac72891c3257,30,piClim-2xdust,piClim,2xdust,,none,none,AGCM AER,CHEM,piClim-2xdust,"pre-industrial climatological SSTs and forcing, but with doubled emissions of dust",,,,,
,1850 control with doubled sea salt emissions,f19b1f20-c478-11e5-868e-ac72891c3257,2014,1,FDBCKss,AGCM AER,AerChemMIP,1,30,1850,2,f19b2204-c478-11e5-868e-ac72891c3257,30,piClim-2xss,piClim,2xss,,none,none,AGCM AER,CHEM,piClim-2xss,"pre-industrial climatological SSTs and forcing, but with doubled emissions of sea salt",,,,,
,1850 control with doubled emissions of DMS,f19b1f20-c478-11e5-868e-ac72891c3257,1850,1,FDBCKdms,AGCM AER,AerChemMIP,1,30,1850,3,f19b24e8-c478-11e5-868e-ac72891c3257,30,piClim-2xDMS,piClim,2xDMS,,none,none,AGCM AER,CHEM,piClim-2xDMS,"pre-industrial climatological SSTs and forcing, but with doubled emissions of DMS",,,,,
,1850 control with doubled emissions of fires,f19b1f20-c478-11e5-868e-ac72891c3257,1850,1,FDBCKfire,AGCM AER,AerChemMIP,1,30,1850,3,f19b27cc-c478-11e5-868e-ac72891c3257,30,piClim-2xfire,piClim,2xfire,,none,none,AGCM AER,CHEM,piClim-2xfire,"pre-industrial climatological SSTs and forcing, but with doubled emissions from fires",,,,,
,1850 control with doubled emissions of lightning Nox,f19b1f20-c478-11e5-868e-ac72891c3257,1850,1,FDBCKnox,AGCM CHEM,AerChemMIP,1,30,1850,3,f19b2d94-c478-11e5-868e-ac72891c3257,30,piClim-2xNOX,piClim,2xNOX,,none,none,AGCM AER CHEM,,piClim-2xNOX,"pre-industrial climatological SSTs and forcing, but with doubled production of NOX due to lightning",,,,,
,1850 control with doubled emissions of biogenic VOCs,f19b1f20-c478-11e5-868e-ac72891c3257,1850,1,FDBCKvoc,AGCM CHEM,AerChemMIP,1,30,1850,3,f19b2ab0-c478-11e5-868e-ac72891c3257,30,piClim-2xVOC,piClim,2xVOC,,none,none,AGCM AER CHEM,,piClim-2xVOC,"pre-industrial climatological SSTs and forcing, but with doubled emissions of biogenic VOCs",,,,,
,Biogeochemically-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling,f19b34b0-c478-11e5-868e-ac72891c3257,1989,1,esm1pcbgc,AOGCM BGM,C4MIP,1,140,1850,1,f19b3352-c478-11e5-868e-ac72891c3257,140,1pctCO2-bgc,1pctCO2,bgc,,none,none,AOGCM BGM,CHEM AER,,biogeochemically-coupled version of 1 percent per year increasing CO2 experiment,piControl,none,CMIP,,
,"Fully-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling, plus an additional scenario of anthropogenic nitrogen deposition",f19b3dac-c478-11e5-868e-ac72891c3257,1989,1,esm1pccouNdep,AOGCM BGM,C4MIP,1,140,1850,2,f19b43a6-c478-11e5-868e-ac72891c3257,140,1pctCO2Ndep,1pctCO2Ndep,,,none,none,AOGCM BGM,CHEM AER,,1 percent per year increasing CO2 experient with increasing N-deposition,piControl,none,CMIP,,
,"Biogeochemically-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling, plus an additional scenario of anthropogenic nitrogen deposition",f19b3dac-c478-11e5-868e-ac72891c3257,1989,1,esm1pcbgcNdep,AOGCM BGM,C4MIP,1,140,1850,2,f19b409a-c478-11e5-868e-ac72891c3257,140,1pctCO2Ndep-bgc,1pctCO2Ndep,bgc,,none,none,AOGCM BGM,CHEM AER,,biogeochemically-coupled version of 1 percent per year increasing CO2 experiment with increasing N-depositi [...]
,Radiatively-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling,f19b3dac-c478-11e5-868e-ac72891c3257,1989,1,esm1pcrad,AOGCM BGM,C4MIP,1,140,1850,2,f19b3c3a-c478-11e5-868e-ac72891c3257,140,1pctCO2-rad,1pctCO2,rad,,none,none,AOGCM BGM,CHEM AER,,radiatively-coupled version of 1 percent per year increasing CO2 experiment,piControl,none,CMIP,,
,"historical simulation,  biogeochemically-coupled",f19b4806-c478-11e5-868e-ac72891c3257,2014,1,esmhistbgc,AOGCM BGM,C4MIP,1,165,1850,2,f19b469e-c478-11e5-868e-ac72891c3257,165,hist-bgc,hist,bgc,,none,none,AOGCM BGM,CHEM AER,,biogeochemically-coupled version of the simulation of the recent past with CO2 concentration prescribed ,piControl,none,CMIP,,
,Emissions-driven future scenario simulation,f19b3906-c478-11e5-868e-ac72891c3257,2100,1,Esmssp585,ESM,C4MIP,1,85,2015,1,f19b379e-c478-11e5-868e-ac72891c3257,85,esm-ssp585,esm,ssp585,,none,none,ESM,CHEM AER,,update of emission-driven RCP8.5 based on SSP5,esm-historical,none,CMIP,,
,"future scenario simulation,  biogeochemically-coupled",f19b4806-c478-11e5-868e-ac72891c3257,2100,1,Esmssp585bgc,ESM,C4MIP,1,85,2015,2,f19b4ad6-c478-11e5-868e-ac72891c3257,85,ssp585-bgc,ssp585,bgc,,none,none,ESM,CHEM AER,,biogeochemically-coupled version of the updated emission-driven RCP8.5 based on SSP5,esm-historical,none,CMIP,,
,future scenario simulation extension to 2300 biogeochemically-coupled,f19b4806-c478-11e5-868e-ac72891c3257,2300,1,Esmssp585extbgc,ESM,C4MIP,1,200,2101,2,f19b4e96-c478-11e5-868e-ac72891c3257,200,,,,,,none,,CHEM AER,,,,,,extension of ssp585-bgc to year 2300.,
,"Identical to the DECK abrupt-4xCO2, but at 0.5xCO2",f19b6ef8-c478-11e5-868e-ac72891c3257,,1,Abrupt05xco2,AOGCM,CFMIP,1,150,,2,f19b8424-c478-11e5-868e-ac72891c3257,150,abrupt-0p5xCO2,abrupt,0p5xCO2,,none,none,AOGCM,CHEM AER BGM,,,piControl,none,CMIP,,
,"Identical to the DECK abrupt-4xCO2, but at 2xCO2",f19b6ef8-c478-11e5-868e-ac72891c3257,,1,abrupt2xCO2,AOGCM,CFMIP,1,150,,2,f19b8140-c478-11e5-868e-ac72891c3257,150,abrupt-2xCO2,abrupt,2xCO2,,none,none,AOGCM,CHEM AER,,,piControl,none,CMIP,,
,"Conceptually similar to abrupt 4xCO2 DECK experiment, except that the solar constant (not CO2) is abruptly reduced by 4%.",f19b6ef8-c478-11e5-868e-ac72891c3257,,1,abruptSm4,AOGCM,CFMIP,1,150,,2,f19b7e66-c478-11e5-868e-ac72891c3257,150,abrupt-solm4p,abrupt,solm4p,,none,none,AOGCM,CHEM AER,,,piControl,none,CMIP,,
,"Conceptually similar to abrupt 4xCO2 DECK experiment, except that the solar constant (not CO2) is abruptly increased by 4%.",f19b6ef8-c478-11e5-868e-ac72891c3257,,1,abruptSp4,AOGCM,CFMIP,1,150,,2,f19b7b82-c478-11e5-868e-ac72891c3257,150,abrupt-solp4p,abrupt,solp4p,,none,none,AOGCM,CHEM AER,,,piControl,none,CMIP,,
,"This CFMIP amip experiment is the same as the DECK amip experiment, but will contain any additional outputs which are required as control variables for the amip4K, amip4xCO2, amipFuture and amipMinus4K experiments which are not included in the AMIP DECK experiment.  This experiment will not be required if all of the proposed CFMIP variables are included in the AMIP DECK Experiment.",f19b535a-c478-11e5-868e-ac72891c3257,2014,1,amip,AGCM,CFMIP,11,36,1979,1,f19b51f2-c478-11e5-868e-ac72891c [...]
,As CMIP5/CFMIP-2.  AMIP experiment where SSTs are subject to a uniform warming of 4K.,f19b535a-c478-11e5-868e-ac72891c3257,2014,1,amip4K,AGCM,CFMIP,1,36,1979,1,f19b565c-c478-11e5-868e-ac72891c3257,36,amip-p4K,amip,p4K,,none,none,AGCM,CHEM AER,,AMIP plus 4K SSTs,,,,changed name from amip4K in CMIP5  to parallel other expts. in CMIP6.,
,As CMIP5/CFMIP-2.  AMIP experiment where SSTs are held at control values and the CO2 seen by the radiation scheme is quadrupled.,f19b535a-c478-11e5-868e-ac72891c3257,2014,1,amip4xCO2,AGCM,CFMIP,1,36,1979,1,f19b5954-c478-11e5-868e-ac72891c3257,36,amip-4xCO2,amip,4xCO2,,none,none,AGCM,CHEM AER,,control SSTs with 4xCO2,,,,"Is it o.k. to change title to:  ""AMIP SSTs with 4xCO2""",
,"As CMIP5/CFMIP-2.  AMIP experiment where SSTs are subject to a composite SST warming pattern derived from coupled models, scaled to a global mean of 4K.",f19b5db4-c478-11e5-868e-ac72891c3257,2014,1,amipFuture,AGCM,CFMIP,1,36,1979,1,f19b5c4c-c478-11e5-868e-ac72891c3257,36,amip-pat4K,amip,pat4K,,none,none,AGCM,CHEM AER,,AMIP plus warming pattern SSTs,,,,,
,AMIP experiment where SSTs are subject to a uniform cooling of 4K.,f19b5db4-c478-11e5-868e-ac72891c3257,2014,1,amipMinus4K,AGCM,CFMIP,1,36,1979,2,f19b6a98-c478-11e5-868e-ac72891c3257,36,amip-m4K,amip,m4K,,none,none,AGCM,CHEM AER,,AMIP minus 4K SSTs,,,,,
,Identical to standard AMIP experiment but from 1870-present with constant pre-industrial forcing levels (anthro & natural),f19b6ef8-c478-11e5-868e-ac72891c3257,2014,1,amipPiForcing,AGCM,CFMIP,1,145,1870,2,f19b874e-c478-11e5-868e-ac72891c3257,145,amip-piForcing,amip,piForcing,,none,none,AGCM,CHEM AER,,AMIP SSTs with control forcing,,,,,
,"Same as amip, but a patterned SST anomaly is applied on top of the monthly-varying amip SSTs. This anomaly is a monthly climatology, taken from each model's own abrupt4xCO2 run minus piControl (using the mean of years 111-140 of abrupt4xCO2, and the parallel 30-year section of piControl). CO2 is quadrupled, and the increase in CO2 is seen by both the radiation scheme and vegetation.",f19b8bae-c478-11e5-868e-ac72891c3257,2014,1,amipTot,AGCM,CFMIP,1,36,1979,2,f19b9d92-c478-11e5-868e-ac728 [...]
,As CMIP5/CFMIP-2.  Aquaplanet experiment where SSTs are subject to a uniform warming of 4K.,f19b5db4-c478-11e5-868e-ac72891c3257,1988,1,aqua4K,AGCM,CFMIP,1,10,1979,1,f19b639a-c478-11e5-868e-ac72891c3257,10,aqua-p4K,aqua,p4K,,none,none,AGCM,CHEM AER,,aquaplanet plus 4K SSTs,,,,"changed name from ""aqua4K"" in CMIP5 to ""aqua-p4K"" in CMIP6. to parallel names of other experiments.",
,As CMIP5/CFMIP-2.  Aquaplanet experiment where SSTs are held at control values and the CO2 seen by the radiation scheme is quadrupled.,f19b5db4-c478-11e5-868e-ac72891c3257,1988,1,aqua4xCO2,AGCM,CFMIP,1,10,1979,1,f19b6692-c478-11e5-868e-ac72891c3257,10,aqua-4xCO2,aqua,4xCO2,,none,none,AGCM,CHEM AER,,aquaplanet with 4xCO2,,,,,
,As CMIP5/CFMIP-2.  Aquaplanet (no land) experiment with no seasonal cycle forced with specified zonally symmetric SSTs.,f19b5db4-c478-11e5-868e-ac72891c3257,1988,1,aquaControl,AGCM,CFMIP,1,10,1979,1,f19b60a2-c478-11e5-868e-ac72891c3257,10,aqua-control,aqua,control,,none,none,AGCM,CHEM AER,,Aquaplanet control,,,,,
,"As amipCF experiment, but with cloud-radiative effects switched off in the LW radiation code.",f19b6ef8-c478-11e5-868e-ac72891c3257,2014,1,offlwamip,AGCM,CFMIP,1,36,1979,2,f19b6d90-c478-11e5-868e-ac72891c3257,36,amip-lwoff,amip,lwoff,,none,none,AGCM,CHEM AER,,AMIP SSTs with longwave cloud-radiative effects off,,,,,
,"As amip-p4K experiment, but with cloud-radiative effects switched off in the LW radiation code.",f19b6ef8-c478-11e5-868e-ac72891c3257,2014,1,offlwamip4K,AGCM,CFMIP,1,36,1979,2,f19b71e6-c478-11e5-868e-ac72891c3257,36,amip-p4K-lwoff,amip,p4K,lwoff,none,none,AGCM,CHEM AER,,AMIP plus 4K SSTs with longwave cloud radiative effects off,,,,,
,"As aqua-p4K experiment, but with cloud-radiative effects switched off in the LW radiation code.",f19b6ef8-c478-11e5-868e-ac72891c3257,1988,1,offlwaqua4K,AGCM,CFMIP,1,10,1979,2,f19b7894-c478-11e5-868e-ac72891c3257,10,aqua-p4K-lwoff,aqua,p4K,lwoff,none,none,AGCM,CHEM AER,,aquaplanet plus 4K SSTs with longwave cloud radiative effects off,,,,,
,"As aqua-control experiment, but with cloud-radiative effects switched off in the LW radiation code.",f19b6ef8-c478-11e5-868e-ac72891c3257,1988,1,offlwaquaControl,AGCM,CFMIP,1,10,1979,2,f19b7592-c478-11e5-868e-ac72891c3257,10,aqua-control-lwoff,aqua,control,lwoff,none,none,AGCM,CHEM AER,,aquaplanet with longwave cloud radiative effects off,,,,,
,"An AGCM experiment with monthly-varying SSTs, sea-ice, atmospheric constituents and any other necessary boundary conditions (e.g. vegetation if required) taken from each model's own piControl run (using the 30 years of piControl that are parallel to years 111-140 of its abrupt4xCO2 run).",f19b8bae-c478-11e5-868e-ac72891c3257,Year 120 of piControl,1,sstPi,AGCM,CFMIP,1,20,Year 101 of piControl,2,f19b8a50-c478-11e5-868e-ac72891c3257,20,piSST-control,piSST,control,,none,none,AGCM,CHEM AER,, [...]
,"Same as piSST, but with a spatially and temporally uniform SST anomaly applied on top of the monthly-varying piSST SSTs. The magnitude of the uniform increase is taken from each model's global, climatological annual mean SST change between abrupt4xCO2 minus piControl (using the mean of years 111-140 of abrupt4xCO2, and the parallel 30-year section of piControl).",,,,sstPiUniform,AGCM,CFMIP,,,,2,,,piSST-pxK,piSST,pxK,,none,none,AGCM,CHEM AER,,control plus scaled warming pattern,,,,,
,Same as sstPi but CO2 as seen by the radiation scheme is quadrupled.,f19b8bae-c478-11e5-868e-ac72891c3257,As above,1,sstPi4xCO2,AGCM,CFMIP,1,20,As above,2,f19b9180-c478-11e5-868e-ac72891c3257,20,piSST-4xCO2-rad,piSST,4xCO2,rad,none,none,AGCM,CHEM AER,,control SSTs with radiation-only seeing 4xCO2,,,,,
,Same as sstPi but CO2 is quadrupled. The increase in CO2 is seen by both the radiation scheme and vegetation.,f19b8bae-c478-11e5-868e-ac72891c3257,As above,1,sstPi4xCO2Veg,AGCM,CFMIP,1,20,As above,2,f19b9464-c478-11e5-868e-ac72891c3257,20,piSST-4xCO2-all,piSST,4xCO2,all,none,none,AGCM,CHEM AER,,control SSTs with 4xCO2,,,,"Is it o.k. to drop ""all"" in experiment_id?",
,"As piSST, but with monthly-varying SSTs and sea-ice taken from years 111-140 of each model's own abrupt4xCO2 experiment instead of from piControl.",f19b8bae-c478-11e5-868e-ac72891c3257,As above,1,sstPiFuture,AGCM,CFMIP,1,20,As above,2,f19b9752-c478-11e5-868e-ac72891c3257,20,futureSST,futureSST,,,none,none,AGCM,CHEM AER,,control plus warming pattern SSTs ,,,,,
,"As futureSST, but CO2 is quadrupled, and the increase in CO2 is seen by both the radiation scheme and vegetation.",f19b8bae-c478-11e5-868e-ac72891c3257,As above,1,sstPiTot,AGCM,CFMIP,1,20,As above,2,f19b9a40-c478-11e5-868e-ac72891c3257,20,futureSST-4xCO2-all,futureSST,4xCO2,all,none,none,AGCM,CHEM AER BGM,,control plus warming pattern SSTs with 4xCO2,,,,"Is it o.k. to drop ""all"" in experiment_id?",
,DECK: 1pctCO2,f19e1342-c478-11e5-868e-ac72891c3257, ,1,1pctCO2,AOGCM,CMIP,1,150, ,1,f19e1928-c478-11e5-868e-ac72891c3257,150,1pctCO2,1pctCO2,,,none,none,AOGCM,CHEM AER,,1 percent per year increase in CO2,piControl,none,CMIP,,
,DECK: abrupt4xCO2,f19e1342-c478-11e5-868e-ac72891c3257, ,1,abrupt4xCO2,AOGCM,CMIP,1,150, ,1,f19e15e0-c478-11e5-868e-ac72891c3257,150,abrupt-4xCO2,abrupt,4xCO2,,none,none,AOGCM,CHEM AER,,abrupt quadrupling of CO2,piControl,none,CMIP,,
,DECK: AMIP,f19e1342-c478-11e5-868e-ac72891c3257, ,1,AMIP,AGCM,CMIP,1,40, ,1,f19e1bd0-c478-11e5-868e-ac72891c3257,40,amip,amip,,,none,none,AGCM,CHEM AER,,AMIP,,,,,
,DECK: control,f19e1342-c478-11e5-868e-ac72891c3257, ,1,control,AOGCM,CMIP,1,500, ,1,f19e11ee-c478-11e5-868e-ac72891c3257,500,piControl,piControl,,,none,none,AOGCM,CHEM AER,,pre-Industrial control,,,,,
,DECK: control (emission-driven),f19e1342-c478-11e5-868e-ac72891c3257, ,1,esmControl,ESM,CMIP,1,500, ,1,f19e11ee-c478-11e5-868e-ac72891c3257,500,esm-piControl,esm,piControl,,none,none,ESM,CHEM AER,,pre-industrial control simulation with CO2 concentration calculated,,,,,
,DECK: spin-up portion of the control,,,,,AOGCM,CMIP,,,,2,,,,,,,,none,,CHEM AER,,pre-industrial control (spin-up),,,,probably shouldn't be labeled differently from piControl,
,DECK: spin-up portion of the control (emission-driven),,,,,ESM,CMIP,,,,2,,,,,,,,none,,CHEM AER,,pre-industrial control simulation with CO2 concentration calculated (spiin-up),,,,probably shouldn't be labeled differently from esm-piControl,
,CMIP6 historical ,f19e1fae-c478-11e5-868e-ac72891c3257, ,1,historical,AOGCM,CMIP,1,150, ,1,f19e1e64-c478-11e5-868e-ac72891c3257,150,historical,historical,,,none,none,AOGCM,CHEM AER,,all-forcing simulation of the recent past,piControl,none,CMIP,,
,CMIP6  historical (CO2 emission-driven),f19e1fae-c478-11e5-868e-ac72891c3257, ,1,esmHistorical,ESM,CMIP,1,150, ,1,f19e1e64-c478-11e5-868e-ac72891c3257,150,esm-hist,esm,hist,,none,none,ESM,CHEM AER,,all-forcing simulation of the recent past with atmospheric CO2 concentration calculated ,esm-piControl,none,CMIP,,
,Extension beyond 2014 of the CMIP6 historical ,,,,,AOGCM,CMIP,,,,2,,,historical-ext,historical,ext,,none,none,AOGCM,CHEM AER,,post-2014 all-forcing simulation,historical,none,CMIP,,
,Extension beyond 2014 of the CMIP6 historical  (CO2 emission-driven),,,,,ESM,CMIP,,,,2,,,esm-hist-ext,esm,hist,ext,none,none,ESM,CHEM AER,,post-2014 all-forcing simulation with atmospheric CO2 concentration calculated,esm-hist,none,CMIP,,
,,,,,,,DAMIP,,,,,,,,,,,,none,,,,,,,,I hope you don't plan also to have emissions-driven ESMs do these run.  WMGHG concentrations are prescribed � yes?  If not we need additional experiments for emission-driven.,
,Historical anthropogenic-Aerosols-only run. ,f19baf1c-c478-11e5-868e-ac72891c3257,2020,3,histAER,AOGCM,DAMIP,1,513,1850,1,f19badb4-c478-11e5-868e-ac72891c3257,171,hist-aer,hist,aer,,none,none,AOGCM,CHEM AER BGM,,historical anthropogenic aerosols-only run,piControl,none,,This and the following item appeared on a single line in the orginal spread sheet.,
,Historical CO2-only run. ,f19baf1c-c478-11e5-868e-ac72891c3257,2020,3,histCO2,AOGCM,DAMIP,1,513,1850,1,f19badb4-c478-11e5-868e-ac72891c3257,171,hist-CO2,hist,CO2,,none,none,AOGCM,CHEM AER BGM,,historical CO2-only run,piControl,none,,,
,"* Enlarging ensemble size of the CMIP6 hisorical simulations (2015-2020 under SSP2-4.5 of ScenarioMIP) to at least three members. * DCPP: DCPP proposes a 10 member ensemble of histALL up to 2030 also extended with SSP2-4.5. * Please provide output data up to 2014 as ""CMIP6 historical"" and 2015-2020 (or 2030 for DCPP) as SSP2-4.5 of ScenarioMIP.",f19ba1f2-c478-11e5-868e-ac72891c3257,2020,2,histALL,AOGCM,DAMIP,1,342,1850,1,f19ba08a-c478-11e5-868e-ac72891c3257,171,,,,,,,,,,,,,,"Not diffe [...]
=> just larger ensembles of historical for 1850-2014 and SSP2-4.5 of ScenarioMIP for 2015-2020.",
,Historical ALL forcing run with alternate estimates of aerosol concentrations/emissions,f19bcd1c-c478-11e5-868e-ac72891c3257,2020,3,HistallEstaer2,AOGCM,DAMIP,1,513,1850,3,f19bcbbe-c478-11e5-868e-ac72891c3257,171,hist-all-aer2,hist,all,aer2,none,none,AOGCM,CHEM AER BGM,,historical ALL-forcing run with alternate estimates of aerosol forcing,piControl,none,CMIP,,
,Historical ALL forcing run with alternates estimate of solar and volcanic forcing,f19bcd1c-c478-11e5-868e-ac72891c3257,2020,3,HistallEstnat2,AOGCM,DAMIP,1,513,1850,3,f19bd050-c478-11e5-868e-ac72891c3257,171,hist-all-nat2,hist,all,nat2,none,none,AOGCM,CHEM AER BGM,,historical ALL-forcing run with alternate estimates of natural forcing,piControl,none,CMIP,,
,"* Historical well-mixed GHG-only run. * Models with interactive chemistry schemes should either turn off the chemistry or use a preindustrial climatology of stratospheric and tropospheric ozone in their radiation schemes.  This will ensure that ozone is fixed in all these simulations, and simulated responses in models with and without coupled chemistry are comparable.",f19ba71a-c478-11e5-868e-ac72891c3257,2020,3,histGHG,AOGCM,DAMIP,1,513,1850,1,f19ba9f4-c478-11e5-868e-ac72891c3257,171,h [...]
,Historical natural-only run,f19ba71a-c478-11e5-868e-ac72891c3257,2020,3,histNAT,AOGCM,DAMIP,1,513,1850,1,f19ba5a8-c478-11e5-868e-ac72891c3257,171,hist-nat,hist,nat,,none,none,AOGCM,CHEM AER BGM,,historical natural-only run,piControl,none,CMIP,,
,Historical solar-only transient simulation using  settings from CMIP6 historical simulation but fixed GHG&ODS (1850 level),f19bc056-c478-11e5-868e-ac72891c3257,2020,3,histSOL,AOGCM,DAMIP,1,513,1850,3,f19bc3f8-c478-11e5-868e-ac72891c3257,171,hist-sol,hist,sol,,none,none,AOGCM,CHEM AER BGM,,historical solar-only run,piControl,none,CMIP,,
,"* Historical stratospheric-ozone-only. *  In models with coupled chemistry, the chemistry scheme should be turned off, and the simulated ensemble mean monthly mean 3D stratospheric ozone concentrations from the histALL simulations should be prescribed. Tropospheric ozone should be fixed at 3D long-term monthly mean piControl values, with a value of 100 ppbv ozone concentration in this piControl climatology used to separate the troposphere from the stratosphere. * In models without coupl [...]
,Historical volcanic-only run,f19bc056-c478-11e5-868e-ac72891c3257,2020,3,histVLC,AOGCM,DAMIP,1,513,1850,3,f19bbeee-c478-11e5-868e-ac72891c3257,171,hist-volc,hist,volc,,none,none,AOGCM,CHEM AER BGM,,historical volcanic-only run,piControl,none,CMIP,,
,Extension of aerosol-only run under SSP2-4.5,f19bc8b2-c478-11e5-868e-ac72891c3257,2100,1,ssp245AER,AOGCM,DAMIP,1,80,2021,3,f19bc754-c478-11e5-868e-ac72891c3257,80,ssp245-aer,ssp245,aer,,none,none,AOGCM,CHEM AER BGM,,aerosol-only SSP2-4.5 run,hist-aer,none,DAMIP,,
,*  Extension of well-mixed GHG-only run under SSP2-4.5. *  Models with interactive chemistry schemes should either turn off the chemistry or use a preindustrial climatology of stratospheric and tropospheric ozone in their radiation schemes.,f19bb3d6-c478-11e5-868e-ac72891c3257,2100,1,ssp245GHG,AOGCM,DAMIP,1,80,2021,2,f19bb278-c478-11e5-868e-ac72891c3257,80,ssp245-GHG,ssp245,GHG,,none,none,AOGCM,CHEM AER BGM,,well-mixed GHG-only SSP2-4.5 run,hist-GHG,none,DAMIP,,
,Extension of natural-only run under SSP2-4.5. ,f19bb3d6-c478-11e5-868e-ac72891c3257,2100,1,ssp245NAT,AOGCM,DAMIP,1,80,2021,3,f19bb278-c478-11e5-868e-ac72891c3257,80,ssp245-nat,ssp245,nat,,none,none,AOGCM,CHEM AER BGM,,natural-only SSP2-4.5 run,hist-nat,none,DAMIP,,
,"* Extension of stratospheric-ozone-only run under SSP2-4.5 *   In models with coupled chemistry, the chemistry scheme should be turned off, and the simulated ensemble mean monthly mean 3D stratospheric ozone concentrations from the SSP2-4.5 simulations should be prescribed. Tropospheric ozone should be fixed at 3D long-term monthly mean piControl values, with a value of 100 ppbv ozone concentration in this piControl climatology used to separate the troposphere from the stratosphere. * I [...]
: nstart abbreviated: 30-60: years per sim abbreviated: 300-600: total number of years abbreviated: 1500-6000,"Decadal hindcasts begun each year from 1960 to present, or every other year at minimum",f19bd50a-c478-11e5-868e-ac72891c3257,present (to 2019),10,A1,AOGCM,DCPP,30,1500,1960,1,f19bd398-c478-11e5-868e-ac72891c3257,300,hindcast,hindcast,,,"of form: ""sYYYY""",none,AOGCM,CHEM AER,,hindcast initialized from observations with historical forcing,,,,"Note: for all DCPP experiments a sub_ [...]
,,,,,A2.1,AOGCM,DCPP,1,1700,1850,2,f19bd8f2-c478-11e5-868e-ac72891c3257,170,,,,,"of form: ""sYYYY""",none,AOGCM,CHEM AER,,,,,,"not needed; experiment_id=""hindcast""",
,Historical uninitialized simulations to assess the impact of initialization,f19bd50a-c478-11e5-868e-ac72891c3257,2030,10,A2.2,AOGCM,DCPP,1,1700,1850,2,f19bd8f2-c478-11e5-868e-ac72891c3257,170,hindcast-control,hindcast,control,,"of form: ""sYYYY""",none,AOGCM,CHEM AER,,simulation initialized from control with forcing prescribed from a portion of the historical period,,,,,
,,,,,A3.1,AOGCM,DCPP,,,,,,,,,,,,none,,,,,,,,"not needed; experiment_id=""hindcast""",
: nstart abbreviated: 30-60: years per sim abbreviated: 300 to 600: total number of years abbreviated: 3600-7200,"m additional ensemble members for decadal hindcasts begun each year from 1960 to present, or every other year at minimum",f19bd50a-c478-11e5-868e-ac72891c3257,present (to 2019),12,A3.2,AOGCM,DCPP,30,3600,1960,3,f19bdc44-c478-11e5-868e-ac72891c3257,300,,,,,,none,,,,,,,,"not needed; experiment_id=""hindcast""",
: nstart abbreviated: 30-60: years per sim abbreviated: 300 to 600: total number of years abbreviated: 1500-6000,"Decadal hindcasts begun each year from 1960 to present, or every other year at minimum, but with no information from the future",f19bd50a-c478-11e5-868e-ac72891c3257,present (to 2019),10,A4.1,AOGCM,DCPP,30,1500,1960,4,f19bdf96-c478-11e5-868e-ac72891c3257,300,hindcast-honest,hindcast,honest,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,hindcast initialized from  [...]
: nstart abbreviated: 30-60: years per sim abbreviated: 300 to 600: total number of years abbreviated: 1500-6000,"Historical climate simulations as in DCPP-A2, but with no information from the future",f19bd50a-c478-11e5-868e-ac72891c3257,present (to 2019),10,A4.2,AOGCM,DCPP,30,1500,1960,4,f19be2e8-c478-11e5-868e-ac72891c3257,300,hindcast-hist,hindcast,hist,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,initialized from historical simulation without observed forcing after in [...]
,Ongoing decadal forecasts,f19be7a2-c478-11e5-868e-ac72891c3257,ongoing each year,10,B1,AOGCM,DCPP,1,50,present,1,f19be63a-c478-11e5-868e-ac72891c3257,5,forecast,forecast,,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,forecast initialized from observations,,,,,
,Ongoing decadal forecasts with m additional ensemble members,f19be7a2-c478-11e5-868e-ac72891c3257,ongoing each year,12,B2.1,AOGCM,DCPP,1,60,present,2,f19bebb2-c478-11e5-868e-ac72891c3257,5,,,,,,,,,,,,,,"not needed; experiment_id = ""forecast""",
,Ongoing decadal forecasts extended to 10 years,f19be7a2-c478-11e5-868e-ac72891c3257,ongoing each year,10,B2.2,AOGCM,DCPP,1,50,present,2,f19bef04-c478-11e5-868e-ac72891c3257,5,,,,,,,,,,,,,,"not needed; experiment_id = ""forecast""",
,Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,f19bf3aa-c478-11e5-868e-ac72891c3257,2015,10,C1.1,AOGCM,DCPP,1,660,1950 (from 1920 if possible),1,f19bf242-c478-11e5-868e-ac72891c3257,66,amv-control,amv,control,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,idealized Atlantic control,,,,,
,Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,f19bf3aa-c478-11e5-868e-ac72891c3257,2015,10,C1.2,AOGCM,DCPP,1,660,1950 (from 1920 if possible),1,f19bf6f2-c478-11e5-868e-ac72891c3257,66,amv-plus,amv,plus,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,idealized positive AMV anomaly pattern,,,,,
,Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,f19bf3aa-c478-11e5-868e-ac72891c3257,1949,10,C1.3,AOGCM,DCPP,1,300,1950,2,f19bfa3a-c478-11e5-868e-ac72891c3257,30,amv-minus,amv,minus,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,idealized negative AMV anomaly pattern,,,,,
,Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,f19bf3aa-c478-11e5-868e-ac72891c3257,1949,10,C1.4,AOGCM,DCPP,1,300,1950,2,f19bfd78-c478-11e5-868e-ac72891c3257,30,pdv-control,pdv,control,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,idealized Pacific control,,,,,
,Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,f19bf3aa-c478-11e5-868e-ac72891c3257,,10,C1.5,AOGCM,DCPP,1,250,control ,2,f19c0110-c478-11e5-868e-ac72891c3257,25,pdv-plus,pdv,plus,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,idealized positive PDV anomaly pattern,,,,,
,Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,f19bf3aa-c478-11e5-868e-ac72891c3257,,10,C1.6,AOGCM,DCPP,1,250,control ,2,f19c04ee-c478-11e5-868e-ac72891c3257,25,pdv-minus,pdv,minus,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,idealized negative PDV anomaly pattern,,,,,
,Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,f19bf3aa-c478-11e5-868e-ac72891c3257,,10,C1.7,AOGCM,DCPP,1,250,control ,2,f19c0836-c478-11e5-868e-ac72891c3257,25,pdv-plus-extraTrop,pdv,plus,extraTrop,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,idealized positive extratropical AMV anomaly pattern,,,,,
: years per sim abbreviated: 5 to 10: total number of years abbreviated: 200-400,Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,f19c0ee4-c478-11e5-868e-ac72891c3257,1996,10,C1.7a,AOGCM,DCPP,4,200,1993,3,f19c0c8c-c478-11e5-868e-ac72891c3257,5,pdv-minus-extraTrop,pdv,minus,extraTrop,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,idealized� impact of a negative extratropical AMV anomaly pattern,,,,,
: years per sim abbreviated: 5 to 10: total number of years abbreviated: 200-400,Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,f19c0ee4-c478-11e5-868e-ac72891c3257,1999,10,C1.8,AOGCM,DCPP,4,200,1992,3,f19c12fe-c478-11e5-868e-ac72891c3257,5,amv-plus-trop,amv,plus,trop,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,idealized positive tropical AMV anomaly pattern,,,,,
: years per sim abbreviated: 5 to 10: total number of years abbreviated: 200-400,Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,f19c0ee4-c478-11e5-868e-ac72891c3257,1999,10,C1.8a,AOGCM,DCPP,4,200,1992,3,f19c12fe-c478-11e5-868e-ac72891c3257,5,amv-minus-trop,amv,minus,trop,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,idealized impact of a positive tropical AMV anomaly pattern,,,,,
,,,,,C2.1,AOGCM,DCPP,,,,,,,predictability-atlGyre,predictability,atlGyre,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,predictability of 1990s warming of Atlantic gyre,,,,,
,,,,,C2.2,AOGCM,DCPP,,,,,,,,,,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,,,,,"experiment_id = ""predictability-atlGyre""",
: years per sim abbreviated: 5 to 10: total number of years abbreviated: 50-100,Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,f19c1a6a-c478-11e5-868e-ac72891c3257,1991,10,C3.1,AOGCM,DCPP,1,50,1991,1,f19c1858-c478-11e5-868e-ac72891c3257,5,hindcast-novolc,hindcast,novolc,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,hindcast but with only background volcanic forcing,,,,experiment includes 3 different start dates w [...]
: years per sim abbreviated: 5 to 10: total number of years abbreviated: 50-100,Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,f19c1a6a-c478-11e5-868e-ac72891c3257,1982,10,C3.2,AOGCM,DCPP,1,50,1982,2,f19c1f4c-c478-11e5-868e-ac72891c3257,5,,,,,,,,,,,,,,merged with C3.1,
: years per sim abbreviated: 5 to 10: total number of years abbreviated: 50-100,Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,f19c1a6a-c478-11e5-868e-ac72891c3257,1963,10,C3.3,AOGCM,DCPP,1,50,1963,2,f19c5a8e-c478-11e5-868e-ac72891c3257,5,,,,,,,,,,,,,,merged with C3.1,
: years per sim abbreviated: 5 to 10: total number of years abbreviated: 50-100,Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,f19c1a6a-c478-11e5-868e-ac72891c3257,2015,10,C3.4,AOGCM,DCPP,1,50,2015,1,f19c6088-c478-11e5-868e-ac72891c3257,5,forecast-Pinatubo,forecast,Pinatubo,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,2015 forecast with added Pinatubo forcing,,,,,
: years per sim abbreviated: 5 to 10: total number of years abbreviated: 50-100,Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,f19c1a6a-c478-11e5-868e-ac72891c3257,2015,10,C3.5,AOGCM,DCPP,1,50,2015,2,f19c6466-c478-11e5-868e-ac72891c3257,5,forecast-ElChichon,forecast,ElChichon,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,2015 forecast with added El Chichon forcing,,,,,
: years per sim abbreviated: 5 to 10: total number of years abbreviated: 50-100,Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,f19c1a6a-c478-11e5-868e-ac72891c3257,2015,10,C3.6,AOGCM,DCPP,1,50,2015,2,f19c68da-c478-11e5-868e-ac72891c3257,5,forecast-Agung,forecast,Agung,,"of form: ""sYYYY""",initiate with year YYYY,AOGCM,CHEM AER,,2015 forecast with added Agung forcing,,,,,
,"1xCO2 experiment, parallel to piControl, forced over the ocean simultaneously by surface windstress (as in the wind experiment), net heat flux (as in the heat experiment) and net freshwater flux (as in the water experiment) anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2, using a passive tracer to prevent negative climate feedback on the heat flux applied",f19c7e24-c478-11e5-868e-ac72891c3257,70,1,allFAF,AOGCM,FAFMIP,1,70,1,2,f19c81e4-c478-11e [...]
,"1xCO2 experiment, parallel to piControl, forced over the ocean by surface net heat flux anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2, using a passive tracer to prevent negative climate feedback on the heat flux applied",f19c7168-c478-11e5-868e-ac72891c3257,70,1,heatFAF,AOGCM,FAFMIP,1,70,1,1,f19c74d8-c478-11e5-868e-ac72891c3257,70,faf-heat,faf,heat,,none,none,AOGCM,CHEM AER,faf-heat,control plus perturbative surface flux of heat into ocean,p [...]
,"1xCO2 experiment, parallel to piControl, with a flux of passive tracer added at the ocean surface at the same rate as the surface net heat flux anomaly applied in the FAFMIP heat experiment.",f19c7e24-c478-11e5-868e-ac72891c3257,70,1,passiveheat,AOGCM,FAFMIP,1,70,1,2,f19c7c80-c478-11e5-868e-ac72891c3257,70,faf-passiveheat,faf,passiveheat,,none,none,AOGCM,CHEM AER,faf-passiveheat,control plus surface flux of passive heat tracer into ocean,piControl,none,CMIP,,
,"1xCO2 experiment, parallel to piControl, forced over the ocean by surface windstress anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2",f19c7168-c478-11e5-868e-ac72891c3257,70,1,stressFAF,AOGCM,FAFMIP,1,70,1,1,f19c6fba-c478-11e5-868e-ac72891c3257,70,faf-stress,faf,stress,,none,none,AOGCM,CHEM AER,faf-stress,control plus perturbative surface flux of momentum into ocean,piControl,none,CMIP,,
,"1xCO2 experiment, parallel to piControl, forced over the ocean by surface net freshwater flux anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2",f19c7168-c478-11e5-868e-ac72891c3257,70,1,waterFAF,AOGCM,FAFMIP,1,70,1,1,f19c780c-c478-11e5-868e-ac72891c3257,70,faf-water,faf,water,,none,none,AOGCM,CHEM AER,faf-water,control plus perturbative surface flux of water into ocean,piControl,none,CMIP,,
,"Beginning from a preindustrial control run, simultaneously quadruple the CO2 concentration and reduce the solar constant such that the TOA radiative flux remains within +/m0.1 W/m2.",f19ca4da-c478-11e5-868e-ac72891c3257,1949,3,G1ext,AOGCM,GeoMIP,1,300,1850,1,f19ca372-c478-11e5-868e-ac72891c3257,100,G1,G1,,,none,none,AOGCM,CHEM AER,G1,abrupt quadrupling of CO2 plus reduction in total solar irradiance,piControl,none,CMIP,,
,Time slice at 1850 (picontrol) for G1ext to examine radiative forcing of abrupt4xCO2,f19cb704-c478-11e5-868e-ac72891c3257,1850,1,G1extSlice1,AGCM,GeoMIP,1,10,1850,2,f19cb5b0-c478-11e5-868e-ac72891c3257,10,piSST-4xCO2-solar,piSST,4xCO2,solar,none,none,AGCM,CHEM AER,piSST-4xCO2-solar,preindustrial conrol SSTs with quadrupled CO2 + solar reduction. ,,,,comparison of TOA fluxes from this simulation with those from the  piControl yields an estimate of forcing due to 4xCO2 plus compensating so [...]
,Time slice at 1949 (picontrol) for G1ext to examine radiative forcing of abrupt4xCO2 + G1,f19cb704-c478-11e5-868e-ac72891c3257,1949,1,G1extSlice2,AGCM,GeoMIP,1,10,1949,2,f19cba7e-c478-11e5-868e-ac72891c3257,10,futureSST-4xCO2-solar,futureSST,4xCO2,solar,none,none,AGCM,CHEM AER,futureSST-4xCO2-solar,year 100 SSTs from abrupt4xCO2 with quadrupled CO2 + solar reduction,,,,comparison of TOA fluxes from this simulation with 10-year mean of fluxes centered around year 100 of 4xCO2 simulation y [...]
,Time slice at 2020 (ScenarioMIP Tier 1 high forcing scenario),f19cb704-c478-11e5-868e-ac72891c3257,2020,1,G6Slice1,AGCM,GeoMIP,1,10,2020,2,f19cbdee-c478-11e5-868e-ac72891c3257,10,G6SST1,G6SST1,,,none,none,AGCM,CHEM AER,G6SST1,"SSTs, forcings, and other prescribed conditions from year 2020 of SSP5-8.5",,,,This provides a baseline for estimating time-evolving forcing in G6SST2-solar and GSST2-sulfur.,
,"Using solar irradiance reduction, return the radiative forcing from a background of the ScenarioMIP high forcing to the ScenarioMIP middle forcing.",f19caa84-c478-11e5-868e-ac72891c3257,2100,3,G6solar,AOGCM,GeoMIP,1,243,2020,1,f19cae26-c478-11e5-868e-ac72891c3257,81,G6solar,G6solar,,,none,none,AOGCM,CHEM AER,G6solar,total solar irradiance reduction to reduce net forcing from SSP585 to SSP245,historical,none,CMIP,,
,Time slice at 2100 (G6solar),f19cb704-c478-11e5-868e-ac72891c3257,2100,1,G6solarSlice2,AGCM,GeoMIP,1,10,2100,2,f19cc442-c478-11e5-868e-ac72891c3257,10,G6SST2-solar,G6SST2,solar,,none,none,AGCM,CHEM AER,G6SST2-solar,SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G6solar,,,,comparison of TOA fluxes from this simulation with G6SST1 yields an estimate of forcing due to solar reduction. ,
,"Using equatorial SO2 injection, return the radiative forcing from a background of the ScenarioMIP high forcing to the ScenarioMIP middle forcing.",f19caa84-c478-11e5-868e-ac72891c3257,2100,3,G6sulfur,AOGCM,GeoMIP,1,243,2020,1,f19ca926-c478-11e5-868e-ac72891c3257,81,G6sulfur,G6sulfur,,,none,none,AOGCM,CHEM AER,G6sulfur,stratospheric sulfate aerosol injection to reduce net forcing from SSP585 to SSP245,historical,none,CMIP,,
,Time slice at 2100 (G6sulfur),f19cb704-c478-11e5-868e-ac72891c3257,2100,1,G6sulfurSlice2,AGCM,GeoMIP,1,10,2100,2,f19cc172-c478-11e5-868e-ac72891c3257,10,G6SST2-sulfur,G6SST2,sulfur,,none,none,AGCM,CHEM AER,G6SST2-sulfur,SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G6sulfur,,,,comparison of TOA fluxes from this simulation with G6SST1 yields an estimate of forcing due to aerosol shading. ,
,"Against a background of the ScenarioMIP high forcing, reduce cirrus cloud optical depth by a constant amount",f19cb24a-c478-11e5-868e-ac72891c3257,2100,3,G7cirrus,AOGCM,GeoMIP,1,243,2020,1,f19cb0f6-c478-11e5-868e-ac72891c3257,81,G7cirrus,G7cirrus,,,none,none,AOGCM,CHEM AER,G7cirrus,G7cirrus _ increase cirrus ice crystal fall speed to reduce net forcing in SSP585 by 1 W m-2,historical,none,CMIP,,
,Time slice at 2020 (ScenarioMIP Tier 1 high forcing scenario + cirrus thinning according to G7cirrus),f19cb704-c478-11e5-868e-ac72891c3257,2020,1,G7cirrusSlice1,AGCM,GeoMIP,1,10,2020,2,f19cc7b2-c478-11e5-868e-ac72891c3257,10,G7SST1-cirrus,G7SST1,cirrus,,none,none,AGCM,CHEM AER,G7SST1-cirrus,SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2020 of SSP5-8.5 + cirrus thinning,,,,comparison of TOA fluxes from this simulation with 10-year mean of fluxes cent [...]
,Time slice at 2100 (ScenarioMIP Tier 1 high forcing scenario + cirrus thinning according to G7cirrus),f19cb704-c478-11e5-868e-ac72891c3257,2100,1,G7cirrusSlice2,AGCM,GeoMIP,1,10,2100,2,f19ccb18-c478-11e5-868e-ac72891c3257,10,G7SST2-cirrus,G7SST2,cirrus,,none,none,AGCM,CHEM AER,G7SST2-cirrus,SSTs from year 2100 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G7cirrus,,,,"similar to above run but for the warmer climate near 2100.  If forcing is independent of climat [...]
,Extended AMIP run that covers 1870-2014. All natural and anthropogenic historical forcings as used in CMIP6 Historical Simulation will be included. AGCM resolution as CMIP6 Historical Simulation. The HadISST data will be used.,f19c8838-c478-11e5-868e-ac72891c3257,2013,1,AMIP20C,AGCM,GMMIP,1,144,1870,1,f19c84e6-c478-11e5-868e-ac72891c3257,144,amip-hist,amip,hist,,none,none,AGCM,CHEM AER,,,,,,"Can this be simply named AMIP?  Same but for longer period.  In column B, start date should be ch [...]
,"The topography of the highlands in Africa, N. America and S. America TP is modified by setting surface elevations to a certain height (500m).Same model as DECK.",f19c9774-c478-11e5-868e-ac72891c3257,2013,1,DHLD,AGCM,GMMIP,1,35,1979,3,f19c9f30-c478-11e5-868e-ac72891c3257,35,amip-hld,amip,hld,,none,none,AGCM,CHEM AER,,,,,,,
,The topography of the TIP is modified by setting surface elevations to 500m; to understand the combined thermal and mechanical forcing of the TIP. Same model as DECK.,f19c9774-c478-11e5-868e-ac72891c3257,2013,1,DTIP,AGCM,GMMIP,1,35,1979,3,f19c960c-c478-11e5-868e-ac72891c3257,35,amip-TIP,amip,TIP,,none,none,AGCM,CHEM AER,,,,,,,
,Surface sensible heat released at the elevation above 500m over the TIP is not allowed to heat the atmosphere.Same model as DECK.,f19c9774-c478-11e5-868e-ac72891c3257,2013,1,DtipDsh,AGCM,GMMIP,1,35,1979,3,f19c9b5c-c478-11e5-868e-ac72891c3257,35,amip-TIP-nosh,amip,TIP,nosh,none,none,AGCM,CHEM AER,,,,,,,
,"Pacemaker 20th century historical run that includes all forcing as used in CMIP6 Historical Simulation, and the observational historical SST is restored in the AMO domain (0o-70oN, 70oW-0o)",f19c8d2e-c478-11e5-868e-ac72891c3257,2013,3,HistAmo,AOGCM,GMMIP,1,432,1870,2,f19c9076-c478-11e5-868e-ac72891c3257,144,hist-resAMO,hist,resAMO,,none,none,AOGCM,CHEM AER,,,piControl,none,CMIP,"are these partially-prescribed SSTs, but partially coupled models?",
,"Pacemaker 20th century historical run that includes all forcing as used in CMIP6 Historical Simulation, and the observational historical SST is restored in the tropical lobe of the IPO domain (20oS-20oN, 175oE-75oW). The HadISST data will be used.",f19c8d2e-c478-11e5-868e-ac72891c3257,2013,3,HistIpo,AOGCM,GMMIP,1,432,1870,2,f19c8bda-c478-11e5-868e-ac72891c3257,144,hist-resIPO,hist,resIPO,,none,none,AOGCM,CHEM AER,,,piControl,none,CMIP,"are these partially-prescribed SSTs, but partially  [...]
,"Coupled integrations, at least one with constant 1950""s forcing (CTL) and one or more with historic and then RCP4.5 (as in Forced_Atmos_Land, EXP).",f19cdf18-c478-11e5-868e-ac72891c3257,2050,2,Coupled,AOGCM,HighResMIP,1,200,,2,f19cddc4-c478-11e5-868e-ac72891c3257,100,control-1950,control,1950,,none,none,AOGCM,CHEM AER,,coupled control with fixed 1950's forcing (HighResMIP equivalent of pre-industrial control),,,,,
,"Coupled integrations, at least one with constant 1950""s forcing (CTL) and one or more with historic and then RCP4.5 (as in Forced_Atmos_Land, EXP).",f19cdf18-c478-11e5-868e-ac72891c3257,2050,2,Coupled,AOGCM,HighResMIP,1,200,1951,2,f19cddc4-c478-11e5-868e-ac72891c3257,100,highres-future,highres,future,,none,none,AOGCM,CHEM AER,,coupled future 2015-2050 using a scenario as close to CMIP5 RCP8.5 as possible within CMIP6,hist-1950,none,CMIP,"The forcing for this run in unclear.  There is m [...]
,"Coupled integrations, at least one with constant 1950""s forcing (CTL) and one or more with historic and then RCP4.5 (as in Forced_Atmos_Land, EXP).",f19cdf18-c478-11e5-868e-ac72891c3257,2050,2,Coupled,AOGCM,HighResMIP,1,200,1951,2,f19cddc4-c478-11e5-868e-ac72891c3257,100,hist-1950,hist,1950,,none,none,AOGCM,CHEM AER,,coupled historical 1950-2014,control-1950,none,HighResMIP,,
,"Forced global atmosphere-land simulations using daily 1/4 degree SST and sea-ice forcings, and aerosol concentrations (not emissions) to constrain model spread",f19cdaa4-c478-11e5-868e-ac72891c3257,2014,1,ForcedAtmosLand,AGCM,HighResMIP,1,64,1951,1,f19cd95a-c478-11e5-868e-ac72891c3257,64,highresSST-present,highresSST,present,,none,none,AGCM,CHEM AER,,forced atmosphere experiment for 1950-2014,,,,,
,Extend Forced_Atmos_land to 2050 with agreed forcings (with option to extend further to 2100),f19ce328-c478-11e5-868e-ac72891c3257,2050,1,ForcedAtmosLand2050,AGCM,HighResMIP,1,36,2015,3,f19ce1de-c478-11e5-868e-ac72891c3257,36,highresSST-future,highresSST,future,,none,none,AGCM,CHEM AER,,forced atmosphere experiment for 2015-2050 using SST/sea-ice derived from CMIP5 RCP8.5 simulations and a scenario as close to RCP8.5 as possible within CMIP6,,,,"The forcing for this run in unclear.  Ther [...]
,"Forced global atmosphere-land simulations as highresSST-present, but using an common LAI dataset across models. ",f19cdaa4-c478-11e5-868e-ac72891c3257,2014,1,ForcedAtmosLand,AGCM,HighResMIP,1,64,1951,1,f19cd95a-c478-11e5-868e-ac72891c3257,64,highresSST-LAI,highresSST,LAI,,none,none,AGCM,CHEM AER,,common LAI dataset within the highresSST-present experiment,,,,,
,"Forced global atmosphere-land simulations as highresSST-present, but using smoothed SST to investigate impact of SST variability. ",f19cdaa4-c478-11e5-868e-ac72891c3257,2014,1,ForcedAtmosLand,AGCM,HighResMIP,1,64,1951,1,f19cd95a-c478-11e5-868e-ac72891c3257,64,highresSST-smoothed,highresSST,smoothed,,none,none,AGCM,CHEM AER,,smoothed SST version of highresSST-present,,,,,
,"Similar to CFMIP amip-p4K, add a uniform warming of 4K to highresSST-present SSTs and run the experiment parallel to years 2005-2014 of highresSST-present.",f19cdaa4-c478-11e5-868e-ac72891c3257,2014,1,ForcedAtmosLand,AGCM,HighResMIP,1,64,1951,1,f19cd95a-c478-11e5-868e-ac72891c3257,64,highresSST-p4K,highresSST,p4K,,none,none,AGCM,CHEM AER,,uniform 4K warming of highresSST-present SST,,,,,
,"Similar to CFMIP amip-4xCO2, SSTs are held at highresSST-present  values and the CO2 seen by the radiation scheme is quadrupled. Run over years 2005-2014 of highresSST-present.",f19cdaa4-c478-11e5-868e-ac72891c3257,2014,1,ForcedAtmosLand,AGCM,HighResMIP,1,64,1951,1,f19cd95a-c478-11e5-868e-ac72891c3257,64,highresSST-4co2,highresSST,4co2,,none,none,AGCM,CHEM AER,,highresSST-present SST with 4xCO2 concentrations,,,,,
,"Idealized 1%/yr CO2 increase to 4xC02 over 140yrs and kept constant at 4xCO2 for an additional 200 to 400 yrs simulation with ice sheets forced ""offline"" with DECK 1pctCO2.",f19cee68-c478-11e5-868e-ac72891c3257,As long as possible (350 or 500),1,1pctCo2forcedism,ISM,ISMIP6,1,350,From piControlforcedism,1,f19cf124-c478-11e5-868e-ac72891c3257,350,ism-1pctCO2,ism,1pctCO2,,none,none,ISM,CHEM AER,,,,,,amip run and last glacial max. run are mentioned in the proposal but  both are missing here.,
,Idealized 1%/yr CO2 increase to 4xC02 over 140yrs and kept constant at 4xCO2 for an additional 200 to 400 yrs simulation that includes interactive ice sheets.,f19cee68-c478-11e5-868e-ac72891c3257,As long as possible (350 or 500),1,1pctCo2withism,AOGCM ISM,ISMIP6,1,350,From piControlwithism,1,f19ced14-c478-11e5-868e-ac72891c3257,350,1pctCO2-withism,1pctCO2,withism,,none,none,AOGCM ISM,CHEM AER,,,piControl-withism,none,ISMIP6,"Will the same models be run with and without ISM?  If only with [...]
,"Pre-industrial control simulation for ""offline"" ice sheets.",f19ce792-c478-11e5-868e-ac72891c3257,2300,1,piControlforcedism,ISM,ISMIP6,1,500,1850,1,f19cea58-c478-11e5-868e-ac72891c3257,451,ism-piControl,ism,piControl,,none,none,ISM,CHEM AER,,,,,,,
,Pre-industrial control simulation that includes interactive ice sheets.,f19ce792-c478-11e5-868e-ac72891c3257,2300,1,piControlwithism,AOGCM ISM,ISMIP6,1,500,1850,1,f19ce63e-c478-11e5-868e-ac72891c3257,451,piControl-withism,piControl,withism,,none,none,AOGCM ISM,CHEM AER,,,,,,"Will the same models be run with and without ISM?  If only with, then this could be called ""piControl""",
,"Future climate from standard ScenarioMIP SSP5-8.5 simulation is used to force the ice sheet ""offline"". Set up would follow the standard SSP5-8.5 experiment, and therefore may first require that an ""offline"" ice sheet Historical Simulation is performed first.",f19cf6ce-c478-11e5-868e-ac72891c3257,2300,1,Ssp585forcedism,ISM,ISMIP6,1,286,2015,2,f19cfad4-c478-11e5-868e-ac72891c3257,286,ism-ssp585,ism,ssp585,,none,none,ISM,CHEM AER,,,,,,,
,"Future climate from ScenarioMIP SSP5-8.5 simulation that includes interactive ice sheets. Set up would follow the standard SSP5-8.5 experiment, and therefore may first require that the Historical Simulation is performed first with a coupled AOGCM-ISM setting",f19cf6ce-c478-11e5-868e-ac72891c3257,2300,1,Ssp585withism,AOGCM ISM,ISMIP6,1,286,2015,2,f19cf566-c478-11e5-868e-ac72891c3257,286,ssp585-withism,ssp585,withism,,none,none,AOGCM ISM,CHEM AER,,,???,none,,"Don't you need a historical r [...]
,Land-hist land conditions; AMIP SSTs,f19d08ee-c478-11e5-868e-ac72891c3257,2100,5,,AGCM,LS3MIP,1,605,1980,2,f19d0ee8-c478-11e5-868e-ac72891c3257,121,amip-lfmip-pObs,amip,lfmip,pObs,none,none,AGCM,CHEM AER,amip-lfmip-pObs,prescribed land (from pseudo-observations) and AMIP SSTs,,,,,
,Prescribed land conditions 1980-2014 climate; AMIP SSTs,f19d08ee-c478-11e5-868e-ac72891c3257,2100,5,LfmipCa5,AGCM,LS3MIP,1,605,1980,2,f19d0ee8-c478-11e5-868e-ac72891c3257,121,amip-lfmip-pdLC,amip,lfmip,pdLC,none,none,AGCM,CHEM AER,amip-lfmip-pdLC,prescribed land (from current climatology) and AMIP SSTs,,,,,
,Prescribed land conditions 1980-2014 climate,f19d08ee-c478-11e5-868e-ac72891c3257,2100,1,LfmipCao1,AOGCM,LS3MIP,1,121,1980,1,f19d07a4-c478-11e5-868e-ac72891c3257,121,lfmip-pdLC,lfmip,pdLC,,none,none,AOGCM,CHEM AER,lfmip-pdLC,"prescribed land conditions (from current climate climatology) and initialized from ""historical"" run year 1980",historical,none,CMIP,,
,Prescribed land conditions 1980-2014 climate,f19d08ee-c478-11e5-868e-ac72891c3257,2100,4,LfmipCao4,AOGCM,LS3MIP,1,484,1980,2,f19d0be6-c478-11e5-868e-ac72891c3257,121,,,,,,none,AOGCM,CHEM AER,,,,,,"This is just an increase in size of ensemble, so doesn't need a different experiment name.",
,Initialized pseudo-observations land,f19d1c44-c478-11e5-868e-ac72891c3257,2014,10,LfmipHp10,AOGCM,LS3MIP,1,350,1980,2,f19d1af0-c478-11e5-868e-ac72891c3257,35,lfmip-initLC,lfmip,initLC,,none,none,AOGCM,CHEM AER,,"initialized from ""historical"" run year 1980, but with land conditions initialized from pseudo-observations",historical,none,CMIP,"Initialized in 1980?  What is parent?  How does it differ from ""historical""?",
,Prescribed land conditions 30yr running mean; AMIP SSTs,f19d08ee-c478-11e5-868e-ac72891c3257,2100,5,LfmipRa5,AGCM,LS3MIP,1,605,1980,2,f19d17ee-c478-11e5-868e-ac72891c3257,121,amip-lfmip-rmLC,amip,lfmip,rmLC,none,none,AGCM,CHEM AER,amip-lfmip-rmLC,prescribed land conditions (from running mean climatology) and AMIP SSTs,,,,which simulation are the land conditions taken from?,
,Prescribed land conditions 30yr running mean,f19d08ee-c478-11e5-868e-ac72891c3257,2100,1,LfmipRao1,AOGCM,LS3MIP,1,121,1980,1,f19d11f4-c478-11e5-868e-ac72891c3257,121,lfmip-rmLC,lfmip,rmLC,,none,none,AOGCM,CHEM AER,lfmip-rmLC,"prescribed land conditions (from running mean climatology) and initialized from ""historical"" run year 1980",historical,none,CMIP,which simulation are the land conditions taken from?,
,Prescribed land conditions 30yr running mean,f19d08ee-c478-11e5-868e-ac72891c3257,2100,4,LfmipRao4,AOGCM,LS3MIP,1,484,1980,2,f19d14ec-c478-11e5-868e-ac72891c3257,121,,,,,,none,AOGCM,CHEM AER,,,,,,"This is just an increase in size of ensemble, so doesn't need a different experiment name.",
,Land only simulations,f19d04ac-c478-11e5-868e-ac72891c3257,2100,3,LmipF,LND,LS3MIP,1,258,2015,2,f19d0358-c478-11e5-868e-ac72891c3257,86,land-future,land,future,,none,none,LND,,land-future,offline land simulations for future climate,,,,,
,Land only simulations,f19d0042-c478-11e5-868e-ac72891c3257,2014,1,LmipH,LND,"LS3MIP, LUMIP",1,165,1850,1,f19cfee4-c478-11e5-868e-ac72891c3257,165,land-hist,land,hist,,none,none,LND,,land-hist,offline land simulations for present climate,,,,This is also defined under LUMIP and has the same name.,
,Land only simulations,f19d0042-c478-11e5-868e-ac72891c3257,2014,1,LmipH (1c),LND,LS3MIP,1,165,1850,2,f19cfee4-c478-11e5-868e-ac72891c3257,165,land-hist-princeton,land,hist,princeton,none,none,LND,,land-hist-princeton,as land-hist with Princeton forcings,land-hist,none,,"isn't parent ""historical""?",
,Land only simulations,f19d0042-c478-11e5-868e-ac72891c3257,2014,1,LmipH (1c),LND,LS3MIP,1,165,1850,2,f19cfee4-c478-11e5-868e-ac72891c3257,165,land-hist-cruNcep,land,hist,cruNcep,none,none,LND,,land-hist-cruNcep,as land-hist with CRU-NCEP forcings,land-hist,none,,"isn't parent ""historical""?",
,Land only simulations,f19d0042-c478-11e5-868e-ac72891c3257,2014,1,LmipH (1c),LND,LS3MIP,1,165,1850,2,f19cfee4-c478-11e5-868e-ac72891c3257,165,land-hist-wfdei,land,hist,wfdei,none,none,LND,,land-hist-wfdei,as land-hist with WFDEI forcings,land-hist,none,,"isn't parent ""historical""?",
,"Additional land use policy sensitivity simulation for high radiative forcing scenario, keep all forcings the same as in C4MIP esmssp5-8.5 scenario except use SSP1-2.6 land use; emission driven",f19d4908-c478-11e5-868e-ac72891c3257,2100,1,Esmssp585wssp126landuse,ESM,LUMIP,1,95,2015,1,f19d47be-c478-11e5-868e-ac72891c3257,95,esm-ssp585-ssp126Lu,esm,ssp585,ssp126Lu,none,none,ESM,CHEM AER,esm-ssp585-ssp126Lu,emissions-driven SSP5-8.5 with SSP1-2.6 land use,esm-hist,none,CMIP,,
,"Same as CMIP6 historical but with land cover held at 1850, no human activity; concentration driven",f19d329c-c478-11e5-868e-ac72891c3257,2014,1,HistNolulcc01,AOGCM,LUMIP,1,165,1850,1,f19d3148-c478-11e5-868e-ac72891c3257,165,hist-noLu,hist,noLu,,none,none,AOGCM,CHEM AER,hist-noLu,historical with no land-use change,piControl,none,CMIP,,
,"Idealized deforestation experiment, 20 million km2 forest removed linearly over a period of 50 years, with an additional 30 years with no specified change in forest cover; all other forcings held constant",f19d2180-c478-11e5-868e-ac72891c3257,1920,1,IdealizedGlobalDeforest,AOGCM,LUMIP,1,70,1850,1,f19d1fbe-c478-11e5-868e-ac72891c3257,70,deforest-globe,deforest,globe,,none,none,AOGCM,CHEM AER,deforest-globe,idealized transient global deforestation,piControl,none,CMIP,,
,Same as land-hist except starting from either 1700 (for models that typically start in 1850) or 1850 (for models that typically start in 1700). ,,,,,LND,LUMIP,,,,1,,,land-hist-altStartYear,land,hist,altStartYear,none,none,LND,,land-hist-altStartYear,historical land-only alternate start year,,,,,
,"Same land model configuration as used in CMIP6 coupled experiments with all applicable land-use features active. Start year either 1850 or 1700 depending on standard practice for particular model. All forcings transient including CO2, N-dep, aerosol dep, etc.  ",,,,,LND,"LS3MIP, LUMIP",,,,1,,,land-hist,land,hist,,none,none,LND,,land-hist,historical land-only,,,,,
,Same as land-hist except with CO2 held constant ,,,,,LND,LUMIP,,,,2,,,land-cCO2,land,cCO2,,none,none,LND,,land-cCO2,historical land-only constant CO2,,,,,
,Same as land-hist except with CO2 held constant ,,,,,LND,LUMIP,,,,2,,,land-cClim,land,cClim,,none,none,LND,,land-cClim,historical land-only constant climate,,,,,
,Same as land-hist except no land-use change,,,,,LND,LUMIP,,,,1,,,land-noLu,land,noLu,,none,none,LND,,land-noLu,historical land-only with no land-use change,,,,,
,Same as land-hist except with crop area utilizing prognostic crop model,,,,,LND,LUMIP,,,,2,,,land-crop-noManage,land,crop,noManage,none,none,LND,,land-crop-noManage,historical land-only with crops but no crop management,,,,,
,"Same as land-hist except with net LUC transitions instead of gross LUC transitions. If gross transitions exceeding net transitions have been applied in 1850, they should be maintained.",,,,,LND,LUMIP,,,,2,,,land-netTrans,land,netTrans,,none,none,LND,,land-netTrans,historical land-only with net land-use transitions,,,,,
,Same as land-hist but with anthropogenic ignition and suppression held to 1850 levels,,,,,LND,LUMIP,,,,2,,,land-noFire,land,noFire,,none,none,LND,,land-noFire,historical land-only with no human fire management,,,,,
,Same as land-hist but with wood harvest maintained at 1850 amounts/areas,,,,,LND,LUMIP,,,,2,,,land-noWoodHarv,land,noWoodHarv,,none,none,LND,,land-noWoodHarv,historical land-only with no wood harvest,,,,,
,"Same as land-hist but with grazing and other management on pastureland held at 1850 levels/distribution, i.e. all new pastureland is treated as unmanaged grassland (as in land-crop-grass).",,,,,LND,LUMIP,,,,2,,,land-noPasture,land,noPasture,,none,none,LND,,land-noPasture,historical land-only with constant pastureland,,,,,
,Same as land-hist but with all new crop and pastureland treated as unmanaged grassland ,,,,,LND,LUMIP,,,,2,,,land-crop-grass,land,crop,grass,none,none,LND,,land-crop-grass,historical land-only with cropland as natural grassland,,,,,
,Same as land-hist but with irrigated area held at 1850 levels,,,,,LND,LUMIP,,,,2,,,land-crop-noIrrig,land,crop,noIrrig,none,none,LND,,land-crop-noIrrig,historical land-only with no irrigation ,,,,,
,Same as land-hist but with fertilization rates and area held at 1850 levels/distribution,,,,,LND,LUMIP,,,,2,,,land-crop-noFert,land,crop,noFert,none,none,LND,,land-crop-noFert,historical land-only with no fertilizer,,,,,
,"Additional land use policy sensitivity simulation for low radiative forcing scenario, keep all forcings the same as ScenarioMIP SSP1-2.6 (afforestation scenario), but replace land use from SSP3-7 (afforestation) scenario; concentration-driven",f19d3e68-c478-11e5-868e-ac72891c3257,2100,1,Ssp126wssp37landuse,AOGCM,LUMIP,1,95,2015,1,f19d44a8-c478-11e5-868e-ac72891c3257,95,ssp126-ssp370Lu,ssp126,ssp370Lu,,none,none,AOGCM,CHEM AER,ssp126-ssp370Lu,SSP1-2.6 with SSP3-7.0 land use,historical,no [...]
,"Additional land use policy sensitivity simulation for high radiative forcing scenario, keep all forcings the same as ScenarioMIP SSP3-7 (deforestation scenario), but replace land use from SSP1-2.6 (afforestation) scenario; concentration-driven",f19d3e68-c478-11e5-868e-ac72891c3257,2100,1,Ssp37wssp126landuse,AOGCM,LUMIP,1,95,2015,1,f19d3d1e-c478-11e5-868e-ac72891c3257,95,ssp370-ssp126Lu,ssp370,ssp126Lu,,none,none,AOGCM,CHEM AER,ssp370-ssp126Lu,SSP3-7.0 with SSP1-2.6 land use,historical,n [...]
,Global ocean - sea-ice coupled experiment forced with the Coordinated Ocean - ice Reference Experiments inter-annually varying atmopsheric data sets for the 1948-2009 period. The 62-year forcing period is repeated for no less than 5 cycles.,f19d4d68-c478-11e5-868e-ac72891c3257,310,1,OmipA,OGCM,OMIP,1,310,1,1,f19d4c1e-c478-11e5-868e-ac72891c3257,310,omip-core2,omip,core2,,none,none,OGCM,,,OMIP experiment forced by CORE-2 atmospheric data set and initialized with observed physical and biog [...]
,Same as the OMIP experiment except that it is not initialized with observed climatologies; rather it is initialized with results from at least a 1000-year spin up of the coupled physical-biogeochemical models. Also it includes radiocarbon to evaluate deep-ocean circulation.,f19d52c2-c478-11e5-868e-ac72891c3257,310,1,OmpiB,OGCM,OMIP,1,311,1,2,f19d516e-c478-11e5-868e-ac72891c3257,311,omip-core2-spunup,omip,core2,spunup,none,none,OGCM,,,OMIP experiment forced by CORE-2 atmospheric data set  [...]
,Global ocean - sea-ice coupled experiment forced with the Coordinated Ocean - ice Reference Experiments inter-annually varying atmopsheric data sets for the 1948-2009 period. The 62-year forcing period is repeated for no less than 5 cycles.,f19d4d68-c478-11e5-868e-ac72891c3257,310,1,OmipA,OGCM,OMIP,1,310,1,3,f19d4c1e-c478-11e5-868e-ac72891c3257,310,omip-jra55,omip,jra55,,none,none,OGCM,,,OMIP experiment forced by JRA-55 atmospheric data set and initialized with observed physical and biog [...]
,Same as the OMIP experiment except that it is not initialized with observed climatologies; rather it is initialized with results from at least a 1000-year spin up of the coupled physical-biogeochemical models. Also it includes radiocarbon to evaluate deep-ocean circulation.,f19d52c2-c478-11e5-868e-ac72891c3257,310,1,OmpiB,OGCM,OMIP,1,311,1,3,f19d516e-c478-11e5-868e-ac72891c3257,311,omip-jra55-spunup,omip,jra55,spunup,none,none,OGCM,,,OMIP experiment forced by JRA-55 atmospheric data set  [...]
,"main forcings : ice-sheet; trace gases, orbital parameters dust (forcing, or feedback if dust cycle represented in model)",f19d641a-c478-11e5-868e-ac72891c3257,as long as possible to have >= 100 stabilised years (I.e 500 to 1000 years for the simulation),1,lgm,AOGCM,PMIP,1,100,from PI or pre-existing LGM,1,f19d62bc-c478-11e5-868e-ac72891c3257,100,lgm,lgm,,,none,none,AOGCM,CHEM AER,,,???,,,,
,"main forcings : orbital parameters, ice-sheet, trace gases",f19d7414-c478-11e5-868e-ac72891c3257,as long as possible to have >= 100 stabilised years (I.e 500 ),1,LIG,AOGCM,PMIP,1,100,from PI or pre-existing LIG,1,f19d72ca-c478-11e5-868e-ac72891c3257,100,lig127k,lig127k,,,none,none,AOGCM,CHEM AER,,,???,,,,
,"main forcings : trace gases, orbital parameters, dust",f19d682a-c478-11e5-868e-ac72891c3257,about 300 to 1000 for interannual variability,1,midHolocene,AOGCM,PMIP,1,200,from PI or pre-existing midHolocene,1,f19d66d6-c478-11e5-868e-ac72891c3257,200,midHolocene,midHolocene,,,none,none,AOGCM,CHEM AER,,,???,,,,
,"main forcings : trace gases, volcanoes, solar variability, land use",f19d6c26-c478-11e5-868e-ac72891c3257,1850,1,past1000,AOGCM,PMIP,1,1000,850,1,f19d6adc-c478-11e5-868e-ac72891c3257,1000,past1000,past1000,,,none,none,AOGCM,CHEM AER,,,???,,,,
,"main forcings : trace gases, orography, ice-sheet",f19d7022-c478-11e5-868e-ac72891c3257,as long as possible to have >= 100 stabilised years (I.e 500 ),1,PlioExp,AOGCM,PMIP,1,100,from PI or pre-existing PlioExp,1,f19d6ece-c478-11e5-868e-ac72891c3257,100,midPliocene-eoi400,midPliocene,eoi400,,none,none,AOGCM,CHEM AER,,,???,,,,
,30-year atmosphere only integration using preindustrial conditions. Interactive vegetation,f19d874c-c478-11e5-868e-ac72891c3257,30,1,RFMIP-ERF-PI-Cntrl,AGCM,"RFMIP, AerChemMIP",1,30,1,1,f19d85f8-c478-11e5-868e-ac72891c3257,30,piClim-control,piClim,control,,none,none,AGCM,CHEM AER,RFMIP-ERF-PI-Cntrl,,,,,AerChemMIP also wants this done.,
,As in RFMIP-ERF-PI-Cntrl but with 4xCO2,f19d874c-c478-11e5-868e-ac72891c3257,30,1,RFMIP-ERF-4xCO2,AGCM,RFMIP,1,30,1,1,f19d8a4e-c478-11e5-868e-ac72891c3257,30,piClim-4xCO2,piClim,4xCO2,,none,none,AGCM,CHEM AER,RFMIP-ERF-4xCO2,,,,,,
,As in RFMIP-ERF-PI-Cntrl but with with present-day aerosols and ozone,f19d874c-c478-11e5-868e-ac72891c3257,30,1,RFMIP-ERF-AerO3,AGCM,RFMIP,1,30,1,1,f19d9430-c478-11e5-868e-ac72891c3257,30,piClim-aerO3,piClim,aerO3,,none,none,AGCM,CHEM AER,RFMIP-ERF-AerO3,,,,,,
,As in RFMIP-ERF-AER but with present-day changes scaled by 0.1,f19d874c-c478-11e5-868e-ac72891c3257,30,1,RFMIP-ERF-AerO3x01,AGCM,RFMIP,1,30,1,2,f19d9a48-c478-11e5-868e-ac72891c3257,30,piClim-aerO3x0p1,piClim,aerO3x0p1,,none,none,AGCM,CHEM AER,RFMIP-ERF-AerO3x01,,,,,,
,As in RFMIP-ERF-AER but with present-day changes scaled by 2,f19d874c-c478-11e5-868e-ac72891c3257,30,1,RFMIP-ERF-AerO3x2,AGCM,RFMIP,1,30,1,2,f19d9d4a-c478-11e5-868e-ac72891c3257,30,piClim-aerO3x2,piClim,aerO3x2,,none,none,AGCM,CHEM AER,RFMIP-ERF-AerO3x2,,,,,,
,"As in RFMIP-ERF-PI-Cntrl but with present-day anthropogenic forcing (greenhouse gases, aerosols and land-use)",f19d874c-c478-11e5-868e-ac72891c3257,30,1,RFMIP-ERF-Anthro,AGCM,RFMIP,1,30,1,1,f19d8d5a-c478-11e5-868e-ac72891c3257,30,piClim-anthro,piClim,anthro,,none,none,AGCM,CHEM AER,RFMIP-ERF-Anthro,,,,,,
,As in RFMIP-ERF-PI-Cntrl but with present-day greenhouse gases,f19d874c-c478-11e5-868e-ac72891c3257,30,1,RFMIP-ERF-GHG,AGCM,RFMIP,1,30,1,1,f19d907a-c478-11e5-868e-ac72891c3257,30,piClim-GHG,piClim,GHG,,none,none,AGCM,CHEM AER,RFMIP-ERF-GHG,,,,,,
,Time-varying forcing by aerosols. SST and sea ice fixed at preindustrial control. Interactive vegetation,f19da1a0-c478-11e5-868e-ac72891c3257,2100,3,RFMIP-ERF-HistAer,AGCM,RFMIP,1,753,1850,2,f19da876-c478-11e5-868e-ac72891c3257,251,piClim-histaer03,piClim,histaer03,,none,none,AGCM,CHEM AER,RFMIP-ERF-HistAer,,,,,,
,Time-varying forcing. SST and sea ice fixed at preindustrial control. Interactive vegetation,f19da1a0-c478-11e5-868e-ac72891c3257,2100,3,RFMIP-ERF-HistAll,AGCM,RFMIP,1,753,1850,2,f19da04c-c478-11e5-868e-ac72891c3257,251,piClim-histAll,piClim,histAll,,none,none,AGCM,CHEM AER,RFMIP-ERF-HistAll,,,,,,
,Time-varying forcing by GHGs. SST and sea ice fixed at preindustrial control. Interactive vegetation,f19da1a0-c478-11e5-868e-ac72891c3257,2100,3,RFMIP-ERF-HistGHG,AGCM,RFMIP,1,753,1850,2,f19daba0-c478-11e5-868e-ac72891c3257,251,piClim-histGHG,piClim,histGHG,,none,none,AGCM,CHEM AER,RFMIP-ERF-HistGHG,,,,,,
,"Time-varying forcing from volcanos, solar variability, etc. SST and sea ice fixed at preindustrial control. Interactive vegetation",f19da1a0-c478-11e5-868e-ac72891c3257,2100,3,RFMIP-ERF-HistNat,AGCM,RFMIP,1,753,1850,2,f19da4a2-c478-11e5-868e-ac72891c3257,251,piClim-histNat,piClim,histNat,,none,none,AGCM,CHEM AER,RFMIP-ERF-HistNat,,,,,,
,As in RFMIP-ERF-PI-Cntrl but with present-day land use,f19d874c-c478-11e5-868e-ac72891c3257,30,1,RFMIP-ERF-LU,AGCM,RFMIP,1,30,1,1,f19d9746-c478-11e5-868e-ac72891c3257,30,piClim-lu,piClim,lu,,none,none,AGCM,CHEM AER,RFMIP-ERF-LU,,,,,,
,Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings.,,,,RFMIP-spAer-piSST-histall,AGCM,RFMIP,,,,2,,,piClim-spAer-histall,piClim,spAer,histall,none,none,AGCM,,RFMIP-spAer-piSST-histall,,,,,spAer or spAerO3?,
,Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings.,,,,RFMIP-spAer-piSST-histaer,AGCM,RFMIP,,,,2,,,piClim-spAer-histaer,piClim,spAer,histaer,none,none,AGCM,,RFMIP-spAer-piSST-histaer,,,,,spAer or spAerO3?,
,Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings.,,,,RFMIP-spAer-piSST-aer,AGCM,RFMIP,,,,2,,,piClim-spAer-aer,piClim,spAer,aer,none,none,AGCM,,RFMIP-spAer-piSST-aer,,,,,spAer or spAerO3?,
,Prescribed anthropogenic aerosol optical properties. Anthropogenic forcings.,,,,RFMIP-spAer-piSST-anthro,AGCM,RFMIP,,,,2,,,piClim-spAer-anthro,piClim,spAer,anthro,none,none,AGCM,,RFMIP-spAer-piSST-anthro,,,,,spAer or spAerO3?,
,Prescribed anthropogenic aerosol optical properties. Changes in aerosols only.,f19db050-c478-11e5-868e-ac72891c3257,2020,3,RFMIP-SpAer-aer,AOGCM,RFMIP,1,513,1850,2,f19db654-c478-11e5-868e-ac72891c3257,171,hist-spAer,hist,spAer,,none,none,AOGCM,,RFMIP-SpAer-aer,,piControl,none,CMIP,In GMD it mentions Parent?,
,Prescribed anthropogenic aerosol optical properties. All forcings.,f19db050-c478-11e5-868e-ac72891c3257,2020,3,RFMIP-SpAer-all,AOGCM,RFMIP,1,513,1850,1,f19daefc-c478-11e5-868e-ac72891c3257,171,hist-all-spAer,hist,all,spAer,none,none,AOGCM,,RFMIP-SpAer-all,,piControl,none,CMIP,"spAer or spAerO3?   Is parent piControl?  Is this like ""histtorical"" but with special treatment of aerosols?",
,"Request for specialized diagnostics: Full snapshots of spectrally-resolved aerosol optical properties for single days at PI and PD, along with model-specific direct aerosol IRF.",f19d7cca-c478-11e5-868e-ac72891c3257,0,0,RfmipIrfAer,Diagnostic,RFMIP,1,0,0,1,f19d7b76-c478-11e5-868e-ac72891c3257,0,,,,,,none,,,,,,,,"This is not an experiment, but is a request for special model output from the piControl and historical runs.",
,Offline radiation calculations,,,,RFMIP-IRF,RAD,RFMIP,,,,1,,,rad-irf,rad,irf,,none,none,RAD,,RFMIP-IRF,,,,,,
,Future scenario with low radiative forcing by the end of century. Following approximately RCP2.6 global forcing pathway but with new forcing based on SSP1. Concentration-driven.,,,,SSP126,AOGCM,ScenarioMIP,,,,1,,,ssp126,,,,none,none,AOGCM,CHEM AER,ssp126,update of RCP2.6 based on SSP1,historical,none,CMIP,,
,"Extension of SSP1_26 to 2300, in style of CMIP5 extension. Extends negative emissions level reached in 2100 to produce slowly declining forcing.",f19dd486-c478-11e5-868e-ac72891c3257,2300,1,SSP126ext,AOGCM,ScenarioMIP,1,199,2101,2,f19ddfda-c478-11e5-868e-ac72891c3257,199,,,,,,none,,,,long-term extension of ssp126 to 2300,,,,"an extension of ssp126, so doesn't need a separate experiment_id",
,Extension of SSP5_34over to 2300,,,,SSP534overext,AOGCM,ScenarioMIP,,,,2,,,,,,,,none,,,,long-term extension of ssp534over to 2300,,,,"an extension of ssp534-over, so doesn't need a separate experiment_id",
,21st century overshoot scenario relative to SSP5_34. Branches from SS5_85 at 2040 with emissions reduced to zero by 2070 and negative thereafter.,f19dd486-c478-11e5-868e-ac72891c3257,2100,1,SSP534over,AOGCM,ScenarioMIP,1,86,2015,2,f19de296-c478-11e5-868e-ac72891c3257,86,ssp534-over,ssp534,over,,none,none,AOGCM,CHEM AER,ssp534-over,overshoot of 3.4 W/m**2 branching from ssp585 in 2040,ssp585,none,ScenarioMIP,,
,Future scenario with medium radiative forcing by the end of century. Following approximately RCP6.0 global forcing pathway but with new forcing based on SSP4. Concentration-driven.,f19dd486-c478-11e5-868e-ac72891c3257,2100,1,SSP460,AOGCM,ScenarioMIP,1,86,2015,2,f19dd33c-c478-11e5-868e-ac72891c3257,86,ssp460,ssp460,,,none,none,AOGCM,CHEM AER,ssp460,update of RCP6.0 based on SSP4,historical,none,CMIP,,
,Future scenario with medium radiative forcing by the end of century. Following approximately RCP4.5 global forcing pathway but with new forcing based on SSP2. Concentration-driven.,f19dc61c-c478-11e5-868e-ac72891c3257,2100,1,SSP245,AOGCM,ScenarioMIP,1,86,2015,1,f19dcdba-c478-11e5-868e-ac72891c3257,86,ssp245,ssp245,,,none,none,AOGCM,CHEM AER,ssp245,update of RCP4.5 based on SSP2,historical,none,CMIP,,
,"Future scenario with high radiative forcing by the end of century. Reaches about 7.0 W/m2 by 2100; fills gap in RCP forcing pathways between 6.0 and 8.5 W/m2. Concentration-driven. At least 9 further perturbed IC ensemble members (if not 9, as many as possible).",,,,SSP370ens,AOGCM,ScenarioMIP,,,,2,,,,,,,,none,,,,IC ensemble of ssp370,,,,"an esemble of ssp370, so doesn't need a separate experiment_id",
,Future scenario with high radiative forcing by the end of century. Reaches about 7.0 W/m2 by 2100; fills gap in RCP forcing pathways between 6.0 and 8.5 W/m2. Concentration-driven.,f19dc61c-c478-11e5-868e-ac72891c3257,2100,1 10,SSP370,AOGCM,"ScenarioMIP, AerChemMIP, LUMIP",1,860,2015,1,f19dca36-c478-11e5-868e-ac72891c3257,86,ssp370,ssp370,,,none,none,AOGCM,CHEM AER,ssp370,gap-filling scenario reaching 7.0 based on SSP3,historical,none,CMIP,AerChemMIP also wants this done.,
,Future scenario with low radiative forcing by the end of century. Reaches about 3.4 W/m2 by 2100; fills gap in RCP forcing pathways between 4.5 and 2.6 W/m2. Concentration-driven.,f19dd486-c478-11e5-868e-ac72891c3257,2100,1,SSP434,AOGCM,ScenarioMIP,1,86,2015,2,f19dd738-c478-11e5-868e-ac72891c3257,86,ssp434,ssp434,,,none,none,AOGCM,CHEM AER,ssp434,gap-filling scenario reaching 3.4 based on SSP4,historical,none,CMIP,,
,Future scenario with high radiative forcing by the end of century. Following approximately RCP8.5 global forcing pathway but with new forcing based on SSP5. Concentration-driven.,f19dc61c-c478-11e5-868e-ac72891c3257,2100,1,SSP585,AOGCM,ScenarioMIP,1,86,2015,1,f19dc4c8-c478-11e5-868e-ac72891c3257,86,ssp585,ssp585,,,none,none,AOGCM,CHEM AER,ssp585,update of RCP8.5 based on SSP5,historical,none,CMIP,,
,"Extension of SSP5_85 to 2300, in style of CMIP5 extension. Assumes emissions eventually decline from 2100 levels to produce stabilized forcing by 2300.",f19dd486-c478-11e5-868e-ac72891c3257,2300,1,SSP585ext,AOGCM,ScenarioMIP,1,199,2101,2,f19dda4e-c478-11e5-868e-ac72891c3257,199,,,,,,none,,,,long-term extension of ssp585 to 2300,,,,"an extension of ssp534, so doesn't need a separate experiment_id",
,Future scenario with low radiative forcing by the end of century. Following a forcing pathway below RCP2.6. Specific SSP and 2100 forcing level to be finalized with IAM groups within next few months. Concentration-driven.,f19de6a6-c478-11e5-868e-ac72891c3257,2100,1,SSPXY,AOGCM,ScenarioMIP,1,86,2015,2,f19de552-c478-11e5-868e-ac72891c3257,86,sspxy,sspxy,,,none,none,AOGCM,CHEM AER,sspxy,low-end scenario informing 1.5C goal,historical,none,CMIP,"""x"" AND ""y"" have yet to be determined PRECISELY",
,"Early 19th century cluster of strong tropical volcanic eruptions, including the 1809 event of unknown location, and the 1815 Tambora and 1835 Cosigueina eruptions.",f19e01b8-c478-11e5-868e-ac72891c3257,TBD,3,VolLongC19thC,AOGCM,VolMIP,3,150,Preindustrial conditions,2,f19e0028-c478-11e5-868e-ac72891c3257,50,volcCluster,volcCluster,,,none,none,AOGCM,CHEM AER,,long volcanic-forcing-only experiment with cluster of eruption,piControl,none,CMIP,,
,"Idealized equatorial eruption corresponding to an initial emission of 60 Tg of SO2.  This eruption has a magnitude roughly corresponding to the 1815 Tambora eruption, the largest historical tropical eruption, which was linked to the so-called ""year without a summer"" in 1816.",,,,VolLongS60EQ,AOGCM,VolMIP,,,Preindustrial conditions,?,,,volcEq-S60,volcEq,S60,,none,none,AOGCM,CHEM AER,,long volcanic-forcing-only experiment with single equatorial eruption,piControl,none,CMIP,,
,"Idealized high-latitude (60oN) eruption emitting 100 Tg of SO2 over five months. The eruption""s strength and length roughly correspond to that of the 1783-84 Laki eruption.",f19df6b4-c478-11e5-868e-ac72891c3257,TBD,9,VolLongS100HL,AOGCM,VolMIP,9,180,Preindustrial conditions,2,f19dfd6c-c478-11e5-868e-ac72891c3257,20,volcHL-S100,volcHL,S100,,none,none,AOGCM,CHEM AER,,long volcanic-forcing-only experiment with single high-latitude eruption,piControl,none,CMIP,,
,"1991 Pinatubo forcing as used in the CMIP6 historical simulations.  Requires special diagnostics of parameterized and resolved wave forcings, radiative and latent heating rates. A large number of ensemble members is required to address internal atmospheric variability.",f19dfab0-c478-11e5-868e-ac72891c3257,TBD,25,VolShort20EQfull,AOGCM,VolMIP,25,75,Preindustrial conditions,1,f19df966-c478-11e5-868e-ac72891c3257,3,volcEq-full,volcEq,full,,none,none,AOGCM,CHEM AER,,Pinatubo experiment wit [...]
,"As VolShort20EQfull, but as decadal prediction runs. Joint experiment with DCPP, forcing input and implementation of the forcing fully comply with the VolMIP protocol",f19dfab0-c478-11e5-868e-ac72891c3257,TBD,10,Volshort20eqiniDcppC21,AOGCM,VolMIP,10,50,Preindustrial conditions,3,f19e0ec4-c478-11e5-868e-ac72891c3257,5,volcEq-ini,volcEq,ini,,none,none,AOGCM,CHEM AER,,Pinatubo experiment in decadal climate prediction setup,piControl,none,CMIP,,
,"As VolShort20EQfull, but with a slab ocean",f19dfab0-c478-11e5-868e-ac72891c3257,TBD,25,VolShort20EQslab,AGCM SLAB,VolMIP,25,75,Preindustrial conditions,3,f19e0c12-c478-11e5-868e-ac72891c3257,3,volcEq-slab,volcEq,slab,,none,none,AGCM SLAB,CHEM AER,,Pinatubo experiment with full volcanic forcing and slab ocean,piControl,none,CMIP,,
,"As VolShort20EQfull, but with prescribed aerosol heating rates in the stratosphere. Complimentary experiment to VolShort20EQstrat.",f19e0686-c478-11e5-868e-ac72891c3257,TBD,25,VolShort20EQstrat,AOGCM,VolMIP,25,75,Preindustrial conditions,2,f19e0942-c478-11e5-868e-ac72891c3257,3,volcEq-strat,volcEq,strat,,none,none,AOGCM,CHEM AER,,Pinatubo experiment with only long-wave forcing,piControl,none,CMIP,,
,"As VolShort20EQfull, but with prescribed surface cooling patterns or net  surface flux changes. Complimentary experiment to VolShort20EQstrat.",f19e0686-c478-11e5-868e-ac72891c3257,TBD,25,VolShort20EQsurf,AOGCM,VolMIP,25,75,Preindustrial conditions,2,f19e0532-c478-11e5-868e-ac72891c3257,3,volcEq-surf,volcEq,surf,,none,none,AOGCM,CHEM AER,,Pinatubo experiment with only short-wave forcing,piControl,none,CMIP,,
\ No newline at end of file
diff --git a/TestTables/CMIP6_expt_list_062116.csv b/TestTables/CMIP6_expt_list_062116.csv
deleted file mode 100644
index 74f5ab8..0000000
--- a/TestTables/CMIP6_expt_list_062116.csv
+++ /dev/null
@@ -1 +0,0 @@
-description,original label,mip,# of sub-expts.,min ens. size,start year,end year,min. # yrs/sim,tier,experiment_id,seg-1,seg-2,seg-3,sub_ experiment_ id,required model components,additional allowed model components,experiment label used in final version of GMD article,experiment title,sub_experiment (title),parent_ experiment_id,parent_sub_ experiment_id,parent_activity_id,Questions/Comments/Notes,number of char.,
"Historical WMGHG and halocarbons concentrations,  1850 NTCF emissions",HISTghg,AerChemMIP,1,3,1850,2014,165,1,hist-piNTCF,hist,piNTCF,,none,AOGCM AER CHEM,BGM,hist-piNTCF,"historical forcing, but with pre-industrial NTCF emissions",none,piControl,none,CMIP,,11,
"Historical WMGHG, halocarbon concentrations and O3 precursor emissions, 1850 aerosol precursor emissions",HISTghgntcf,AerChemMIP,1,3,1850,2014,165,2,hist-piAer,hist,piAer,,none,AOGCM AER,CHEM BGM,hist-piAer,"historical forcing, but with pre-industrial aerosol emissions",none,piControl,none,CMIP,,10,
"Historical WMGHG concentrations and NTCF emissions, 1950 halocarbon concentrations, start 1950",HISTghgntcfhc1950,AerChemMIP,1,3,1950,2014,65,1,hist-1950HC,hist,1950HC,,none,AOGCM AER CHEM,BGM,hist-1950HC,"historical forcing, but with1950s halocarbon concentrations; initialized in 1950",none,historical,none,CMIP,,11,
Historical transient with SSTs prescribed from historical,,AerChemMIP,1,1,1850,2014,165,1,histSST,histSST,,,none,AGCM AER,CHEM,histSST,historical prescribed SSTs and historical forcing,none,,,,,7,
"Historical WMGHG concentrations and halocarbons emissions, 1850 NTCF emissions, prescribed SSTs",HISTsstghgntcf1850,AerChemMIP,1,1,1850,2014,165,1,histSST-piNTCF,histSST,piNTCF,,none,AGCM AER CHEM,,histSST-piNTCF,"historical SSTs and historical forcing, but with pre-industrial NTCF emissions",none,,,,,14,
"Historical WMGHG, halocarbon concentrations and tropospheric ozone precursors emissions, 1850 aerosol precursor emissions, prescribed SSTs",HISTsstghgntcf,AerChemMIP,1,3,1850,2014,165,2,histSST-piAer,histSST,piAer,,none,AGCM AER,CHEM,histSST-piAer,"historical SSTs and historical forcing, but with pre-industrial aerosol emissions",none,,,,,13,
"Historical WMGHG, halocarbon concentrations and aerosol precursor emissions, 1850 tropospheric ozone precursors  emissions, prescribed SSTs",HISTsstghg,AerChemMIP,1,1,1850,2014,165,2,histSST-piO3,histSST,piO3,,none,AGCM AER CHEM,,histSST-piO3,"historical SSTs and historical forcing, but with pre-industrial ozone precursor emissions",none,,,,,12,
"Historical WMGHG concentrations and NTCF emissions, 1950 halocarbon concentrations",HISTsstghgntcfhc1950,AerChemMIP,1,1,1950,2014,65,1,histSST-1950HC,histSST,1950HC,,none,AGCM AER CHEM,,histSST-1950HC,"historical SSTs and historical forcing, but with1950 halocarbon concentrations",none,,,,,14,
"Historical (non-CH4) WMGHG concentrations and NTCF emissions, 1850 CH4 concentrations",WMFORCch4,AerChemMIP,1,1,1850,2014,165,1,histSST-piCH4,histSST,piCH4,,none,AGCM AER CHEM,,histSST-piCH4,"historical SSTs and historical forcing, but with pre-industrial methane concentrations",none,,,,,13,
"Historical (non-N2O) WMGHG concentrations and NTCF emissions, 1850 N2O concentrations",WMFORCn20,AerChemMIP,1,1,1850,2014,165,2,histSST-piN2O,histSST,piN2O,,none,AGCM AER CHEM,BGM,histSST-piN2O,"historical SSTs and historical forcings, but with pre-industrial N2O concentrations",none,,,,,13,
Future scenario with high radiative forcing by the end of century. Reaches about 7.0 W/m2 by 2100; fills gap in RCP forcing pathways between 6.0 and 8.5 W/m2. Concentration-driven.,NtcfrespSsp37,ScenarioMIP ,1,3,2015,2055,41,1,,,,,,,,ssp370,Gap-filling scenario reaching 7.0 based on SSP3,,,,,special output requested.,,
Future SSP3-7.0 with reduced NTCF emissions,NtcfrespSsp37ntcf,AerChemMIP,1,3,2015,2055,41,1,ssp370-lowNTCF,ssp370,lowNTCF,,none,AOGCM AER,CHEM BGM,ssp370-lowNTCF,"SSP3-7.0, with low NTCF emissions",none,historical,none,CMIP,,14,
"Future SSP3-7.0, with SSTs prescribed  from ssp370",NTCFRESPcntrl,AerChemMIP,1,1,2015,2055,41,1,ssp370SST,ssp370SST,,,none,AGCM AER,CHEM,ssp370SST,"SSP3-7.0, with  SSTs prescribed from ssp370",none,,,,,9,
"Future SSP3-7.0 with reduced NTCF emissions, prescribed SSTs",NTCFRESPntcf,AerChemMIP,1,1,2015,2055,41,1,ssp370SST-lowNTCF,ssp370SST,lowNTCF,,none,AGCM AER CHEM,,ssp370SST-lowNTCF,"SSP3-7.0, prescribed SSTs, with low NTCF emissions",none,,,,,17,
"Future SSP3-7.0 with reduced aerosol emissions (from ssp370-lowNTCF), prescribed SSTs",NTCFRESPnox,AerChemMIP,1,1,2015,2055,41,1,ssp370SST-lowAer,ssp370SST,lowAer,,none,AGCM AER,CHEM,ssp370SST-lowAer,"SSP3-7.0, prescribed SSTs, with low aerosol emissions",none,,,,,16,
"Future SSP3-7.0 with reduced black carbon emissions, prescribed SSTs",NTCFRESPbc,AerChemMIP,1,1,2015,2055,41,1,ssp370SST-lowBC,ssp370SST,lowBC,,none,AGCM AER,CHEM,ssp370SST-lowBC,"SSP3-7.0, prescribed SSTs, with low black carbon emissions",none,,,,,15,
"Future SSP3-7.0 with reduced ozone precursor emisions (from ssp370-lowNTCF), prescribed SSTs",NTCFRESPo3,AerChemMIP,1,1,2015,2055,41,1,ssp370SST-lowO3,ssp370SST,lowO3,,none,AGCM AER CHEM,,ssp370SST-lowO3,"SSP3-7.0, prescribed SSTs, with low ozone precursor emissions",none,,,,,15,
"Future SSP3-7.0 with reduced CH4 concentrations, prescribed SSTs",NTCFRESPo3ch4,AerChemMIP,1,1,2015,2055,41,1,ssp370SST-lowCH4,ssp370SST,lowCH4,,none,AGCM AER CHEM,,ssp370SST-lowCH4,"SSP3-7.0, prescribed SSTs, with low methane concentrations",none,,,,,16,
" Future SSP3-7.0 with low land use change (from ssp126), prescribed SSTs",,AerChemMIP,1,1,2015,2055,41,1,ssp370SST-ssp126Lu,ssp370SST,ssp126Lu,,none,AGCM AER,CHEM,ssp370SST-ssp126Lu,"SSP3-7.0, prescribed SSTs, with SSP1-2.6 land use",none,,,,,18,
1850 control ,RFDOCcntrl,RFMIP AerChemMIP,1,1,,,30,1,,,,,,,,piClim-control,effective radiative forcing in present-day ,,,,,This is listed under RFMIP.,,
Perturbation from 1850 control using 2014 aerosol and ozone precursor emissions,RFDOCntcf,AerChemMIP,1,1,,,30,1,piClim-NTCF,piClim,NTCF,,none,AGCM AER CHEM,,piClim-NTCF,"pre-industrial climatolgical SSTs and forcing, but with 2014 NTCF emissions",none,,,,,11,
Perturbation from 1850 control using 2014 aerosol emissions,RFDOCbc,AerChemMIP,1,1,,,30,2,piClim-aer,piClim,aer,,none,AGCM AER,CHEM,piClim-aer,"pre-industrial climatological SSTs and forcing, but 2014 aerosol emissions",none,,,,,10,
Perturbation from 1850 control using 2014 BC emissions,RFDOCbc,AerChemMIP,1,1,,,30,2,piClim-BC,piClim,BC,,none,AGCM AER,CHEM,piClim-BC,"pre-industrial climatological SSTs and forcing, but with 2014 black carbon emissions",none,,,,,9,
Perturbation from 1850 control using 2014 ozone precursor emissions,RFDOCo3,AerChemMIP,1,1,,,30,2,piClim-O3,piClim,O3,,none,AGCM AER CHEM,,piClim-O3,"pre-industrial climatological SSTs and forcing, but with 2014 ozone precursor emissions",none,,,,,9,
Perturbation from 1850 control using 2014 CH4 concentrations,RFDOCch4,AerChemMIP,1,1,,,30,2,piClim-CH4,piClim,CH4,,none,AGCM AER CHEM,,piClim-CH4,"pre-industrial climatological SSTs and forcing, but with 2014 methane concentrations (including chemistry)",none,,,,,10,
Perturbation from 1850 control using 2014 N2O concentrations,RFDOCn2o,AerChemMIP,1,1,,,30,2,piClim-N2O,piClim,N2O,,none,AGCM AER CHEM,,piClim-N2O,"pre-industrial climatological SSTs and forcing, but with 2014 N2O concentrations (including chemistry)",none,,,,,10,
Perturbation from 1850 control using 2014 halocarbon concentrations,RFDOCods,AerChemMIP,1,1,,,30,2,piClim-HC,piClim,HC,,none,AGCM AER CHEM,,piClim-HC,"pre-industrial climatological SSTs and forcing, but with 2014 halocarbon concentrations (including chemistry)",none,,,,,9,
Perturbation from 1850 control using 2014 NOx emissions,RFDOCnox,AerChemMIP,1,1,,,30,3,piClim-NOX,piClim,NOX,,none,AGCM AER CHEM,,piClim-NOX,"pre-industrial climatological SSTs and forcing, but with 2014 NOx emissions",none,,,,,10,
Perturbation from 1850 control using 2014 CO/VOC emissions,RFDOCcovoc,AerChemMIP,1,1,,,30,3,piClim-VOC,piClim,VOC,,none,AGCM AER CHEM,,piClim-VOC,"pre-industrial climatological SSTs and forcing, but with 2014 VOC emissions",none,,,,,10,
1850 control with doubled dust emissions,FDBCKdust,AerChemMIP,1,1,,,30,2,piClim-2xdust,piClim,2xdust,,none,AGCM AER,CHEM,piClim-2xdust,"pre-industrial climatological SSTs and forcing, but with doubled emissions of dust",none,,,,,13,
1850 control with doubled sea salt emissions,FDBCKss,AerChemMIP,1,1,,,30,2,piClim-2xss,piClim,2xss,,none,AGCM AER,CHEM,piClim-2xss,"pre-industrial climatological SSTs and forcing, but with doubled emissions of sea salt",none,,,,,11,
1850 control with doubled emissions of DMS,FDBCKdms,AerChemMIP,1,1,,,30,3,piClim-2xDMS,piClim,2xDMS,,none,AGCM AER,CHEM,piClim-2xDMS,"pre-industrial climatological SSTs and forcing, but with doubled emissions of DMS",none,,,,,12,
1850 control with doubled emissions of fires,FDBCKfire,AerChemMIP,1,1,,,30,3,piClim-2xfire,piClim,2xfire,,none,AGCM AER,CHEM,piClim-2xfire,"pre-industrial climatological SSTs and forcing, but with doubled emissions from fires",none,,,,,13,
1850 control with doubled emissions of lightning Nox,FDBCKnox,AerChemMIP,1,1,,,30,3,piClim-2xNOX,piClim,2xNOX,,none,AGCM AER CHEM,,piClim-2xNOX,"pre-industrial climatological SSTs and forcing, but with doubled production of NOX due to lightning",none,,,,,12,
1850 control with doubled emissions of biogenic VOCs,FDBCKvoc,AerChemMIP,1,1,,,30,3,piClim-2xVOC,piClim,2xVOC,,none,AGCM AER CHEM,,piClim-2xVOC,"pre-industrial climatological SSTs and forcing, but with doubled emissions of biogenic VOCs",none,,,,,12,
Biogeochemically-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling,esm1pcbgc,C4MIP,1,1,,,150,1,1pctCO2-bgc,1pctCO2,bgc,,none,AOGCM BGM,AER CHEM,1pctCO2-bgc,biogeochemically-coupled version of 1 percent per year increasing CO2 experiment,none,piControl,none,CMIP,,11,
"Fully-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling, plus an additional scenario of anthropogenic nitrogen deposition",esm1pccouNdep,C4MIP,1,1,,,150,2,1pctCO2Ndep,1pctCO2Ndep,,,none,AOGCM BGM,AER CHEM BGM,1pctCO2Ndep,1 percent per year increasing CO2 experient with increasing N-deposition,none,piControl,none,CMIP,,11,
"Biogeochemically-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling, plus an additional scenario of anthropogenic nitrogen deposition",esm1pcbgcNdep,C4MIP,1,1,,,150,2,1pctCO2Ndep-bgc,1pctCO2Ndep,bgc,,none,AOGCM BGM,AER CHEM,1pctCO2Ndep-bgc,biogeochemically-coupled version of 1 percent per year increasing CO2 experiment with increasing N-deposition,none,piControl,none,CMIP,,15,
Radiatively-coupled specified concentration simulation in which CO2 increases at a rate of 1% per year until quadrupling,esm1pcrad,C4MIP,1,1,,,150,2,1pctCO2-rad,1pctCO2,rad,,none,AOGCM BGM,AER CHEM,1pctCO2-rad,radiatively-coupled version of 1 percent per year increasing CO2 experiment,none,piControl,none,CMIP,,11,
"Concentration-driven historical simulation,  biogeochemically-coupled",esmhistbgc,C4MIP,1,1,1850,2014,165,2,hist-bgc,hist,bgc,,none,AOGCM BGM,AER CHEM,hist-bgc,biogeochemically-coupled version of the simulation of the recent past with CO2 concentration prescribed ,none,piControl,none,CMIP,,8,
Emissions-driven future scenario simulation,Esmssp585,C4MIP,1,1,2015,2100,85,1,esm-ssp585,esm,ssp585,,none,ESM,AER CHEM,esm-ssp585,emission-driven RCP8.5 based on SSP5,none,esm-hist,none,CMIP,,10,
"Concentration-driven future scenario simulation,  biogeochemically-coupled",Esmssp585bgc,C4MIP,1,1,2015,2100,85,2,ssp585-bgc,ssp585,bgc,,none,AOGCM BGM,AER CHEM,ssp585-bgc,biogeochemically-coupled version of the RCP8.5 based on SSP5,none,hist-bgc,none,C4MIP,,10,
,,C4MIP,1,1,2015,2100,85,2,ssp585-over-bgc,ssp585,over,bgc,none,AOGCM BGM,AER CHEM,ssp585-over-bgc,biogeochemically-coupled version of the RCP3.4-overshoot based on SSP5,none,hist-bgc,none,C4MIP,,15,
Concentration-driven future scenario simulation extension to 2300 biogeochemically-coupled,Esmssp585extbgc,C4MIP,1,1,2101,2300,200,2,,,,,,,,ssp585-bgc,biogeochemically-coupled version of the RCP8.5 based on SSP5,,,,,extension of ssp585-bgc to year 2300.,,
"Identical to the DECK abrupt-4xCO2, but at 0.5xCO2",Abrupt05xco2,CFMIP,1,1,,,150,2,abrupt-0p5xCO2,abrupt,0p5xCO2,,none,AOGCM,AER CHEM BGM,abrupt-0p5xCO2,abrupt halving of CO2,none,piControl,none,CMIP,,14,
"Identical to the DECK abrupt-4xCO2, but at 2xCO2",abrupt2xCO2,CFMIP,1,1,,,150,2,abrupt-2xCO2,abrupt,2xCO2,,none,AOGCM,AER CHEM BGM,abrupt-2xCO2,abrupt doubling of CO2,none,piControl,none,CMIP,,12,
"Conceptually similar to abrupt 4xCO2 DECK experiment, except that the solar constant rather than CO2 is abruptly reduced by 4%.",abruptSm4,CFMIP,1,1,,,150,2,abrupt-solm4p,abrupt,solm4p,,none,AGCM,AER CHEM,abrupt-solm4p,abrupt 4% decrease in solar constant,none,piControl,none,CMIP,,13,
"Conceptually similar to abrupt 4xCO2 DECK experiment, except that the solar constant rather than CO2 is abruptly increased by 4%.",abruptSp4,CFMIP,1,1,,,150,2,abrupt-solp4p,abrupt,solp4p,,none,AGCM,AER CHEM,abrupt-solp4p,abrupt 4% increase in solar constant,none,piControl,none,CMIP,,13,
"This a single ensemble member of the AMIP DECK experiment which contains additional outputs which are required for model evaluation using COSP, and as control values for model outputs in the amip-p4K, amip-4xCO2, amip-future4K and amip-m4K experiments.",amip,CMIP,1,1,1979,2014,36,1,,,,,,,,amip,AMIP DECK ensemble member with extra CFMIP outputs,,,,,special output requested.,,
As CMIP5/CFMIP-2 amip4K experiment.  AMIP experiment where SSTs are subject to a uniform warming of 4K.,amip4K,CFMIP,1,1,1979,2014,36,1,amip-p4K,amip,p4K,,none,AGCM,AER CHEM,amip-p4K,AMIP with uniform 4K SST increase,none,,,,changed name from amip4K in CMIP5  to parallel other expts. in CMIP6.,8,
As CMIP5/CFMIP-2 amip4xCO2 experiment.  AMIP experiment where SSTs are held at control values and the CO2 seen by the radiation scheme is quadrupled.,amip4xCO2,CFMIP,1,1,1979,2014,36,1,amip-4xCO2,amip,4xCO2,,none,AGCM,AER CHEM,amip-4xCO2,AMIP SSTs with 4xCO2,none,,,,,10,
"As CMIP5/CFMIP-2 amipFuture experiment.  AMIP experiment where SSTs are subject to a composite SST warming pattern derived from coupled models, scaled to an ice-free ocean mean of 4K.",amipFuture,CFMIP,1,1,1979,2014,36,1,amip-future4K,amip,pat4K,,none,AGCM,AER CHEM,amip-future4K,AMIP with patterned 4K SST increase,none,,,,,13,
As amip experiment but SSTs are subject to a uniform cooling of 4K.,amipMinus4K,CFMIP,1,1,1979,2014,36,2,amip-m4K,amip,m4K,,none,AGCM,AER CHEM,amip-m4K,AMIP with uniform 4K SST decrease,none,,,,,8,
Identical to standard AMIP experiment but from 1870-present with constant pre-industrial forcing levels (anthro & natural),amipPiForcing,CFMIP,1,1,1870,2014,145,2,amip-piForcing,amip,piForcing,,none,AGCM,AER CHEM,amip-piForcing,AMIP SSTs with pre-industrial anthro and natural forcing,none,,,,,14,
Extended version of CMIP5/CFMIP-2 aqua4K experiment.  Aquaplanet experiment where SSTs are subject to a uniform warming of 4K.,aqua4K,CFMIP,1,1,,,10,1,aqua-p4K,aqua,p4K,,none,AGCM,AER CHEM,aqua-p4K,aquaplanet with uniform 4K SST increase,none,,,,"changed name from ""aqua4K"" in CMIP5 to ""aqua-p4K"" in CMIP6. to parallel names of other experiments.",8,
Extended version of CMIP5/CFMIP-2 aqua4xCO2 experiment.  Aquaplanet experiment where SSTs are held at control values and the CO2 seen by the radiation scheme is quadrupled.,aqua4xCO2,CFMIP,1,1,,,10,1,aqua-4xCO2,aqua,4xCO2,,none,AGCM,AER CHEM,aqua-4xCO2,aquaplanet with control SST and 4xCO2,none,,,,,10,
Extended version of CMIP5/CFMIP-2 aquaControl experiment.  Aquaplanet (no land) experiment with no seasonal cycle forced with specified zonally symmetric SSTs.,aquaControl,CFMIP,1,1,,,10,1,aqua-control,aqua,control,,none,AGCM,AER CHEM,aqua-control,aquaplanet control,none,,,,,12,
"As amip experiment, but with cloud-radiative effects switched off in the LW radiation code.",offlwamip,CFMIP,1,1,1979,2014,36,2,amip-lwoff,amip,lwoff,,none,AGCM,AER CHEM,amip-lwoff,AMIP experiment with longwave cloud-radiative effects off,none,,,,,10,
"As amip-p4K experiment, but with cloud-radiative effects switched off in the LW radiation code.",offlwamip4K,CFMIP,1,1,1979,2014,36,2,amip-p4K-lwoff,amip,p4K,lwoff,none,AGCM,AER CHEM,amip-p4K-lwoff,AMIP experiment with uniform 4K SST increase and with longwave cloud radiative effects off,none,,,,,14,
"As aqua-p4K experiment, but with cloud-radiative effects switched off in the LW radiation code.",offlwaqua4K,CFMIP,1,1,,,10,2,aqua-p4K-lwoff,aqua,p4K,lwoff,none,AGCM,AER CHEM,aqua-p4K-lwoff,aquaplanet with uniform 4K SST increase and with longwave cloud radiative effects off,none,,,,,14,
"As aqua-control experiment, but with cloud-radiative effects switched off in the LW radiation code.",offlwaquaControl,CFMIP,1,1,,,10,2,aqua-control-lwoff,aqua,control,lwoff,none,AGCM,AER CHEM,aqua-control-lwoff,aquaplanet control with longwave cloud radiative effects off,none,,,,,18,
"An AGCM experiment with monthly-varying SSTs, sea-ice, atmospheric constituents and any other necessary boundary conditions (e.g. vegetation if required) taken from each model's own piControl run (using the 30 years of piControl that are parallel to years 111-140 of its abrupt4xCO2 run). Dynamic vegetation should be turned off in all the piSST set of experiments.",sstPi,CFMIP,1,1,Year 111-140 of piControl,Year 111-140 of piControl,30,2,piSST,piSST,,,none,AGCM,AER CHEM,piSST,"experiment f [...]
"Same as piSST, but with a spatially and temporally uniform SST anomaly applied on top of the monthly-varying piSST SSTs. The magnitude of the uniform increase is taken from each model's global, climatological annual mean SST change between abrupt4xCO2 minus piControl (using the mean of years 111-140 of abrupt4xCO2, and the parallel 30-year section of piControl).",sstPiUniform,CFMIP,1,1,,,20,2,piSST-pxK,piSST,pxK,,none,AGCM,AER CHEM,piSST-pxK,as piSST with uniform SST increase with magnit [...]
Same as piSST but CO2 as seen by the radiation scheme is quadrupled.,sstPi4xCO2,CFMIP,1,1,,,30,2,piSST-4xCO2-rad,piSST,4xCO2,rad,none,AGCM,AER CHEM,piSST-4xCO2-rad,as piSST with radiation-only seeing 4xCO2,none,,,,,15,
Same as piSST but CO2 is quadrupled. The increase in CO2 is seen by both the radiation scheme and vegetation.,sstPi4xCO2Veg,CFMIP,1,1,,,30,2,piSST-4xCO2,piSST,4xCO2,,none,AGCM,AER CHEM,piSST-4xCO2,as piSST with radiation and vegetation seeing 4xCO2,none,,,,,11,
"As piSST, but with monthly-varying SSTs taken from years 111-140 of each model's own abrupt4xCO2 experiment instead of from piControl. Sea-ice is unchanged from piSST.",new experiment,CFMIP,1,1,,,30,2,a4SST,a4SST,,,none,AGCM,AER CHEM,a4SST,as piSST but with SSTs from abrupt4xCO2,none,,,,,5,
"As piSST, but with monthly-varying SSTs and sea-ice taken from years 111-140 of each model's own abrupt4xCO2 experiment instead of from piControl.",sstPiFuture,CFMIP,1,1,,,30,2,a4SSTice,a4SSTice,,,none,AGCM,AER CHEM,a4SSTice,as piSST but with SSTs and sea ice from abrupt4xCO2,none,,,,,8,
"As a4SSTice, but CO2 is quadrupled, and the increase in CO2 is seen by both the radiation scheme and vegetation.",sstPiTot,CFMIP,1,1,,,30,2,a4SSTice-4xCO2,a4SSTice,4xCO2,,none,AGCM,AER CHEM,a4SSTice-4xCO2,"as piSST but with SSTs and sea ice from abrupt4xCO2, and 4xCO2 seen by radiation and vegetation.",none,,,,,14,
"Same as amip, but a patterned SST anomaly is applied on top of the monthly-varying amip SSTs. This anomaly is a monthly climatology, taken from each model's own abrupt4xCO2 run minus piControl (using the mean of years 111-140 of abrupt4xCO2, and the parallel 30-year section of piControl). CO2 is quadrupled, and the increase in CO2 is seen by both the radiation scheme and vegetation.",sstPiTot,CFMIP,1,1,,,36,2,amip-a4SST-4xCO2,amip,a4SST,4xCO2,none,AGCM,AER CHEM,amip-a4SST-4xCO2,as AMIP b [...]
DECK: 1pctCO2,1pctCO2,CMIP,1,1, , ,150,1,1pctCO2,1pctCO2,,,none,AOGCM,AER CHEM BGM,1pctCO2,1 percent per year increase in CO2,none,piControl,none,CMIP,,7,
DECK: abrupt4xCO2,abrupt4xCO2,CMIP,1,1, , ,150,1,abrupt-4xCO2,abrupt,4xCO2,,none,AOGCM,AER CHEM BGM,abrupt-4xCO2,abrupt quadrupling of CO2,none,piControl,none,CMIP,,12,
DECK: AMIP,AMIP,CMIP,1,1,1979,2014,36,1,amip,amip,,,none,AGCM,AER CHEM,amip,AMIP,none,,,,,4,
DECK: control,control,CMIP,1,1, , ,500,1,piControl,piControl,,,none,AOGCM,AER CHEM BGM,piControl,pre-industrial control,none,piControl-spinup,none,CMIP,,9,
DECK: control (emission-driven),esmControl,CMIP,1,1, , ,500,1,esm-piControl,esm,piControl,,none,ESM,AER CHEM,esm-piControl,pre-industrial control simulation with CO2 concentration calculated,none,esm-piControl-spinup,none,CMIP,,13,
DECK: spin-up portion of the control,,CMIP,1,1,,,100,2,piControl-spinup,piControl,spinup,,none,AOGCM,AER CHEM BGM,piControl-spinup,pre-industrial control (spin-up),none,,,,,16,
DECK: spin-up portion of the control (emission-driven),,CMIP,1,1,,,100,2,esm-piControl-spinup,esm,piControl,spinup,none,ESM,AER CHEM,esm-piControl-spinup,pre-industrial control simulation with CO2 concentration calculated (spiin-up),none,,,,,20,
CMIP6 historical ,historical,CMIP,1,1,1850,2014,165,1,historical,historical,,,none,AOGCM,AER CHEM BGM,historical,all-forcing simulation of the recent past,none,piControl,none,CMIP,,10,
CMIP6  historical (CO2 emission-driven),esmHistorical,CMIP,1,1,1850,2014,165,1,esm-hist,esm,hist,,none,ESM,AER CHEM,esm-hist,all-forcing simulation of the recent past with atmospheric CO2 concentration calculated ,none,esm-piControl,none,CMIP,,8,
Extension beyond 2014 of the CMIP6 historical ,,CMIP,1,1,2015,,1,2,historical-ext,historical,ext,,none,AOGCM,AER CHEM BGM,historical-ext,post-2014 all-forcing simulation,none,historical,none,CMIP,,14,
Extension beyond 2014 of the CMIP6 historical  (CO2 emission-driven),,CMIP,1,1,2015,,1,2,esm-hist-ext,esm,hist,ext,none,ESM,AER CHEM,esm-hist-ext,post-2014 all-forcing simulation with atmospheric CO2 concentration calculated,none,esm-hist,none,CMIP,,12,
Historical anthropogenic-Aerosols-only run. ,histAER,DAMIP,1,3,1850,2020,171,1,hist-aer,hist,aer,,none,AOGCM,"AER CHEM, BGM",histAER,historical anthropogenic aerosols-only run,none,piControl,none,CMIP,,8,
Historical CO2-only run. ,histCO2,DAMIP,1,3,1850,2020,171,3,hist-CO2,hist,CO2,,none,AOGCM,"AER CHEM, BGM",histCO2,historical CO2-only run,none,piControl,none,CMIP,,8,
Enlarge SSP2-4.5 ensemble to 10 members bu only for years 2015-2020,,DAMIP,1,9,2015,2020,6,1,,,,,,,,ssp245,update of RCP4.5 based on SSP2,,,,,"enlarge ssp245, but just for years 2015-2020",,
"* Enlarging ensemble size of the CMIP6 hisorical simulations (2015-2020 under SSP2-4.5 of ScenarioMIP) to at least three members. * DCPP: DCPP proposes a 10 member ensemble of histALL up to 2030 also extended with SSP2-4.5. * Please provide output data up to 2014 as ""CMIP6 historical"" and 2015-2020 (or 2030 for DCPP) as SSP2-4.5 of ScenarioMIP.",histALL,DAMIP,1,2,1850,2020,171,1,,,,,,,,historical,all-forcing simulation of the recent past,,,,, enlarge historical ensemble rioMIP for 2015 [...]
Historical ALL forcing run with alternate estimates of aerosol concentrations/emissions,HistallEstaer2,DAMIP,1,3,1850,2020,171,3,hist-all-aer2,hist,all,aer2,none,AOGCM,"AER CHEM, BGM",histALLestAER2,historical ALL-forcing run with alternate estimates of aerosol forcing,none,piControl,none,CMIP,,13,
Historical ALL forcing run with alternates estimate of solar and volcanic forcing,HistallEstnat2,DAMIP,1,3,1850,2020,171,3,hist-all-nat2,hist,all,nat2,none,AOGCM,"AER CHEM, BGM",histALLestNAT2,historical ALL-forcing run with alternate estimates of natural forcing,none,piControl,none,CMIP,,13,
"* Historical well-mixed GHG-only run. * Models with interactive chemistry schemes should either turn off the chemistry or use a preindustrial climatology of stratospheric and tropospheric ozone in their radiation schemes.  This will ensure that ozone is fixed in all these simulations, and simulated responses in models with and without coupled chemistry are comparable.",histGHG,DAMIP,1,3,1850,2020,171,1,hist-GHG,hist,GHG,,none,AOGCM,"AER CHEM, BGM",histGHG,historical well-mixed GHG-only r [...]
Historical natural-only run,histNAT,DAMIP,1,3,1850,2020,171,1,hist-nat,hist,nat,,none,AOGCM,"AER CHEM, BGM",histNAT,historical natural-only run,none,piControl,none,CMIP,,8,
Historical solar-only transient simulation using  settings from CMIP6 historical simulation but fixed GHG&ODS (1850 level),histSOL,DAMIP,1,3,1850,2020,171,3,hist-sol,hist,sol,,none,AOGCM,"AER CHEM, BGM",histSOL,historical solar-only run,none,piControl,none,CMIP,,8,
"* Historical stratospheric-ozone-only. *  In models with coupled chemistry, the chemistry scheme should be turned off, and the simulated ensemble mean monthly mean 3D stratospheric ozone concentrations from the histALL simulations should be prescribed. Tropospheric ozone should be fixed at 3D long-term monthly mean piControl values, with a value of 100 ppbv ozone concentration in this piControl climatology used to separate the troposphere from the stratosphere. * In models without couple [...]
Historical volcanic-only run,histVLC,DAMIP,1,3,1850,2020,171,3,hist-volc,hist,volc,,none,AOGCM,"AER CHEM, BGM",histVLC,historical volcanic-only run,none,piControl,none,CMIP,,9,
Extension of aerosol-only run under SSP2-4.5,ssp245AER,DAMIP,1,1,2021,2100,80,3,ssp245-aer,ssp245,aer,,none,AOGCM,"AER CHEM, BGM",ssp245AER,aerosol-only SSP2-4.5 run,none,hist-aer,none,DAMIP,,10,
*  Extension of well-mixed GHG-only run under SSP2-4.5. *  Models with interactive chemistry schemes should either turn off the chemistry or use a preindustrial climatology of stratospheric and tropospheric ozone in their radiation schemes.,ssp245GHG,DAMIP,1,1,2021,2100,80,2,ssp245-GHG,ssp245,GHG,,none,AOGCM,"AER CHEM, BGM",ssp245GHG,well-mixed GHG-only SSP2-4.5 run,none,hist-GHG,none,DAMIP,,10,
Extension of natural-only run under SSP2-4.5. ,ssp245NAT,DAMIP,1,1,2021,2100,80,3,ssp245-nat,ssp245,nat,,none,AOGCM,"AER CHEM, BGM",ssp245NAT,natural-only SSP2-4.5 run,none,hist-nat,none,DAMIP,,10,
"* Extension of stratospheric-ozone-only run under SSP2-4.5 *   In models with coupled chemistry, the chemistry scheme should be turned off, and the simulated ensemble mean monthly mean 3D stratospheric ozone concentrations from the SSP2-4.5 simulations should be prescribed. Tropospheric ozone should be fixed at 3D long-term monthly mean piControl values, with a value of 100 ppbv ozone concentration in this piControl climatology used to separate the troposphere from the stratosphere. * In [...]
"Decadal hindcasts begun each year from 1960 to present, or every other year at minimum",A1,DCPP,,10,1960,present (to 2019),300,1,dcppA-hindcast,dcppA,hindcast,,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,A1,year 1-5 hindcast initialized based on observations and using historical forcing,initialized near end of year YYYY,(dcppA-assim),none,DCPP,"Here and elsewhere (dcppA-assim) as the ""parent"" id applies only if available (see A2.3)",14,
Extend hindcast duration to 10 years,A2.1,DCPP,,,1850,,170,2,,,,,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,A2.1,year 6-10 hindcast initialized based on observations and using historical forcing,initialized near end of year YYYY,(dcppA-assim),none,DCPP,"experiment_id=""dcppA-hindcast""",,
Historical and future uninitialized simulations to assess the impact of initialization,A2.2,DCPP,,10,1850,2030,170,2,dcppA-historical,dcppA,historical,,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,A2.2,climate simulations initialized from control with forcing prescribed from the historical period and future scenario as in A1,initialized near end of year YYYY,,,,,16,
Assimilation runs used to generate initial conditions for hindcasts if used,A2.3,DCPP,,,,,,2,dcppA-assim,dcppA,assim,,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,A2.3,assimilation runs (if available) that are used to generate initial conditions for hindcasts and which parallel the historical simulations and use the same forcing ,initialized near end of year YYYY,,,,Some groups may insert initial conditions or initialize in other ways in which case these results will not be available ,11,
m additional ensemble members for A1,A3.1,DCPP,,,,,,3,,,,,,,,A3.1,increased ensemble size for A1,,(dcppA-assim),none,DCPP,"experiment_id=""dcppA-hindcast""",,
m additional ensemble members for A2.1,A3.2,DCPP,,12,1960,present (to 2019),300,3,,,,,,,,A3.2,increased ensemble size for A2.1,,(dcppA-assim),none,DCPP,"experiment_id=""dcppA-hindcast""",,
"Decadal hindcasts begun each year from 1960 to present, or every other year at minimum, but with no information from the future",A4.1,DCPP,,10,1960,present (to 2019),300,4,dcppA-hindcast-niff,dcppA,hindcast,niff,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,A4.1,hindcast initialized from observations without future observed forcing after initialization,initialized near end of year YYYY,(dcppA-assim),none,DCPP,,19,
"Uninitialized climate simulations as in DCPP-A2.2, but with no information from the future",A4.2,DCPP,,10,1960,present (to 2019),300,4,dcppA-historical-niff,dcppA,historical,niff,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,A4.2,hindcast initialized from historical climate simulations without observed forcing after initialization,initialized near end of year YYYY,(dcppA-assim),none,DCPP,,21,
Ongoing decadal forecasts,B1,DCPP,,10,present,ongoing each year,5,1,dcppB-forecast,dcppB,forecast,,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,B1,year 1-5 forecast initialized from observations,initialized near end of year YYYY,(dcppA-assim),none,DCPP,,14,
Ongoing decadal forecasts with m additional ensemble members,B2.1,DCPP,,12,present,ongoing each year,5,2,,,,,,,,B2.1,Increase ensemble size by m for B1,,(dcppA-assim),none,DCPP,"experiment_id = ""dcppB-forecast""",,
Ongoing decadal forecasts extended to 10 years,B2.2,DCPP,,10,present,ongoing each year,5,2,,,,,,,,B2.2,year 6-10 forecast initialized from observations,,(dcppA-assim),none,DCPP,"experiment_id = ""dcppB-forecast""",,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.1,DCPP,,10,1950 (from 1920 if possible),2015,66,1,dcppC-atl-control,dcppC,atl,control,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.1,idealized Atlantic control,initialized near end of year YYYY,,,,,17,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.2,DCPP,,10,1950 (from 1920 if possible),2015,66,1,dcppC-amv-plus,dcppC,amv,plus,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.2,idealized positive AMV anomaly pattern,initialized near end of year YYYY,,,,,14,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.3,DCPP,,10,1950,1949,30,1,dcppC-amv-minus,dcppC,amv,minus,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.3,idealized negative AMV anomaly pattern,initialized near end of year YYYY,,,,,15,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.4,DCPP,,10,1950,1949,30,1,dcppC-pac,dcppC,pac,,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.4,idealized Pacific control,initialized near end of year YYYY,,,,,9,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.5,DCPP,,10,control ,,25,1,dcppC-ipv-plus,dcppC,ipv,plus,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.5,idealized positive IPV anomaly pattern,initialized near end of year YYYY,,,,,14,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.6,DCPP,,10,control ,,25,1,dcppC-ipv-minus,dcppC,ipv,minus,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.6,idealized negative IPV anomaly pattern,initialized near end of year YYYY,,,,,15,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.7a,DCPP,,10,control ,,25,2,dcppC-amv-extrop-plus,dcppC,amv,extrop-plus,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.7,idealized positive extratropical AMV anomaly pattern,initialized near end of year YYYY,,,,,21,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.7b,DCPP,,10,1993,1996,5,2,dcppC-amv-extrop-minus,dcppC,amv,extrop-minus,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.7,idealized� impact of a negative extratropical AMV anomaly pattern,initialized near end of year YYYY,,,,,22,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.8a,DCPP,,10,1992,1999,5,2,dcppC-amv-trop-plus,dcppC,amv,trop-plus,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.8,idealized positive tropical AMV anomaly pattern,initialized near end of year YYYY,,,,,19,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.8b,DCPP,,10,1992,1999,5,2,dcppC-amv-trop-minus,dcppC,amv,trop-minus,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.8,idealized impact of a positive tropical AMV anomaly pattern,initialized near end of year YYYY,,,,,20,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,,DCPP,,,,,,2,dcppC-ipv-nextrop-plus,dcppC,ipv,nextrop-plus,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.9,idealized impact of a positive northern extratropical IPV anomaly pattern,initialized near end of year YYYY,,,,,22,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,,DCPP,,,,,,2,dcppC-ipv-nextrop-minus,dcppC,ipv,nextrop-minus,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.9,idealized impact of a negative northern extratropical IPV anomaly pattern,initialized near end of year YYYY,,,,,23,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.9,DCPP,,,,,,3,dcppC-pac-pacemaker,dcppC,pac,pacemaker,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.10,pacemaker pacific experiment,initialized near end of year YYYY,,,,,19,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C1.10,DCPP,,,,,,3,dcppC-atl-pacemaker,dcppC,atl,pacemaker,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C1.11,pacemaker atlantic experiment ,initialized near end of year YYYY,,,,,19,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C2.1,DCPP,,,,,,3,dcppC-atl-spg,dcppC,atl,spg,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C2.1,predictability of 1990s warming of Atlantic sub-polar gyre,initialized near end of year YYYY,,,,,13,
Mechanisms and predictability of the hiatus and of similar long timescale variations of both signs,C2.2,DCPP,,,,,,3,,,,,,,,C2.2,increased ensemble size for C2.1,,,,,"experiment_id = ""dcpp-atl-spg""",,
Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,C3.1,DCPP,,10,1991,1991,5,1,dcppC-hindcast-noPinatubo,dcppC,hindcast,noPinatubo,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C3.1,hindcast but with only background volcanic forcing,initialized near end of year YYYY,(dcppA-assim),none,DCPP,kept these separate,25,
Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,C3.2,DCPP,,10,1982,1982,5,2,dcppC-hindcast-noElChichon,dcppC,hindcast,noElChichon,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C3.2,,initialized near end of year YYYY,(dcppA-assim),none,DCPP,,26,
Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,C3.3,DCPP,,10,1963,1963,5,2,dcppC-hindcast-noAgung,dcppC,hindcast,noAgung,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C3.3,,initialized near end of year YYYY,(dcppA-assim),none,DCPP,,22,
Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,C3.4,DCPP,,10,2015,2015,5,1,dcppC-forecast-addPinatubo,dcppC,forecast,addPinatubo,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C3.4,2015 forecast with added Pinatubo forcing,initialized near end of year YYYY,(dcppA-assim),none,DCPP,,26,
Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,C3.5,DCPP,,10,2015,2015,5,3,dcppC-forecast-addElChichon,dcppC,forecast,addElChichon,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C3.5,2015 forecast with added El Chichon forcing,initialized near end of year YYYY,(dcppA-assim),none,DCPP,,27,
Effects of volcanoes on decadal prediction and predictability of forced and internal variability components,C3.6,DCPP,,10,2015,2015,5,3,dcppC-forecast-addAgung,dcppC,forecast,addAgung,"of form: ""sYYYY""",AOGCM,AER CHEM BGM,C3.6,2015 forecast with added Agung forcing,initialized near end of year YYYY,(dcppA-assim),none,DCPP,,23,18.7
"1xCO2 experiment, parallel to piControl, forced over the ocean simultaneously by surface windstress (as in the wind experiment), net heat flux (as in the heat experiment) and net freshwater flux (as in the water experiment) anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2, using a passive tracer to prevent negative climate feedback on the heat flux applied",allFAF,FAFMIP,1,1,,,70,2,faf-all,faf,all,,none,AOGCM,AER CHEM BGM,faf-all,"control plus p [...]
"1xCO2 experiment, parallel to piControl, forced over the ocean by surface net heat flux anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2, using a passive tracer to prevent negative climate feedback on the heat flux applied",heatFAF,FAFMIP,1,1,,,70,1,faf-heat,faf,heat,,none,AOGCM,AER CHEM BGM,faf-heat,control plus perturbative surface flux of heat into ocean,none,piControl,none,CMIP,,8,
"1xCO2 experiment, parallel to piControl, with a flux of passive tracer added at the ocean surface at the same rate as the surface net heat flux anomaly applied in the FAFMIP heat experiment.",passiveheat,FAFMIP,1,1,,,70,2,faf-passiveheat,faf,passiveheat,,none,AOGCM,AER CHEM BGM,faf-passiveheat,control plus surface flux of passive heat tracer into ocean,none,piControl,none,CMIP,,15,
"1xCO2 experiment, parallel to piControl, forced over the ocean by surface windstress anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2",stressFAF,FAFMIP,1,1,,,70,1,faf-stress,faf,stress,,none,AOGCM,AER CHEM BGM,faf-stress,control plus perturbative surface flux of momentum into ocean,none,piControl,none,CMIP,,10,
"1xCO2 experiment, parallel to piControl, forced over the ocean by surface net freshwater flux anomalies obtained from the CMIP5 ensemble mean of 1pctCO2 experiments at the time of 2xCO2",waterFAF,FAFMIP,1,1,,,70,1,faf-water,faf,water,,none,AOGCM,AER CHEM BGM,faf-water,control plus perturbative surface flux of water into ocean,none,piControl,none,CMIP,,9,
"Beginning from a preindustrial control run, simultaneously quadruple the CO2 concentration and reduce the solar constant such that the TOA radiative flux remains within +/m0.1 W/m2.",G1ext,GeoMIP,1,3,,,100,1,G1,G1,,,none,AOGCM,AER CHEM BGM,G1,abrupt quadrupling of CO2 plus reduction in total solar irradiance,none,piControl,none,CMIP,,2,
Time slice at 1850 (picontrol) for G1ext to examine radiative forcing of abrupt4xCO2,G1extSlice1,GeoMIP,1,1,,,10,2,piSST-4xCO2-solar,piSST,4xCO2,solar,none,AGCM,AER CHEM,piSST-4xCO2-solar,preindustrial conrol SSTs with quadrupled CO2 + solar reduction. ,none,,,,comparison of TOA fluxes from this simulation with those from the  piControl yields an estimate of forcing due to 4xCO2 plus compensating solar reduction (which should be near zero).,17,
Time slice at 1949 (picontrol) for G1ext to examine radiative forcing of abrupt4xCO2 + G1,G1extSlice2,GeoMIP,1,1,,,10,2,futureSST-4xCO2-solar,futureSST,4xCO2,solar,none,AGCM,AER CHEM,futureSST-4xCO2-solar,year 100 SSTs from abrupt4xCO2 with quadrupled CO2 + solar reduction,none,,,,comparison of TOA fluxes from this simulation with 10-year mean of fluxes centered around year 100 of 4xCO2 simulation yields an estimate of forcing due to solar reduction.,21,
Time slice at 2020 (ScenarioMIP Tier 1 high forcing scenario),G6Slice1,GeoMIP,1,1,,,10,2,G6SST1,G6SST1,,,none,AGCM,AER CHEM,G6SST1,"SSTs, forcings, and other prescribed conditions from year 2020 of SSP5-8.5",none,,,,This provides a baseline for estimating time-evolving forcing in G6SST2-solar and GSST2-sulfur.,6,
"Using solar irradiance reduction, return the radiative forcing from a background of the ScenarioMIP high forcing to the ScenarioMIP middle forcing.",G6solar,GeoMIP,1,3,2020,2100,81,1,G6solar,G6solar,,,none,AOGCM,AER CHEM BGM,G6solar,total solar irradiance reduction to reduce net forcing from SSP585 to SSP245,none,historical,none,CMIP,,7,
Time slice at 2100 (G6solar),G6solarSlice2,GeoMIP,1,1,,,10,2,G6SST2-solar,G6SST2,solar,,none,AGCM,AER CHEM,G6SST2-solar,SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G6solar,none,,,,comparison of TOA fluxes from this simulation with G6SST1 yields an estimate of forcing due to solar reduction. ,12,
"Using equatorial SO2 injection, return the radiative forcing from a background of the ScenarioMIP high forcing to the ScenarioMIP middle forcing.",G6sulfur,GeoMIP,1,3,2020,2100,81,1,G6sulfur,G6sulfur,,,none,AOGCM,AER CHEM BGM,G6sulfur,stratospheric sulfate aerosol injection to reduce net forcing from SSP585 to SSP245,none,historical,none,CMIP,,8,
Time slice at 2100 (G6sulfur),G6sulfurSlice2,GeoMIP,1,1,,,10,2,G6SST2-sulfur,G6SST2,sulfur,,none,AGCM,AER CHEM,G6SST2-sulfur,SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G6sulfur,none,,,,comparison of TOA fluxes from this simulation with G6SST1 yields an estimate of forcing due to aerosol shading. ,13,
"Against a background of the ScenarioMIP high forcing, reduce cirrus cloud optical depth by a constant amount",G7cirrus,GeoMIP,1,3,2020,2100,81,1,G7cirrus,G7cirrus,,,none,AOGCM,AER CHEM BGM,G7cirrus,G7cirrus _ increase cirrus ice crystal fall speed to reduce net forcing in SSP585 by 1 W m-2,none,historical,none,CMIP,,8,
Time slice at 2020 (ScenarioMIP Tier 1 high forcing scenario + cirrus thinning according to G7cirrus),G7cirrusSlice1,GeoMIP,1,1,,,10,2,G7SST1-cirrus,G7SST1,cirrus,,none,AGCM,AER CHEM,G7SST1-cirrus,SSTs from year 2020 of SSP5-8.5; forcings and other prescribed conditions from year 2020 of SSP5-8.5 + cirrus thinning,none,,,,comparison of TOA fluxes from this simulation with 10-year mean of fluxes centered around year 2020 of SSP5-8.5 yields estimate of cirrus forcing.,13,
Time slice at 2100 (ScenarioMIP Tier 1 high forcing scenario + cirrus thinning according to G7cirrus),G7cirrusSlice2,GeoMIP,1,1,,,10,2,G7SST2-cirrus,G7SST2,cirrus,,none,AGCM,AER CHEM,G7SST2-cirrus,SSTs from year 2100 of SSP5-8.5; forcings and other prescribed conditions from year 2100 of G7cirrus,none,,,,"similar to above run but for the warmer climate near 2100.  If forcing is independent of climate state, then there will be no difference from the above.",13,
Extended AMIP run that covers 1870-2014. All natural and anthropogenic historical forcings as used in CMIP6 Historical Simulation will be included. AGCM resolution as CMIP6 Historical Simulation. The HadISST data will be used.,AMIP20C,GMMIP,1,1,1870,2013,144,1,amip-hist,amip,hist,,none,AGCM,AER CHEM,,,none,,,,"Can this be simply named AMIP?  Same but for longer period.  In column B, start date should be changed to 1870.",9,
"The topography of the highlands in Africa, N. America and S. America TP is modified by setting surface elevations to a certain height (500m).Same model as DECK.",DHLD,GMMIP,1,1,1979,2013,35,3,amip-hld,amip,hld,,none,AGCM,AER CHEM,,,none,,,,,8,
The topography of the TIP is modified by setting surface elevations to 500m; to understand the combined thermal and mechanical forcing of the TIP. Same model as DECK.,DTIP,GMMIP,1,1,1979,2013,35,3,amip-TIP,amip,TIP,,none,AGCM,AER CHEM,,,none,,,,,8,
Surface sensible heat released at the elevation above 500m over the TIP is not allowed to heat the atmosphere.Same model as DECK.,DtipDsh,GMMIP,1,1,1979,2013,35,3,amip-TIP-nosh,amip,TIP,nosh,none,AGCM,AER CHEM,,,none,,,,,13,
"Pacemaker 20th century historical run that includes all forcing as used in CMIP6 Historical Simulation, and the observational historical SST is restored in the AMO domain (0o-70oN, 70oW-0o)",HistAmo,GMMIP,1,3,1870,2013,144,2,hist-resAMO,hist,resAMO,,none,AOGCM,AER CHEM BGM,,,none,piControl,none,CMIP,"are these partially-prescribed SSTs, but partially coupled models?",11,
"Pacemaker 20th century historical run that includes all forcing as used in CMIP6 Historical Simulation, and the observational historical SST is restored in the tropical lobe of the IPO domain (20oS-20oN, 175oE-75oW). The HadISST data will be used.",HistIpo,GMMIP,1,3,1870,2013,144,2,hist-resIPO,hist,resIPO,,none,AOGCM,AER CHEM BGM,,,none,piControl,none,CMIP,"are these partially-prescribed SSTs, but partially coupled models?",11,
"Coupled integrations, at least one with constant 1950""s forcing (CTL) and one or more with historic and then RCP4.5 (as in Forced_Atmos_Land, EXP).",Coupled,HighResMIP,1,2,,,100,2,control-1950,control,1950,,none,AOGCM,AER CHEM BGM,control-1950,coupled control with fixed 1950's forcing (HighResMIP equivalent of pre-industrial control),none,,,,,12,
"Coupled integrations, at least one with constant 1950""s forcing (CTL) and one or more with historic and then RCP4.5 (as in Forced_Atmos_Land, EXP).",Coupled,HighResMIP,1,2,1951,2050,100,2,highres-future,highres,future,,none,AOGCM,AER CHEM BGM,highres-future,coupled future 2015-2050 using a scenario as close to CMIP5 RCP8.5 as possible within CMIP6,none,hist-1950,none,HighResMIP,"The forcing for this run in unclear.  There is mention of multiple future scenarios in the proposal.  We need [...]
"Coupled integrations, at least one with constant 1950""s forcing (CTL) and one or more with historic and then RCP4.5 (as in Forced_Atmos_Land, EXP).",Coupled,HighResMIP,1,2,1951,2014,64,2,hist-1950,hist,1950,,none,AOGCM,AER CHEM BGM,hist-1950,coupled historical 1950-2014,none,control-1950,none,HighResMIP,should this and other simulations be initialized at the beginning of 1951 or beginning of 1950?,9,
"Forced global atmosphere-land simulations using daily 1/4 degree SST and sea-ice forcings, and aerosol concentrations (not emissions) to constrain model spread",ForcedAtmosLand,HighResMIP,1,1,1951,2014,64,1,highresSST-present,highresSST,present,,none,AGCM,AER CHEM,highresSST-present,forced atmosphere experiment for 1950-2014,none,,,,,18,
Extend Forced_Atmos_land to 2050 with agreed forcings (with option to extend further to 2100),ForcedAtmosLand2050,HighResMIP,1,1,2015,2050,36,3,highresSST-future,highresSST,future,,none,AGCM,AER CHEM,highresSST-future,forced atmosphere experiment for 2015-2050 using SST/sea-ice derived from CMIP5 RCP8.5 simulations and a scenario as close to RCP8.5 as possible within CMIP6,none,highresSST-present,none,HighResMIP,"The forcing for this run in unclear.  There is mention of multiple future sc [...]
"Forced global atmosphere-land simulations as highresSST-present, but using an common LAI dataset across models. ",ForcedAtmosLand,HighResMIP,1,1,1951,2014,64,1,highresSST-LAI,highresSST,LAI,,none,AGCM,AER CHEM,highresSST-LAI,common LAI dataset within the highresSST-present experiment,none,highresSST-present,none,HighResMIP,,14,
"Forced global atmosphere-land simulations as highresSST-present, but using smoothed SST to investigate impact of SST variability. ",ForcedAtmosLand,HighResMIP,1,1,1951,2014,64,1,highresSST-smoothed,highresSST,smoothed,,none,AGCM,AER CHEM,highresSST-smoothed,smoothed SST version of highresSST-present,none,highresSST-present,none,HighResMIP,,19,
"Similar to CFMIP amip-p4K, add a uniform warming of 4K to highresSST-present SSTs and run the experiment parallel to years 2005-2014 of highresSST-present.",ForcedAtmosLand,HighResMIP,1,1,1951,2014,64,1,highresSST-p4K,highresSST,p4K,,none,AGCM,AER CHEM,highresSST-p4k,uniform 4K warming of highresSST-present SST,none,highresSST-present,none,HighResMIP,,14,
"Similar to CFMIP amip-4xCO2, SSTs are held at highresSST-present  values and the CO2 seen by the radiation scheme is quadrupled. Run over years 2005-2014 of highresSST-present.",ForcedAtmosLand,HighResMIP,1,1,1951,2014,64,1,highresSST-4co2,highresSST,4co2,,none,AGCM,AER CHEM,highresSST-4co2,highresSST-present SST with 4xCO2 concentrations,none,highresSST-present,none,HighResMIP,,15,
"Idealized 1%/yr CO2 increase to 4xC02 over 140yrs and kept constant at 4xCO2 for an additional 200 to 400 yrs simulation with ice sheets forced ""offline"" with DECK 1pctCO2 using a standard forcing.",1pctCo2forcedism,ISMIP6,1,1,,,350,1,ism-1pctCO2to4x-std,ism,1pctCO2to4x,std,none,ISM,,ism-1pctCO2to4x-std,offline ice sheet model forced by ISMIP6-specified AOGCM 1pctCO2to4x output ,none,ism-pdControl-std,none,ISMIP6,,19,
"Idealized 1%/yr CO2 increase to 4xC02 over 140yrs and kept constant at 4xCO2 for an additional 200 to 400 yrs simulation with ice sheets forced ""offline"" with DECK 1pctCO2 using forcing from its own AOGCM ",1pctCo2forcedism,ISMIP6,1,1,,,350,1,ism-1pctCO2to4x-self,ism,1pctCO2to4x,self,none,ISM,,ism-1pctCO2to4x-self,offline ice sheet model forced by ISM's own AOGCM 1pctCO2to4x output ,none,ism-piControl-self,none,ISMIP6,,20,
Idealized 1%/yr CO2 increase to 4xC02 over 140yrs and kept constant at 4xCO2 for an additional 200 to 400 yrs simulation that includes interactive ice sheets.,1pctCo2withism,ISMIP6,1,1,,,350,1,1pctCO2to4x-withism,1pctCO2to4x,withism,,none,AOGCM ISM,AER CHEM BGM,1pctCO2to4x-withism,simulation with interactive ice sheet forced by 1 percent per year increase in CO2 to 4xCO2 (subsequently held fixed),none,piControl-withism,none,ISMIP6,,19,
"Present-day control simulation for ""offline"" ice sheets.",piControlforcedism,ISMIP6,1,1,,,451,1,ism-pdControl-std,ism,pdControl,std,none,ISM,,ism-pdControl-std,offline ice sheet forced by ISMIP6-specified AOGCM pdControl output,none,,,,,17,
"Pre-industrial control simulation for ""offline"" ice sheets.",,ISMIP6,1,,,,451,1,ism-piControl-self,ism,piControl,self,none,ISM,,ism-piControl-self,offline ice sheet forced by ISM's own AOGCM piControl output,none,,,,,18,
Pre-industrial control simulation that includes interactive ice sheets.,piControlwithism,ISMIP6,1,1,,,451,1,piControl-withism,piControl,withism,,none,AOGCM ISM,AER CHEM BGM,piControl-withism,preindustrial control with interactive ice sheet,none,,,,,17,
"Historical simulation using ""offline"" ice sheet models. Forcing for ice sheet model is the standard dataset based on CMIP6 AOGCM historical. ",historicalforcedism,ISMIP6,1,1,1850,2014,165,2,ism-historical-std,ism,historical,std,none,ISM,,ism-historical-std,offline ice sheet forced by ISMIP6-specified AOGCM historical output,none,ism-pdControl-std,none,ISMIP6,,18,
"Historical simulation using ""offline"" ice sheet models. Forcing for ice sheet model is from its own AOGCM. ",historicalforcedism,ISMIP6,1,1,1850,2014,165,2,ism-historical-self,ism,historical,self,none,ISM,,ism-historical-self,offline ice sheet forced by ISM's own AOGCM historical output,none,ism-piControl-self,none,ISMIP6,,19,
Historical simulation that includes interactive ice sheets. Set up follows the historical experiment,historicalwithism,ISMIP6,1,1,1850,2014,165,2,historical-withism,historical,withism,,none,AOGCM ISM,AER CHEM BGM,historical-withism,historical with interactive ice sheet,none,piControl-withism,none,ISMIP6,,18,
"Future climate ScenarioMIP SSP5-8.5 simulation using ""offline"" ice sheet models. Forcing for ice sheet model is the standard dataset based on ScenarioMIP ssp585",Ssp585forcedism,ISMIP6,1,1,2015,2300,286,2,ism-ssp585-std,ism,ssp585,std,none,ISM,,ism-ssp585-std,offline ice sheet forced by ISMIP6-specified AOGCM ssp585 output,none,ism-historical-std,none,ISMIP6,,14,
"Future climate ScenarioMIP SSP5-8.5 simulation using ""offline"" ice sheet models. Forcing for ice sheet model is from its own AOGCM.",Ssp585forcedism,ISMIP6,1,1,2015,2300,286,2,ism-ssp585-self,ism,ssp585,self,none,ISM,,ism-ssp585-self,offline ice sheet forced by ISM's own AOGCM ssp585 output,none,ism-historical-self,none,ISMIP6,,15,
Future climate from ScenarioMIP SSP5-8.5 simulation that includes interactive ice sheets. Set up follows the standard SSP5-8.5 experiment,Ssp585withism,ISMIP6,1,1,2015,2300,286,2,ssp585-withism,ssp585,withism,,none,AOGCM ISM,AER CHEM BGM,ssp585-withism,ssp585 with interactive ice sheet,none,historical-withism,none,ISMIP6,,14,
Offline ice sheet evolution for the last few decades forced by amip,amipforcedism,ISMIP6,1,1,1979,2014,36,3,ism-amip-std,ism,amip,std,none,ISM,,ism-amip-std,offline ice sheet forced by ISMIP6-specified AGCM AMIP output,none,,,,,12,
Last interglacial simulation of ice sheet evolution driven by PMIP lig127k,lastInterglacialforcedism,ISMIP6,1,1,,,,3,ism-lig127k-std,ism,lig127k,std,none,ISM,,ism-lig127k-std,offline ice sheet forced by ISMIP6-specified AGCM last interglacial output,none,,,,might want to specify specific start year from PMIP,15,
Land-hist land conditions; AMIP SSTs,,LS3MIP,1,5,1980,2100,121,2,amip-lfmip-pObs,amip,lfmip,pObs,none,AGCM,AER CHEM,LFMIP-Pobs+SST,prescribed land (from pseudo-observations) and AMIP SSTs,none,,,,,15,
Prescribed land conditions 1980-2014 climate; AMIP SSTs,LfmipCa5,LS3MIP,1,5,1980,2100,121,2,amip-lfmip-pdLC,amip,lfmip,pdLC,none,AGCM,AER CHEM,LFMIP-pdLC+SST,prescribed land (from current climatology) and AMIP SSTs,none,,,,,15,
Prescribed land conditions 1980-2014 climate,LfmipCao1,LS3MIP,1,1,1980,2100,121,1,lfmip-pdLC,lfmip,pdLC,,none,AOGCM,AER CHEM BGM,lfmip-pdLC,"prescribed land conditions (from current climate climatology) and initialized from ""historical"" run year 1980",none,historical,none,CMIP,,10,
Prescribed land conditions 1980-2014 climate,LfmipCao4,LS3MIP,1,4,1980,2100,121,2,,,,,,,,lfmip-pdLC2,"prescribed land conditions (from current climate climatology) and initialized from ""historical"" run year 1980",,,,,"This is just an increase in size of ensemble, so doesn't need a different experiment name.",,
Initialized pseudo-observations land,LfmipHp10,LS3MIP,1,10,1980,2014,35,2,lfmip-initLC,lfmip,initLC,,none,AOGCM,AER CHEM BGM,LFMIP-Pobs,"initialized from ""historical"" run year 1980, but with land conditions initialized from pseudo-observations",none,historical,none,CMIP,Check parent.  ,12,
Prescribed land conditions 30yr running mean; AMIP SSTs,LfmipRa5,LS3MIP,1,5,1980,2100,121,2,amip-lfmip-rmLC,amip,lfmip,rmLC,none,AGCM,AER CHEM,LFMIP-rmLC+SST,prescribed land conditions (from running mean climatology) and AMIP SSTs,none,,,,which simulation are the land conditions taken from? Probably from non-running-mean historical and scenario runs?,15,
Prescribed land conditions 30yr running mean,LfmipRao1,LS3MIP,1,1,1980,2100,121,1,lfmip-rmLC,lfmip,rmLC,,none,AOGCM,AER CHEM BGM,lfmip-rmLC,"prescribed land conditions (from running mean climatology) and initialized from ""historical"" run year 1980",none,historical,none,CMIP,which simulation are the land conditions taken from? Probably from non-running-mean historical and scenario runs?,10,
Prescribed land conditions 30yr running mean,LfmipRao4,LS3MIP,1,4,1980,2100,121,2,,,,,,,,lfmip-rmLC2,"prescribed land conditions (from running mean climatology) and initialized from ""historical"" run year 1980",,,,,"This is just an increase in size of ensemble, so doesn't need a different experiment name.",,
Land only simulations,LmipF,LS3MIP,1,3,2015,2100,86,2,land-future,land,future,,none,LND,,land-future,future land-only,none,,,,,11,
Land only simulations,LmipH,LS3MIP LUMIP,1,1,1850 or 1700,2014,165,1,land-hist,land,hist,,none,LND,,land-hist,historical land-only,none,,,,This is also called for by LUMIP.,9,
Land only simulations,LmipH (1c),LS3MIP,1,1,1850,2014,165,2,land-hist-princeton,land,hist,princeton,none,LND,,land-hist-princeton,as land-hist with Princeton forcings,none,,,,Check parent.,19,
Land only simulations,LmipH (1c),LS3MIP,1,1,1850,2014,165,2,land-hist-cruNcep,land,hist,cruNcep,none,LND,,land-hist-cruNcep,as land-hist with CRU-NCEP forcings,none,,,,Check parent.,17,
Land only simulations,LmipH (1c),LS3MIP,1,1,1850,2014,165,2,land-hist-wfdei,land,hist,wfdei,none,LND,,land-hist-wfdei,as land-hist with WFDEI forcings,none,,,,Check parent.,15,
"Additional land use policy sensitivity simulation for high radiative forcing scenario, keep all forcings the same as in C4MIP esmssp5-8.5 scenario except use SSP1-2.6 land use; emission driven",Esmssp585wssp126landuse,LUMIP,1,1,2015,2100,86,1,esm-ssp585-ssp126Lu,esm,ssp585,ssp126Lu,none,ESM,AER CHEM,esm-ssp585-ssp126Lu,emissions-driven SSP5-8.5 with SSP1-2.6 land use,none,esm-hist,none,CMIP,,19,
"Same as CMIP6 historical but with land cover held at 1850, no human activity; concentration driven",HistNolulcc01,LUMIP,1,1,1850,2014,165,1,hist-noLu,hist,noLu,,none,AOGCM,AER CHEM BGM,hist-noLu,historical with no land-use change,none,piControl,none,CMIP,,9,
"Idealized deforestation experiment, 20 million km2 forest removed linearly over a period of 50 years, with an additional 30 years with no specified change in forest cover; all other forcings held constant",IdealizedGlobalDeforest,LUMIP,1,1,1850,1920,71,1,deforest-globe,deforest,globe,,none,AOGCM,AER CHEM BGM,deforest-globe,idealized transient global deforestation,none,piControl,none,CMIP,,14,
Same as land-hist except starting from either 1700 (for models that typically start in 1850) or 1850 (for models that typically start in 1700). ,,LUMIP,1,,1850 or 1700,2014,165,1,land-hist-altStartYear,land,hist,altStartYear,none,LND,,land-hist-altStartYear,historical land-only alternate start year,none,,,,,22,
"Same land model configuration as used in CMIP6 coupled experiments with all applicable land-use features active. Start year either 1850 or 1700 depending on standard practice for particular model. All forcings transient including CO2, N-dep, aerosol dep, etc.  ",,LS3MIP LUMIP,1,,1850 or 1700,2014,165,1,,,,,,,,land-hist,historical land-only,,,,,This experiment is also called for by LS3MIP,,
Same as land-hist except with CO2 held constant ,,LUMIP,1,,1850 or 1700,2014,165,2,land-cCO2,land,cCO2,,none,LND,,land-cCO2,historical land-only constant CO2,none,,,,,9,
Same as land-hist except with CO2 held constant ,,LUMIP,1,,1850 or 1700,2014,165,2,land-cClim,land,cClim,,none,LND,,land-cClim,historical land-only constant climate,none,,,,,10,
Same as land-hist except no land-use change,,LUMIP,1,,1850 or 1700,2014,165,1,land-noLu,land,noLu,,none,LND,,land-noLu,historical land-only with no land-use change,none,,,,,9,
Same as land-hist except with crop area utilizing prognostic crop model,,LUMIP,1,,1850 or 1700,2014,165,2,land-crop-noManage,land,crop,noManage,none,LND,,land-crop-noManage,historical land-only with crops but no crop management,none,,,,,18,
"Same as land-hist except with net LUC transitions instead of gross LUC transitions. If gross transitions exceeding net transitions have been applied in 1850, they should be maintained.",,LUMIP,1,,1850 or 1700,2014,165,2,land-netTrans,land,netTrans,,none,LND,,land-netTrans,historical land-only with net land-use transitions,none,,,,,13,
Same as land-hist but with anthropogenic ignition and suppression held to 1850 levels,,LUMIP,1,,1850 or 1700,2014,165,2,land-noFire,land,noFire,,none,LND,,land-noFire,historical land-only with no human fire management,none,,,,,11,
Same as land-hist but with wood harvest maintained at 1850 amounts/areas,,LUMIP,1,,1850 or 1700,2014,165,2,land-noWoodHarv,land,noWoodHarv,,none,LND,,land-noWoodHarv,historical land-only with no wood harvest,none,,,,,15,
"Same as land-hist but with grazing and other management on pastureland held at 1850 levels/distribution, i.e. all new pastureland is treated as unmanaged grassland (as in land-crop-grass).",,LUMIP,1,,1850 or 1700,2014,165,2,land-noPasture,land,noPasture,,none,LND,,land-noPasture,historical land-only with constant pastureland,none,,,,,14,
Same as land-hist but with all new crop and pastureland treated as unmanaged grassland ,,LUMIP,1,,1850 or 1700,2014,165,2,land-crop-grass,land,crop,grass,none,LND,,land-crop-grass,historical land-only with cropland as natural grassland,none,,,,,15,
Same as land-hist but with irrigated area held at 1850 levels,,LUMIP,1,,1850 or 1700,2014,165,2,land-crop-noIrrig,land,crop,noIrrig,none,LND,,land-crop-noIrrig,historical land-only with no irrigation ,none,,,,,17,
Same as land-hist but with fertilization rates and area held at 1850 levels/distribution,,LUMIP,1,,1850 or 1700,2014,165,2,land-crop-noFert,land,crop,noFert,none,LND,,land-crop-noFert,historical land-only with no fertilizer,none,,,,,16,
"Additional land use policy sensitivity simulation for low radiative forcing scenario, keep all forcings the same as ScenarioMIP SSP1-2.6 (afforestation scenario), but replace land use from SSP3-7 (afforestation) scenario; concentration-driven",Ssp126wssp37landuse,LUMIP,1,1,2015,2100,86,1,ssp126-ssp370Lu,ssp126,ssp370Lu,,none,AOGCM,AER CHEM BGM,ssp126-ssp370Lu,SSP1-2.6 with SSP3-7.0 land use,none,historical,none,CMIP,,15,
"Additional land use policy sensitivity simulation for high radiative forcing scenario, keep all forcings the same as ScenarioMIP SSP3-7 (deforestation scenario), but replace land use from SSP1-2.6 (afforestation) scenario; concentration-driven",Ssp37wssp126landuse,LUMIP,1,1,2015,2100,86,1,ssp370-ssp126Lu,ssp370,ssp126Lu,,none,AOGCM,AER CHEM BGM,ssp370-ssp126Lu,SSP3-7.0 with SSP1-2.6 land use,none,historical,none,CMIP,,15,
"Global ocean - sea-ice coupled experiment forced with the Coordinated Ocean - ice Reference Experiments inter-annually varying atmospheric and river data sets for years 1948-2009. Initial ocean tracer fields are based on observations. All Priority=1 OMIP diagnostics are requested for all five cycles of the 62-year forcing to quantify drift. All OMIP diagnostics (Priority=1,2,3) are requested for the 5th cycle.",OmipA,OMIP,1,1,1,310,310,1,omipv1,omipv1,,,none,OGCM,,omipv1,"OMIP experiment [...]
Same as the omipv1 experiment except that it is not initialized with observed climatologies; rather it is initialized with results from at least a 2000-year spin up of the coupled physical-biogeochemical models. Also it includes radiocarbon to evaluate deep-ocean circulation.,OmipB,OMIP,1,1,1,310,310,2,omipv1-spunup,omipv1,spunup,,none,OGCM,,omipv1-spunup,"OMIP experiment forced by Large & Yeager (CORE-2, NCEP) atmospheric data set and initialized from at least a 2000-year spin up of the  [...]
"Global ocean - sea-ice coupled experiment forced with the JRA-55 inter-annually varying atmospheric and river data sets for years 1958-2016. Initial ocean tracer fields are based on observations.  All Priority=1 OMIP diagnostics are requested for all five cycles of the 59-year forcing to quantify drift.  All OMIP diagnostics (Priority=1,2,3) are requested for the 5th cycle. ",OmipA,OMIP,1,1,1,310,310,3,omipv2,omipv2,,,none,OGCM,,omipv2,OMIP experiment forced by JRA-55 atmospheric data se [...]
Same as the omipv2 experiment except that it is not initialized with observed climatologies; rather it is initialized with results from at least a 2000-year spin up of the coupled physical-biogeochemical models. Also it includes radiocarbon to evaluate deep-ocean circulation.,OmipB,OMIP,1,1,1,310,310,3,omipv2-spunup,omipv2,spunup,,none,OGCM,,omipv2-spunup,OMIP experiment forced by JRA-55 atmospheric data set and initialized from at least a 2000-year spin up of the coupled physical-biogeoc [...]
"main forcings : ice-sheet; trace gases, orbital parameters dust (forcing, or feedback if dust cycle represented in model)",lgm,PMIP,1,1,,,100,1,lgm,lgm,,,none,AOGCM,AER CHEM BGM,lgm,last glacial maximum ,none,,,,,3,
"main forcings : orbital parameters, ice-sheet, trace gases",LIG,PMIP,1,1,,,100,1,lig127k,lig127k,,,none,AOGCM,AER CHEM BGM,lig127k,last interglacial (127k),none,,,,,7,
"main forcings : trace gases, orbital parameters, dust",midHolocene,PMIP,1,1,,,200,1,midHolocene,midHolocene,,,none,AOGCM,AER CHEM BGM,midHolocene,mid-Holocene,none,,,,,11,
"main forcings : trace gases, volcanoes, solar variability, land use",past1000,PMIP,1,1,850,1849,1000,1,past1000,past1000,,,none,AOGCM,AER CHEM BGM,past1000,last millenium,none,piControl,none,CMIP,,8,
"main forcings : trace gases, orography, ice-sheet",PlioExp,PMIP,1,1,,,100,1,midPliocene-eoi400,midPliocene,eoi400,,none,AOGCM,AER CHEM BGM,midPliocene-eoi400,mid-Pliocene warm period,none,,,,,18,
30-year atmosphere only integration using preindustrial sea-surface temperature and sea-ice climatology. Interactive vegetation,RFMIP-ERF-PI-Cntrl,RFMIP AerChemMIP,1,1,,,30,1,piClim-control,piClim,control,,none,AGCM,AER CHEM,piClim-control,effective radiative forcing in present-day ,none,,,,AerChemMIP also calls for this experiment.,14,
As in RFMIP-ERF-PI-Cntrl but with 4xCO2,RFMIP-ERF-4xCO2,RFMIP,1,1,,,30,1,piClim-4xCO2,piClim,4xCO2,,none,AGCM,AER CHEM,piClim-4xCO2,effective radiative forcing by 4xCO2 ,none,,,,,12,
As in RFMIP-ERF-PI-Cntrl but with with present-day aerosols and ozone,RFMIP-ERF-AerO3,RFMIP,1,1,,,30,1,piClim-aerO3,piClim,aerO3,,none,AGCM,AER CHEM,piClim-aerO3,effective radiative forcing by present-day aerosols and ozone,none,,,,,12,
As in RFMIP-ERF-AER but with present-day changes scaled by 0.1,RFMIP-ERF-AerO3x01,RFMIP,1,1,,,30,2,piClim-aerO3x0p1,piClim,aerO3x0p1,,none,AGCM,AER CHEM,piClim-aerO3x0p1,effective radiative forcing by present-day aerosols and ozone scaled by 0.1 ,none,,,,,16,
As in RFMIP-ERF-AER but with present-day changes scaled by 2,RFMIP-ERF-AerO3x2,RFMIP,1,1,,,30,2,piClim-aerO3x2,piClim,aerO3x2,,none,AGCM,AER CHEM,piClim-aerO3x2,effective radiative forcing by present-day aerosols and ozone scaled by 2,none,,,,,14,
"As in RFMIP-ERF-PI-Cntrl but with present-day anthropogenic forcing (greenhouse gases, aerosols and land-use)",RFMIP-ERF-Anthro,RFMIP,1,1,,,30,1,piClim-anthro,piClim,anthro,,none,AGCM,AER CHEM,piClim-anthro,effective radiative forcing by present day anthropogenic agents,none,,,,,13,
As in RFMIP-ERF-PI-Cntrl but with present-day greenhouse gases,RFMIP-ERF-GHG,RFMIP,1,1,,,30,1,piClim-GHG,piClim,GHG,,none,AGCM,AER CHEM,piClim-GHG,effective radiative forcing by present-day greenhouse gases,none,,,,,10,
Time-varying forcing by aerosols. SST and sea ice fixed at preindustrial control. Interactive vegetation,RFMIP-ERF-HistAer,RFMIP,1,3,1850,2100,251,2,piClim-histaer03,piClim,histaer03,,none,AGCM,AER CHEM,piClim-histaer03,transient effective radiative forcing by aerosols ,none,,,,,16,
Time-varying forcing. SST and sea ice fixed at preindustrial control. Interactive vegetation,RFMIP-ERF-HistAll,RFMIP,1,3,1850,2100,251,2,piClim-histAll,piClim,histAll,,none,AGCM,AER CHEM,piClim-histAll,transient effective radiative forcing,none,,,,,14,
Time-varying forcing by GHGs. SST and sea ice fixed at preindustrial control. Interactive vegetation,RFMIP-ERF-HistGHG,RFMIP,1,3,1850,2100,251,2,piClim-histGHG,piClim,histGHG,,none,AGCM,AER CHEM,piClim-histGHG,transient effective radiative forcing by greenhouse gases,none,,,,,14,
"Time-varying forcing from volcanos, solar variability, etc. SST and sea ice fixed at preindustrial control. Interactive vegetation",RFMIP-ERF-HistNat,RFMIP,1,3,1850,2100,251,2,piClim-histNat,piClim,histNat,,none,AGCM,AER CHEM,piClim-histNat,transient effective radiative forcing by natural perturbations,none,,,,,14,
As in RFMIP-ERF-PI-Cntrl but with present-day land use,RFMIP-ERF-LU,RFMIP,1,1,,,30,1,piClim-lu,piClim,lu,,none,AGCM,AER CHEM,piClim-lu,effective radiative forcing by present-day land use ,none,,,,,9,
Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings.,RFMIP-spAer-piSST-histall,RFMIP,1,,1850,2014,165,2,piClim-spAerO3-histall,piClim,spAerO3,histall,none,AGCM,,piClim-spAerO3-histall," transient effective radiative forcing with specified anthropogenic aerosol optical properties, all forcings",none,,,,,22,
Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings.,RFMIP-spAer-piSST-histaer,RFMIP,1,,1850,2014,165,2,piClim-spAerO3-histaer,piClim,spAerO3,histaer,none,AGCM,,piClim-spAerO3-histaer,"transient effective radiative forcing with specified anthropogenic aerosol optical properties, aerosol forcing",none,,,,,22,
Prescribed anthropogenic aerosol optical properties. Aerosol and ozone forcings.,RFMIP-spAer-piSST-aer,RFMIP,1,,,,,2,piClim-spAerO3-aer,piClim,spAerO3,aer,none,AGCM,,piClim-spAerO3-aer,"effective radiative forcing at present day with specified anthropogenic aerosol optical properties, all forcings",none,,,,,18,
Prescribed anthropogenic aerosol optical properties. Anthropogenic forcings.,RFMIP-spAer-piSST-anthro,RFMIP,1,,,,,2,piClim-spAerO3-anthro,piClim,spAerO3,anthro,none,AGCM,,piClim-spAerO3-anthro,"effective radiative forcing at present day with specified anthropogenic aerosol optical properties, anthropogenic forcings",none,,,,,21,
Prescribed anthropogenic aerosol optical properties. Changes in aerosols only.,RFMIP-SpAer-aer,RFMIP,1,3,1850,2014,165,2,hist-spAerO3,hist,spAerO3,,none,AOGCM,,hist-spAerO3,"historical simulations with specified anthropogenc aerosols, no other forcings",none,piControl,none,CMIP,,12,
Prescribed anthropogenic aerosol optical properties. All forcings.,RFMIP-SpAer-all,RFMIP,1,3,1850,2014,165,1,hist-all-spAerO3,hist,all,spAerO3,none,AOGCM,,hist-all-spAerO3,historical simulations with specified anthropogenc aerosols ,none,piControl,none,CMIP,,16,
Request for specialized diagnostics: Full snapshots of spectrally-resolved aerosol optical properties for single day from piControl  along with model-specific direct aerosol IRF.,,RFMIP,1,,,,,1,,,,,,,,piControl,pre-industrial control,,,,,Special output requested.,,
"Request for specialized diagnostics: Full snapshots of spectrally-resolved aerosol optical properties for single day from historical run, along with model-specific direct aerosol IRF.",RfmipIrfAer,RFMIP,1,,,,,1,,,,,,,,historical,all-forcing simulation of the recent past,,,,,Special output requested.,,
Offline radiation calculations,RFMIP-IRF,RFMIP,1,,,,,1,rad-irf,rad,irf,,none,RAD,,RFMIP-IRF,offline assessment of radiative transfer parmaeterizations in clear skies,none,,,,,7,
Future scenario with low radiative forcing by the end of century. Following approximately RCP2.6 global forcing pathway but with new forcing based on SSP1. Concentration-driven.,SSP126,ScenarioMIP,1,1,2015,2100,86,1,ssp126,,,,none,AOGCM,AER CHEM BGM,ssp126,update of RCP2.6 based on SSP1,none,historical,none,CMIP,,6,
"Extension of SSP1_26 to 2300, in style of CMIP5 extension. Extends negative emissions level reached in 2100 to produce slowly declining forcing.",SSP126ext,ScenarioMIP,1,1,2101,2300,200,2,,,,,,,,ssp126,long-term extension of ssp126 to 2300,,,,,"an extension of ssp126, so doesn't need a separate experiment_id",,
Extension of SSP5_34over to 2300,SSP534overext,ScenarioMIP,1,,2101,2300,200,2,,,,,,,,ssp534over,long-term extension of ssp534over to 2300,,,,,"an extension of ssp534-over, so doesn't need a separate experiment_id",,
21st century overshoot scenario relative to SSP5_34. Branches from SS5_85 at 2040 with emissions reduced to zero by 2070 and negative thereafter.,SSP534over,ScenarioMIP,1,1,2015,2100,86,2,ssp534-over,ssp534,over,,none,AOGCM,AER CHEM BGM,ssp534-over,overshoot of 3.4 W/m**2 branching from ssp585 in 2040,none,ssp585,none,ScenarioMIP,,11,
Future scenario with medium radiative forcing by the end of century. Following approximately RCP6.0 global forcing pathway but with new forcing based on SSP4. Concentration-driven.,SSP460,ScenarioMIP,1,1,2015,2100,86,2,ssp460,ssp460,,,none,AOGCM,AER CHEM BGM,ssp460,update of RCP6.0 based on SSP4,none,historical,none,CMIP,,6,
Future scenario with medium radiative forcing by the end of century. Following approximately RCP4.5 global forcing pathway but with new forcing based on SSP2. Concentration-driven.,SSP245,ScenarioMIP,1,1,2015,2100,86,1,ssp245,ssp245,,,none,AOGCM,AER CHEM BGM,ssp245,update of RCP4.5 based on SSP2,none,historical,none,CMIP,,6,
"Future scenario with high radiative forcing by the end of century. Reaches about 7.0 W/m2 by 2100; fills gap in RCP forcing pathways between 6.0 and 8.5 W/m2. Concentration-driven. At least 9 further perturbed IC ensemble members (if not 9, as many as possible).",SSP370ens,ScenarioMIP,1,9,2015,2100,86,2,,,,,,,,ssp370,IC ensemble of ssp370,,,,,"an esemble of ssp370, so doesn't need a separate experiment_id",,
Future scenario with high radiative forcing by the end of century. Reaches about 7.0 W/m2 by 2100; fills gap in RCP forcing pathways between 6.0 and 8.5 W/m2. Concentration-driven.,SSP370,ScenarioMIP,1,1,2015,2100,86,1,ssp370,ssp370,,,none,AOGCM,AER CHEM BGM,ssp370,gap-filling scenario reaching 7.0 based on SSP3,none,historical,none,CMIP,,6,
Future scenario with low radiative forcing by the end of century. Reaches about 3.4 W/m2 by 2100; fills gap in RCP forcing pathways between 4.5 and 2.6 W/m2. Concentration-driven.,SSP434,ScenarioMIP,1,1,2015,2100,86,2,ssp434,ssp434,,,none,AOGCM,AER CHEM BGM,ssp434,gap-filling scenario reaching 3.4 based on SSP4,none,historical,none,CMIP,,6,
Future scenario with high radiative forcing by the end of century. Following approximately RCP8.5 global forcing pathway but with new forcing based on SSP5. Concentration-driven.,SSP585,ScenarioMIP,1,1,2015,2100,86,1,ssp585,ssp585,,,none,AOGCM,AER CHEM BGM,ssp585,update of RCP8.5 based on SSP5,none,historical,none,CMIP,,6,
"Extension of SSP5_85 to 2300, in style of CMIP5 extension. Assumes emissions eventually decline from 2100 levels to produce stabilized forcing by 2300.",SSP585ext,ScenarioMIP,1,1,2101,2300,200,2,,,,,,,,ssp585,long-term extension of ssp585 to 2300,,,,,"an extension of ssp534, so doesn't need a separate experiment_id",,
Future scenario with low radiative forcing by the end of century. Following a forcing pathway below RCP2.6. Specific SSP and 2100 forcing level to be finalized with IAM groups within next few months. Concentration-driven.,SSPXY,ScenarioMIP,1,1,2015,2100,86,2,sspxy,sspxy,,,none,AOGCM,AER CHEM BGM,sspxy,low-end scenario informing 1.5C goal,none,historical,none,CMIP,"""x"" AND ""y"" have yet to be determined PRECISELY",5,
"Early 19th century cluster of strong tropical volcanic eruptions, including the 1809 event of unknown location, the 1815 Tambora and 1835 Cosigueina eruptions. Experiment initialized from PiControl",VolLongC19thC,VolMIP,1,3,,,50,2,volc-cluster-ctrl,volc,cluster,ctrl,none,AOGCM,AER CHEM BGM,volc-cluster-ctrl,19th century volcanic cluster initialized from PiControl,none,piControl,none,CMIP,,17,
"Early 19th century cluster of strong tropical volcanic eruptions, including the 1809 event of unknown location, the 1815 Tambora and 1835 Cosigueina eruptions. Experiment initialized from past1000 (all forcings except volcanic kept constant from year AD 1790 on).",,VolMIP,1,3,,,50,3,volc-cluster-mill,volc,cluster,mill,none,AOGCM,AER CHEM BGM,volc-cluster-mill,19th century volcanic cluster initialized from past1000,none,past1000,none,PMIP,NOTE: This experiment was not included in the orig [...]
"Idealized equatorial eruption corresponding to an initial emission of 56.2 Tg of SO2. The eruption magnitude corresponds to recent estimates for the 1815 Tambora eruption (Sigl et al., 2015), the largest historical tropical eruption, which was linked to the so-called �year without a summer� in 1816. Experiment initialized from PiControl.",VolLongS100EQ,VolMIP,1,9,,,20,1,volc-long-eq,volc,long,eq,none,AOGCM,AER CHEM BGM,volc-long-eq,idealized equatorial volcanic eruption emitting 56.2 Tg  [...]
Idealized Northern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2. Experiment initialized from PiControl. ,VolLongS100HL,VolMIP,1,9,,,20,2,volc-long-hlN,volc,long,hlN,none,AOGCM,AER CHEM BGM,volc-long-hlN,idealized Northern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2,none,piControl,none,CMIP,,13,
"1991 Pinatubo forcing as used in the CMIP6 historical simulations. Requires special diagnostics of parameterized and resolved wave forcings, radiative and latent heating rates. A large number of ensemble members is required to address internal atmospheric variability. Experiment initialized from PiControl.",VolShort20EQfull,VolMIP,1,25,,,3,1,volc-pinatubo-full,volc,pinatubo,full,none,AOGCM,AER CHEM BGM,volc-pinatubo-full,Pinatubo experiment,none,piControl,none,CMIP,,18,
"As volc-pinatubo-full, but as decadal prediction runs. Joint experiment with DCPP, forcing input and implementation of the forcing fully comply with the VolMIP protocol.",Volshort20eqiniDcppC21,VolMIP,1,10,2014,2019,5,3,volc-pinatubo-ini,volc,pinatubo,ini,s2014,AOGCM,AER CHEM BGM,volc-pinatubo-ini,Pinatubo experiment for decadal climate prediction,initialized near end of year 2014,,,,please confirm this information is correct.,17,
slab control run for volc-piinatubo-slab,,VolMIP,1,1,,,30,1,control-slab,control,slab,,none,AGCM SLAB,AER CHEM BGM,control-slab,control with slab ocean,none,,,,,12,
"As volc-pinatubo-full, but with a slab ocean.",VolShort20EQslab,VolMIP,1,1,,,3,3,volc-pinatubo-slab,volc,pinatubo,slab,none,AGCM SLAB,AER CHEM BGM,volc-pinatubo-slab,Pinatubo experiment with slab ocean,none,control-slab,none,VolMIP,,18,
"As volc-pinatubo-full, but with prescribed aerosol heating rates in the stratosphere. Complimentary experiment to volc-pinatubo-surf.",VolShort20EQstrat,VolMIP,1,25,,,3,1,volc-pinatubo-strat,volc,pinatubo,strat,none,AOGCM,AER CHEM BGM,volc-pinatubo-strat,"Pinatubo experiment with partial radiative forcing, includes only stratospheric warming",none,piControl,none,CMIP,,19,
"As volc-pinatubo-full, but with prescribed surface cooling patterns or net  surface flux changes. Complimentary experiment to volc-pinatubo-strat.",VolShort20EQsurf,VolMIP,1,25,,,3,1,volc-pinatubo-surf,volc,pinatubo,surf,none,AOGCM,AER CHEM BGM,volc-pinatubo-surf,"Pinatubo experiment with partial radiative forcing, solar radiation scattering only",none,piControl,none,CMIP,,18,
"Parallel experiment to volc-cluster-ctrl, using restart files from the end of the historical simulation instead of from piControl, and boundary conditions from the 21st century SSP2-4.5 scenario experiment of ScenarioMIP",,VolMIP,1,3,2015,2100,85,3,volc-cluster-21C,volc,cluster,21C,none,AOGCM,AER CHEM BGM,volc-cluster-21C,volcanic cluster experiment under 21st century SSP2-4.5 scenario,none,historical,none,CMIP,,16,
Idealized Northern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2. Experiment initialized from PiControl. ,,VolMIP,1,9,,,20,3,volc-long-hlS,volc,long,hlS,none,AOGCM,AER CHEM BGM,volc-long-hlS,Idealized Southern Hemisphere high-latitude eruption emitting 28.1 Tg of SO2,none,piControl,none,CMIP,,13,
diff --git a/TestTables/CMIP6_fx.json b/TestTables/CMIP6_fx.json
index 37e7cbc..429e831 100644
--- a/TestTables/CMIP6_fx.json
+++ b/TestTables/CMIP6_fx.json
@@ -1,25 +1,25 @@
 {
     "Header": {
-        "data_specs_version": "01.beta.45", 
+        "data_specs_version": "01.00.06", 
         "table_id": "Table fx", 
         "realm": "land", 
         "frequency": "fx", 
         "cmor_version": "3.2", 
-        "table_date": "19 December 2016", 
+        "table_date": "10 April 2017", 
         "missing_value": "1e20", 
-        "product": "output", 
+        "product": "model-output", 
         "approx_interval": "0.00000", 
         "generic_levels": "olevel", 
         "mip_era": "CMIP6", 
-        "Conventions": "CF-1.6 CMIP-6.0"
+        "Conventions": "CF-1.7 CMIP-6.0"
     }, 
     "variable_entry": {
         "areacella": {
             "modeling_realm": "atmos land", 
             "standard_name": "cell_area", 
             "units": "m2", 
-            "cell_methods": "", 
-            "cell_measures": "", 
+            "cell_methods": "area: mean", 
+            "cell_measures": "area: areacella", 
             "long_name": "Atmosphere Grid-Cell Area", 
             "comment": "For atmospheres with more than 1 mesh (e.g., staggered grids), report areas that apply to surface vertical fluxes of energy.", 
             "dimensions": "longitude latitude", 
@@ -31,23 +31,6 @@
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
         }, 
-        "hfgeou": {
-            "modeling_realm": "ocean", 
-            "standard_name": "upward_geothermal_heat_flux_at_sea_floor", 
-            "units": "W m-2", 
-            "cell_methods": "area: mean where sea", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Upward Geothermal Heat Flux at Sea Floor", 
-            "comment": "", 
-            "dimensions": "longitude latitude", 
-            "out_name": "hfgeou", 
-            "type": "real", 
-            "positive": "up", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
         "mrsofc": {
             "modeling_realm": "land", 
             "standard_name": "soil_moisture_content_at_field_capacity", 
@@ -55,7 +38,7 @@
             "cell_methods": "area: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Capacity of Soil to Store Water", 
-            "comment": "'reported ''where land'': divide the total water holding capacity of all the soil in the grid cell by the land area in the grid cell;  reported as ''missing'' where the land fraction is 0.'", 
+            "comment": "'reported *where land*: divide the total water holding capacity of all the soil in the grid cell by the land area in the grid cell;  reported as *missing* where the land fraction is 0.'", 
             "dimensions": "longitude latitude", 
             "out_name": "mrsofc", 
             "type": "real", 
@@ -66,7 +49,7 @@
             "ok_max_mean_abs": ""
         }, 
         "orog": {
-            "modeling_realm": "atmos", 
+            "modeling_realm": "land", 
             "standard_name": "surface_altitude", 
             "units": "m", 
             "cell_methods": "area: mean", 
@@ -89,7 +72,7 @@
             "cell_methods": "area: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Maximum Root Depth", 
-            "comment": "report the maximum soil depth reachable by plant roots (if defined in model), i.e., the maximum soil depth from which they can extract moisture; report as ''missing'' where the land fraction is 0.", 
+            "comment": "report the maximum soil depth reachable by plant roots (if defined in model), i.e., the maximum soil depth from which they can extract moisture; report as *missing* where the land fraction is 0.", 
             "dimensions": "longitude latitude", 
             "out_name": "rootd", 
             "type": "real", 
@@ -119,11 +102,11 @@
         "sftlf": {
             "modeling_realm": "atmos", 
             "standard_name": "land_area_fraction", 
-            "units": "1", 
+            "units": "%", 
             "cell_methods": "area: mean", 
             "cell_measures": "area: areacella", 
             "long_name": "Land Area Fraction", 
-            "comment": "Please express 'X_area_fraction' as the fraction of horizontal area occupied by X.", 
+            "comment": "Please express 'X_area_fraction' as the percentage of horizontal area occupied by X.", 
             "dimensions": "longitude latitude", 
             "out_name": "sftlf", 
             "type": "real", 
@@ -132,57 +115,6 @@
             "valid_max": "", 
             "ok_min_mean_abs": "", 
             "ok_max_mean_abs": ""
-        }, 
-        "sftof": {
-            "modeling_realm": "ocean", 
-            "standard_name": "sea_area_fraction", 
-            "units": "%", 
-            "cell_methods": "area: mean", 
-            "cell_measures": "area: areacello", 
-            "long_name": "Sea Area Fraction", 
-            "comment": "This is the area fraction at the ocean surface.", 
-            "dimensions": "longitude latitude", 
-            "out_name": "sftof", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "thkcello": {
-            "modeling_realm": "ocean", 
-            "standard_name": "cell_thickness", 
-            "units": "m", 
-            "cell_methods": "time: mean", 
-            "cell_measures": "area: areacello volume: volcello", 
-            "long_name": "Ocean Model Cell Thickness", 
-            "comment": "", 
-            "dimensions": "longitude latitude olevel", 
-            "out_name": "thkcello", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
-        }, 
-        "volcello": {
-            "modeling_realm": "ocean", 
-            "standard_name": "ocean_volume", 
-            "units": "m3", 
-            "cell_methods": "", 
-            "cell_measures": "", 
-            "long_name": "Ocean Grid-Cell Volume", 
-            "comment": "grid-cell volume ca. 2000.", 
-            "dimensions": "longitude latitude olevel", 
-            "out_name": "volcello", 
-            "type": "real", 
-            "positive": "", 
-            "valid_min": "", 
-            "valid_max": "", 
-            "ok_min_mean_abs": "", 
-            "ok_max_mean_abs": ""
         }
     }
 }
diff --git a/TestTables/CMIP6_grids.json b/TestTables/CMIP6_grids.json
index f28f081..19a8266 100644
--- a/TestTables/CMIP6_grids.json
+++ b/TestTables/CMIP6_grids.json
@@ -1,14 +1,12 @@
 {
     "Header": {
         "product": "output", 
-        "cf_version": "1.6", 
-        "baseURL": "http://cmip-pcmdi.llnl.gov/CMIP6/dataLocation", 
         "cmor_version": "3.2", 
         "Conventions": "CF-1.6 CMIP-6.0", 
         "table_id": "Table grids", 
-        "data_specs_version": "<data_specs_version>", 
+        "data_specs_version": "01.00.06", 
         "missing_value": "1e20", 
-        "table_date": "19 December 2016"
+        "table_date": "10 April 2017"
     }, 
     "mapping_entry": {
         "sample_user_mapping": {
@@ -120,7 +118,7 @@
             "dimensions": "longitude latitude", 
             "valid_min": "-90.0", 
             "long_name": "", 
-            "standard_name": "latitude", 
+            "standard_name": "", 
             "out_name": "latitude", 
             "units": "degrees_north", 
             "valid_max": "90.0"
@@ -147,7 +145,7 @@
             "dimensions": "longitude latitude", 
             "valid_min": "0.0", 
             "long_name": "", 
-            "standard_name": "longitude", 
+            "standard_name": "", 
             "out_name": "longitude", 
             "units": "degrees_east", 
             "valid_max": "360.0"
diff --git a/TestTables/md5s b/TestTables/md5s
deleted file mode 100644
index ad356ee..0000000
--- a/TestTables/md5s
+++ /dev/null
@@ -1 +0,0 @@
-{'CMIP5': {'cf3hr': {'11 May 2010': 'a59ca1270ff3036d417a7f2217598266', '19 October 2010': '8b5c2f197b70a103393838ebd4075c6c', '12 May 2010': '905f7ccdd5a31cb71e2a6e3b339cd0e1', '23 August 2010': '5ccea11a7c3d165c76df3d9eede395d0', '01 June 2010': '619aa3c816bc25a53335589698e64968', '01 July 2010': 'c0fe9e92115d75292f5009e13761cb4b', '11 November 2010': '35a8e11c7f57f3128517d21d177a8204', '12 March 2010': 'ae9a82f01824d9012aa0657cd7896a9a', '22 March 2010': '712cd14ab6a28116da828ff555e00 [...]
\ No newline at end of file
diff --git a/Test/python_test_table_A b/TestTables/python_test_table_A
similarity index 99%
rename from Test/python_test_table_A
rename to TestTables/python_test_table_A
index c4ae705..1d76101 100644
--- a/Test/python_test_table_A
+++ b/TestTables/python_test_table_A
@@ -1,16 +1,17 @@
 {
     "Header": {                                                                                                                                
-        "data_specs_version": "01.beta.38",                                                                                                    
-        "table_id": "Table Amon",                                                                                                              
+        "data_specs_version": "01.10.38",                                                                                                    
+        "table_id": "Table AmonBounds",
         "realm": "atmos atmosChem",                                                                                                            
         "frequency": "mon",                                                                                                                    
         "cmor_version": "3.2",                                                                                                                 
         "table_date": "15 November 2016",                                                                                                      
         "missing_value": "1e20",                                                                                                               
-        "product": "output",                                                                                                                   
-        "approx_interval": "30.00000",                                                                                                         
-        "generic_levels": "alevel alevhalf",                                                                                                           "mip_era": "CMIP6",                                                                                                                    
-        "Conventions": "CF-1.6 CMIP-6.0"                                                                                                       
+        "product": "model-output",
+        "approx_interval": "30.00000",
+        "generic_levels": "alevel alevhalf",
+        "mip_era": "CMIP6",                                                                                                                    
+        "Conventions": "CF-1.7 CMIP-6.0"                                                                                                       
     },                                                                                                                                         
 
     "axis_entry": {
diff --git a/configure b/configure
index 8a6cfb7..e0f4643 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for cmor 3.2.1.
+# Generated by GNU Autoconf 2.69 for cmor 3.2.3.
 #
 # Report bugs to <nadeau1 at llnl.gov>.
 #
@@ -580,8 +580,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='cmor'
 PACKAGE_TARNAME='cmor'
-PACKAGE_VERSION='3.2.1'
-PACKAGE_STRING='cmor 3.2.1'
+PACKAGE_VERSION='3.2.3'
+PACKAGE_STRING='cmor 3.2.3'
 PACKAGE_BUGREPORT='nadeau1 at llnl.gov'
 PACKAGE_URL=''
 
@@ -1261,7 +1261,7 @@ 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 3.2.1 to adapt to many kinds of systems.
+\`configure' configures cmor 3.2.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1328,7 +1328,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of cmor 3.2.1:";;
+     short | recursive ) echo "Configuration of cmor 3.2.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1430,7 +1430,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-cmor configure 3.2.1
+cmor configure 3.2.3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1648,7 +1648,7 @@ 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 3.2.1, which was
+It was created by cmor $as_me 3.2.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4982,7 +4982,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # 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 3.2.1, which was
+This file was extended by cmor $as_me 3.2.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -5035,7 +5035,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-cmor config.status 3.2.1
+cmor config.status 3.2.3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index b1584b8..d8d1e6f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ dnl
 dnl Process this file with autoconf to produce a configure script.
 
 dnl AC_PREREQ(2.59)
-AC_INIT(cmor, 3.2.1, nadeau1 at llnl.gov)
+AC_INIT(cmor, 3.2.3, nadeau1 at llnl.gov)
 
 GIT_TAG=`./get_git_version.sh`
 
diff --git a/include/cdTime/cfortran.h b/include/cdTime/cfortran.h
index 9d96a6e..389c25d 100644
--- a/include/cdTime/cfortran.h
+++ b/include/cdTime/cfortran.h
@@ -544,39 +544,39 @@ Apollo                                           : neg.   = TRUE, else FALSE.
 #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; }
+//#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; }
-
+//#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)
@@ -608,16 +608,16 @@ else if (e>s) {                      /* Watch out for neg. length string.*/
 
 /* 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; }
+//#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;
@@ -651,32 +651,32 @@ typedef DSC$DESCRIPTOR_A(1) fstringvector;
 #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;
-}
-if (0) {  /* to prevent not used warnings in gcc (added by ROOT) */
-   c2fstrv(0, 0, 0, 0); f2cstrv(0, 0, 0, 0); kill_trailing(0, 0);
-   vkill_trailing(0, 0, 0, 0); num_elem(0, 0, 0, 0);
-}
-return (int)num;
-}
+//#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;
+//}
+//if (0) {  /* to prevent not used warnings in gcc (added by ROOT) */
+//   c2fstrv(0, 0, 0, 0); f2cstrv(0, 0, 0, 0); kill_trailing(0, 0);
+//   vkill_trailing(0, 0, 0, 0); num_elem(0, 0, 0, 0);
+//}
+//return (int)num;
+//}
 /* #endif removed 2/10/98 (CFITSIO) */
 
 /*-------------------------------------------------------------------------*/
@@ -760,7 +760,7 @@ return (int)num;
    while the following equivalent typedef is fine.
    For consistency use the typedef on all machines.
  */
-typedef void (*cfCAST_FUNCTION)(CF_NULL_PROTO);
+/*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)
diff --git a/include/cmor.h b/include/cmor.h
index 8429a72..2dcbfa7 100644
--- a/include/cmor.h
+++ b/include/cmor.h
@@ -3,10 +3,10 @@
 
 #define CMOR_VERSION_MAJOR 3
 #define CMOR_VERSION_MINOR 2
-#define CMOR_VERSION_PATCH 1
+#define CMOR_VERSION_PATCH 3
 
 #define CMOR_CF_VERSION_MAJOR 1
-#define CMOR_CF_VERSION_MINOR 6
+#define CMOR_CF_VERSION_MINOR 7
 
 #define CMOR_MAX_STRING 1024
 #define CMOR_DEF_ATT_STR_LEN 256
@@ -17,7 +17,7 @@
 #define CMOR_MAX_DIMENSIONS 7
 #define CMOR_MAX_ATTRIBUTES 100
 #define CMOR_MAX_ERRORS 10
-#define CMOR_MAX_TABLES 10
+#define CMOR_MAX_TABLES 30
 #define CMOR_MAX_GRID_ATTRIBUTES 25
 #define CMOR_MAX_JSON_ARRAY 50
 #define CMOR_MAX_JSON_OBJECT 250
@@ -99,7 +99,7 @@
 #define AXIS_ENTRY_FILENAME           "CMIP6_coordinate.json"
 #define CMOR_FORMULA_VAR_FILE         GLOBAL_INTERNAL"FORMULA_VAR_FILE"
 #define VARIABLE_ATT_UNITS            "units"
-#define VARIABLE_ATT_MISSINGVALUES    "missing_values"
+#define VARIABLE_ATT_MISSINGVALUES    "missing_value"
 #define VARIABLE_ATT_FILLVAL          "_FillValue"
 #define VARIABLE_ATT_STANDARDNAME     "standard_name"
 #define VARIABLE_ATT_LONGNAME         "long_name"
@@ -125,6 +125,7 @@
 #define VARIABLE_ATT_VALIDMAX         "valid_max"
 #define VARIABLE_ATT_MINMEANABS       "ok_min_mean_abs"
 #define VARIABLE_ATT_MAXMEANABS       "ok_max_mean_abs"
+#define VARIABLE_ATT_CHUNKING         "chunk_dimensions"
 #define VARIABLE_ATT_SHUFFLE          "shuffle"
 #define VARIABLE_ATT_DEFLATE          "deflate"
 #define VARIABLE_ATT_DEFLATELEVEL     "deflate_level"
@@ -153,6 +154,8 @@
 #define GLOBAL_ATT_VARIABLE_ID        "variable_id"
 #define GLOBAL_ATT_SOURCE_ID          "source_id"
 #define GLOBAL_ATT_SOURCE             "source"
+#define GLOBAL_ATT_SUB_EXPT_ID        "sub_experiment_id"
+#define GLOBAL_ATT_SUB_EXPT           "sub_experiment"
 #define GLOBAL_ATT_SOURCE_TYPE        "source_type"
 #define GLOBAL_ATT_CONVENTIONS        "Conventions"
 #define GLOBAL_ATT_CREATION_DATE      "creation_date"
@@ -166,6 +169,7 @@
 #define GLOBAL_ATT_REALM              "realm"
 #define GLOBAL_ATT_TRACKING_ID        "tracking_id"
 #define GLOBAL_ATT_VARIANT_LABEL      "variant_label"
+#define GLOBAL_ATT_MEMBER_ID          GLOBAL_INTERNAL"member_id"
 #define GLOBAL_ATT_DATASPECSVERSION   "data_specs_version"
 #define GLOBAL_ATT_FREQUENCY          "frequency"
 #define GLOBAL_ATT_LICENSE            "license"
@@ -183,6 +187,17 @@
 #define GLOBAL_CV_FILENAME            GLOBAL_INTERNAL"control_vocabulary_file"
 #define GLOBAL_IS_CMIP6               GLOBAL_INTERNAL"cmip6_option"
 
+#define NO_PARENT                     "no parent"
+#define NONE                          "none"
+#define BRANCH_METHOD                 "branch_method"
+#define BRANCH_TIME_IN_CHILD          "branch_time_in_child"
+#define BRANCH_TIME_IN_PARENT         "branch_time_in_parent"
+#define PARENT_ACTIVITY_ID            "parent_activity_id"
+#define PARENT_EXPERIMENT_ID          "parent_experiment_id"
+#define PARENT_MIP_ERA                "parent_mip_era"
+#define PARENT_SOURCE_ID              "parent_source_id"
+#define PARENT_TIME_UNITS             "parent_time_units"
+#define PARENT_VARIANT_LABEL          "parent_variant_label"
 
 #define JSON_KEY_HEADER               "Header"
 #define JSON_KEY_EXPERIMENT           "experiments"
@@ -192,22 +207,21 @@
 #define JSON_KEY_CV_ENTRY             "CV"
 
 #define CV_KEY_REQUIRED_GBL_ATTRS     "required_global_attributes"
-#define CV_KEY_INSTITUTION_IDS        "institution_id"
-#define CV_KEY_EXPERIMENT_IDS         "experiment_id"
+#define CV_KEY_INSTITUTION_ID         "institution_id"
+#define CV_KEY_EXPERIMENT_ID          "experiment_id"
 #define CV_KEY_SOURCE_IDS             "source_id"
 #define CV_KEY_GRID_LABELS            "grid_label"
 #define CV_KEY_GRID_RESOLUTION        "nominal_resolution"
 #define CV_KEY_GRIDLABEL_GR           "gr"
-#define CV_KEY_SOURCE_LABEL           "label"
-
+#define CV_KEY_SOURCE_LABEL           "source"
+#define CV_KEY_SUB_EXPERIMENT_ID      "sub_experiment_id"
 
 #define CV_EXP_ATTR_ADDSOURCETYPE     "additional_allowed_model_components"
 #define CV_EXP_ATTR_REQSOURCETYPE     "required_model_components"
-
+#define CV_EXP_ATTR_DESCRIPTION       "description"
 #define GLOBAL_INT_ATT_PARENT_EXPT    GLOBAL_INTERNAL"parent_experiment"
 #define GLOBAL_ATT_VERSION            GLOBAL_INTERNAL"version"
 
-
 #define TABLE_HEADER_VERSION          "cmor_version"
 #define TABLE_HEADER_GENERIC_LEVS     "generic_levels"
 #define TABLE_HEADER_CF_VERSION       "cf_version"
@@ -235,11 +249,14 @@
 #define DIMENSION_ZLEVEL              "zlevel"
 #define DIMENSION_OLEVEL              "olevel"
 
+#define AREA                          "area"
+#define VOLUME                        "volume"
 #define CMIP6                         "CMIP6"
-#define CMOR_DEFAULT_PATH_TEMPLATE    "<mip_era><institute_id><source_id><activity_id><experiment_id><variant_label><table><variable_id><grid_label><version>"
-#define CMOR_DEFAULT_FILE_TEMPLATE    "<variable_id><table><experiment_id><source_id><variant_label><grid_label>"
+#define CMOR_DEFAULT_PATH_TEMPLATE    "<mip_era><activity_id><institute_id><source_id><experiment_id><member_id><table><variable_id><grid_label><version>"
+#define CMOR_DEFAULT_FILE_TEMPLATE    "<variable_id><table><source_id><experiment_id><member_id><grid_label>"
 #define CMOR_DEFAULT_FURTHERURL_TEMPLATE "http://furtherinfo.es-doc.org/<mip_era><institution_id><source_id><experiment_id><sub_experiment_id><variant_label>"
-#define EXTERNAL_VARIABLE_REGEX       "area:[[:blank:]]*([[:alpha:]]+)([[:blank:]]*volume:[[:blank:]]*([[:alpha:]]+))*"
+//#define EXTERNAL_VARIABLE_REGEX       "([[:alpha:]]+):[[:blank:]]*([[:alpha:]]+)[[:blank:]]*([[:alpha:]]+:[[:blank:]]*([[:alpha:]]+))*"
+#define EXTERNAL_VARIABLE_REGEX       "[[:alpha:]]+:[[:blank:]]*([[:alpha:]]+)([[:blank:]]*[[:alpha:]]+:[[:blank:]]*([[:alpha:]]+))*"
 
 extern int USE_NETCDF_4;
 extern int CMOR_MODE;
@@ -248,7 +265,7 @@ extern int CMOR_VERBOSITY;
 extern int CMOR_NETCDF_MODE;
 extern int CV_ERROR;
 
-extern int cleanup_varid;
+extern int clfeanup_varid;
 
 extern int cmor_naxes;
 extern int cmor_nvars;
@@ -388,6 +405,7 @@ typedef struct cmor_variable_def_ {
     float valid_max;
     float ok_min_mean_abs;
     float ok_max_mean_abs;
+    char chunking_dimensions[CMOR_MAX_STRING];
     int shuffle;
     int deflate;
     int deflate_level;
@@ -436,6 +454,7 @@ typedef struct cmor_var_ {
     float valid_max;
     float ok_min_mean_abs;
     float ok_max_mean_abs;
+    char chunking_dimensions[CMOR_MAX_STRING];
     int shuffle;
     int deflate;
     int deflate_level;
diff --git a/include/cmor_func_def.h b/include/cmor_func_def.h
index 0612c53..fcab266 100644
--- a/include/cmor_func_def.h
+++ b/include/cmor_func_def.h
@@ -97,7 +97,7 @@ extern int cmor_close_variable( int var_id, char *file_name,
 extern int cmor_close( void );
 
 extern int cmor_writeGblAttr(int var_id, int ncid, int ncafid);
-extern void cmor_setGblAttr( int );
+extern int cmor_setGblAttr( int );
 
 extern void cmor_generate_uuid( void );
 extern void cmor_define_dimensions(int var_id, int ncid,
@@ -131,17 +131,23 @@ extern void create_singleton_dimensions(int var_id, int ncid,
 /* ==================================================================== */
 
 
-extern void cmor_CV_checkISOTime(char *szAttribute);
+extern int cmor_CV_checkISOTime(char *szAttribute);
 extern void cmor_CV_set_att(cmor_CV_def_t *CV,
                                 char *key,
                                 json_object *joValue);
-extern void cmor_CV_checkExperiment( cmor_CV_def_t *CV);
-extern void cmor_CV_checkSourceID(cmor_CV_def_t *CV);
-extern void cmor_CV_checkSourceType(cmor_CV_def_t *CV, char *);
+extern int cmor_CV_checkFilename(cmor_CV_def_t *CV, int var_id,
+        char *szInTimeCalendar,
+        char *szInTimeUnits,
+        char *infile);
+extern int cmor_CV_checkParentExpID(cmor_CV_def_t *CV);
+extern int cmor_CV_checkSubExpID(cmor_CV_def_t *CV);
+extern int cmor_CV_checkExperiment( cmor_CV_def_t *CV);
+extern int cmor_CV_checkSourceID(cmor_CV_def_t *CV);
+extern int cmor_CV_checkSourceType(cmor_CV_def_t *CV, char *);
 extern int get_CV_Error(void);
 extern int cmor_attNameCmp(const void *v1, const void *v2);
 
-extern void cmor_CV_checkGblAttributes( cmor_CV_def_t *CV );
+extern int cmor_CV_checkGblAttributes( cmor_CV_def_t *CV );
 extern void cmor_CV_free(cmor_CV_def_t *CV);
 extern char *cmor_CV_get_value(cmor_CV_def_t *CV, char *key);
 extern void cmor_CV_init( cmor_CV_def_t *CV, int table_id );
@@ -150,9 +156,9 @@ extern void cmor_CV_printall( void );
 extern cmor_CV_def_t *cmor_CV_search_child_key(cmor_CV_def_t *CV, char *key);
 extern cmor_CV_def_t * cmor_CV_rootsearch(cmor_CV_def_t *CV, char *key);
 
-extern void cmor_CV_checkFurtherInfoURL(int var_id);
-extern void cmor_CV_checkGrids(cmor_CV_def_t *CV);
-extern void cmor_CV_setInstitution( cmor_CV_def_t *CV);
+extern int cmor_CV_checkFurtherInfoURL(int var_id);
+extern int cmor_CV_checkGrids(cmor_CV_def_t *CV);
+extern int cmor_CV_setInstitution( cmor_CV_def_t *CV);
 
 extern int cmor_CV_set_entry(cmor_table_t* table, json_object *value);
 extern int  cmor_CV_ValidateGblAttributes( char *name);
@@ -231,6 +237,8 @@ extern int cmor_variable( int *var_id, char *name, char *units, int ndims,
 			  char *comment );
 extern int cmor_set_deflate( int var_id, int shuffle,
                              int deflate, int deflate_level );
+extern int cmor_set_chunking( int var_id, int nTableID,
+							    size_t nc_dim_chunking[]);
 
 extern int cmor_set_var_def_att( cmor_var_def_t * var,
 				 char att[CMOR_MAX_STRING],
diff --git a/include/cmor_locale.h b/include/cmor_locale.h
index 7f86f9b..c1f828d 100644
--- a/include/cmor_locale.h
+++ b/include/cmor_locale.h
@@ -1,4 +1,4 @@
 #ifndef _CMOR_LOCALE
 #define _CMOR_LOCALE
-#define CMOR_PREFIX  "/software/anaconda2/envs/devel"
+#define CMOR_PREFIX  "/software/anaconda2/envs/cmor3"
 #endif
diff --git a/run_tests.py b/run_tests.py
index b530c07..c9fa9ee 100644
--- a/run_tests.py
+++ b/run_tests.py
@@ -3,4 +3,4 @@ import Test.all_tests
 import sys
 testSuite = Test.all_tests.create_test_suite()
 text_runner = unittest.TextTestRunner(verbosity=2).run(testSuite)
-sys.exit(not text_runner.wasSuccessful())
+#sys.exit(not text_runner.wasSuccessful())
diff --git a/run_tests2.py b/run_tests2.py
new file mode 100644
index 0000000..57d34ee
--- /dev/null
+++ b/run_tests2.py
@@ -0,0 +1,40 @@
+testmodules = [
+"Test.test_python_CMIP6_CV_baddirectory",
+"Test.test_python_CMIP6_CV_badgridgr",
+"Test.test_python_CMIP6_CV_badgridlabel",
+"Test.test_python_CMIP6_CV_badgridresolution",
+"Test.test_python_CMIP6_CV_badinstitutionIDNotSet",
+"Test.test_python_CMIP6_CV_badinstitutionID",
+"Test.test_python_CMIP6_CV_badinstitution",
+"Test.test_python_CMIP6_CV_badsourceid",
+"Test.test_python_CMIP6_CV_badsource",
+"Test.test_python_CMIP6_CV_badsourcetypeCHEMAER",
+"Test.test_python_CMIP6_CV_badsourcetype",
+"Test.test_python_CMIP6_CV_badsourcetypeRequired",
+"Test.test_python_CMIP6_CV_badvariant",
+"Test.test_python_CMIP6_CV_externalvariables",
+"Test.test_python_CMIP6_CV_furtherinfourl",
+"Test.test_python_CMIP6_CV_fxtable",
+"Test.test_python_CMIP6_CV_HISTORY",
+"Test.test_python_CMIP6_CV_longrealizationindex",
+"Test.test_python_CMIP6_CV_nomipera",
+"Test.test_python_CMIP6_CV_trackingNoprefix",
+"Test.test_python_CMIP6_CV_trackingprefix",
+"Test.test_python_has_cur_dataset_attribute",
+"Test.test_python_has_variable_attribute.TestHasVariableAttribute"
+]
+import unittest
+suite = unittest.TestSuite()
+
+for t in testmodules:
+    try:
+        # If the module defines a suite() function, call it to get the suite.
+        mod = __import__(t, globals(), locals(), ['suite'])
+        suitefn = getattr(mod, 'suite')
+        suite.addTest(suitefn())
+    except (ImportError, AttributeError):
+        # else, just load all the test cases from the module.
+        suite.addTest(unittest.defaultTestLoader.loadTestsFromName(t))
+
+unittest.TextTestRunner(verbosity=2).run(suite)
+
diff --git a/scripts/conda_upload.sh b/scripts/conda_upload.sh
new file mode 100755
index 0000000..e7d4747
--- /dev/null
+++ b/scripts/conda_upload.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+PKG_NAME=cmor
+USER=pcmdi
+echo "Trying to upload conda"
+if [ `uname` == "Linux" ]; then
+    OS=linux-64
+    echo "Linux OS"
+    export PATH="$HOME/miniconda2/bin:$PATH"
+    conda update -y -q conda
+else
+    echo "Mac OS"
+    OS=osx-64
+fi
+
+mkdir ~/conda-bld
+conda install -q anaconda-client conda-build
+conda config --set anaconda_upload no
+binstar config --set verify_ssl False
+export CONDA_BLD_PATH=${HOME}/conda-bld
+export VERSION=`date +%Y.%m.%d`
+export UVCDAT_ANONYMOUS_LOG=no
+echo "Cloning recipes"
+git clone git://github.com/UV-CDAT/conda-recipes
+cd conda-recipes
+cmorversion=`echo $1 | cut -d- -f2`
+python ./prep_for_build.py -v `date +%Y.%m.%d`.${cmorversion} -b $1
+echo "Building now"
+conda build -c conda-forge -c uvcdat/label/nightly -c uvcdat --numpy=1.12 cmor
+anaconda -t $CONDA_UPLOAD_TOKEN upload -u $USER -l nightly $CONDA_BLD_PATH/$OS/$PKG_NAME-`date +%Y.%m.%d`.${cmorversion}-np112py27_0.tar.bz2 --force
+conda build -c conda-forge -c uvcdat/label/nightly -c uvcdat --numpy=1.11 cmor
+anaconda -t $CONDA_UPLOAD_TOKEN upload -u $USER -l nightly $CONDA_BLD_PATH/$OS/$PKG_NAME-`date +%Y.%m.%d`.${cmorversion}-np111py27_0.tar.bz2 --force
+conda build -c conda-forge  -c uvcdat/label/nightly -c uvcdat --numpy=1.10 cmor
+anaconda -t $CONDA_UPLOAD_TOKEN upload -u $USER -l nightly $CONDA_BLD_PATH/$OS/$PKG_NAME-`date +%Y.%m.%d`.${cmorversion}-np110py27_0.tar.bz2 --force
+conda build -c conda-forge  -c uvcdat/label/nightly -c uvcdat --numpy=1.9 cmor
+anaconda -t $CONDA_UPLOAD_TOKEN upload -u $USER -l nightly $CONDA_BLD_PATH/$OS/$PKG_NAME-`date +%Y.%m.%d`.${cmorversion}-np19py27_0.tar.bz2 --force
+
diff --git a/scripts/createCMIP6CV.py b/scripts/createCMIP6CV.py
index 65a8d87..5ccb9fc 100644
--- a/scripts/createCMIP6CV.py
+++ b/scripts/createCMIP6CV.py
@@ -21,6 +21,7 @@ filelist = [
         "CMIP6_table_id.json",
         "CMIP6_license.json",
         "mip_era.json",
+        "CMIP6_sub_experiment_id.json",
         "CMIP6_experiment_id.json"
         ]
 # Github repository with CMIP6 related Control Vocabulary files
@@ -31,13 +32,28 @@ class readWCRP():
     def __init__(self):
         pass
 
+    def createSource(self,myjson):
+        root = myjson['source_id']
+        for key in root.keys():
+            root[key]['source']=root[key]['label'] + ' (' + root[key]['release_year'] + '): ' + chr(10)
+            for realm in root[key]['model_component'].keys():
+                if( root[key]['model_component'][realm]['description'].find('None') == -1):
+                    root[key]['source'] += realm + ': ' 
+                    root[key]['source'] += root[key]['model_component'][realm]['description'] + chr(10)
+            root[key]['source'] = root[key]['source'].rstrip()
+            del root[key]['label']
+            del root[key]['release_year']
+            del root[key]['label_extended']
+            del root[key]['model_component']
     def readGit(self):
         Dico = OrderedDict()
         for file in filelist:
             url = githubRepo + file 
             response = urllib.urlopen(url)
             print url
-            myjson = json.loads(response.read())
+            myjson = json.loads(response.read(), object_pairs_hook=OrderedDict)
+            if(file == 'CMIP6_source_id.json'):
+                self.createSource(myjson)
             Dico = OrderedDict(Dico.items() + myjson.items())
          
         finalDico = OrderedDict()
@@ -49,20 +65,24 @@ def run():
     gather = readWCRP()
     CV = gather.readGit()
     regexp = {}
-    regexp["variant_label"] = [ "^r[[:digit:]]\\{1,\\}i[[:digit:]]\\{1,\\}p[[:digit:]]\\{1,\\}f[[:digit:]]\\{1,\\}$" ] 
-    regexp["sub_experiment_id"] = [ "^s[[:digit:]]\\{4,4\\}$", "none" ]
+    regexp["variant_label"] = ["r[[:digit:]]\\{1,\\}i[[:digit:]]\\{1,\\}p[[:digit:]]\\{1,\\}f[[:digit:]]\\{1,\\}$" ]
+
     regexp["tracking_id"] = [ "hdl:21.14100/.*" ]  
-    regexp["product"] = [ "output" ] 
     regexp["mip_era"] = [ "CMIP6" ]
     regexp["frequency"] = [ "3hr", "6hr", "day", "fx", "mon", "monClim", "subhr", "yr" ]
     regexp["further_info_url"] = [ "http://furtherinfo.es-doc.org/[[:alpha:]]\\{1,\\}" ]
-    regexp["license"] = [
-                         "CMIP6 model data produced by .* is licensed under a Creative Commons Attribution \"Share Alike\" 4.0 International License (http://creativecommons.org/licenses/by/4.0/). Use of the data should be acknowledged following guidelines found at.*Permissions beyond the scope of this license may be available at.* Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute in data files). The data [...]
-                         ],
+    regexp["product"] = [ "model-output" ]
+    regexp["Conventions"] = [ "^CF-1.7 CMIP-6.0\\( UGRID-1.0\\)\\{0,\\}$" ]
+    regexp["realization_index"] = [ "^\\[\\{0,\\}[[:digit:]]\\{1,\\}\\]\\{0,\\}$" ]
+    regexp["physics_index"] = [ "^\\[\\{0,\\}[[:digit:]]\\{1,\\}\\]\\{0,\\}$" ]
+    regexp["forcing_index"] = [ "^\\[\\{0,\\}[[:digit:]]\\{1,\\}\\]\\{0,\\}$" ]
+    regexp["initialization_index"] = [ "^\\[\\{0,\\}[[:digit:]]\\{1,\\}\\]\\{0,\\}$" ]
+    regexp["data_specs_version"] = [ "^[[:digit:]]\\{2,2\\}\\.[[:digit:]]\\{2,2\\}\\.[[:digit:]]\\{2,2\\}$" ]
+    regexp["license"] = [ "^CMIP6 model data produced by .* is licensed under a Creative Commons Attribution.*ShareAlike 4.0 International License (https://creativecommons.org/licenses)\\. Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 output, including citation requirements and proper acknowledgment\\. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute in this file) .*\\ [...]
+
     CV['CV'] = OrderedDict(CV['CV'].items() + regexp.items())
     f.write(json.dumps(CV, indent=4, separators=(',', ':'), sort_keys=False) )
 
-
     f.close()
 
 if __name__ == '__main__':
diff --git a/setup.py.in b/setup.py.in
index 24186c4..5fc6890 100755
--- a/setup.py.in
+++ b/setup.py.in
@@ -1,7 +1,9 @@
 import numpy
+# do not push to master
 from numpy.distutils.core import setup, Extension
 #from numpy.distutils.ccompiler import CCompiler
 import os,sys,string
+from setuptools import setup, Extension
 
 include_dirs = [numpy.lib.utils.get_include(),"include","include/cdTime","include/json-c"]
 
@@ -52,9 +54,10 @@ setup (name = "CMOR",
        author='Denis Nadeau, AIMS',
        description = "Python Interface to CMOR output library",
        url = "http://cmor.llnl.gov/",
-       packages = ['cmor', 'cmip6_cv', 'cmor.Test' ],
-       package_dir = {'cmor': 'Lib', 'cmip6_cv': 'LibCV', 'cmor.Test':'Test'},
-       scripts=['scripts/PrePARE.py' ],
+       zip_safe=False,
+       packages = ['cmor', 'cmip6_cv', 'cmor.Test', 'cmip6_cv.PrePARE' ],
+       package_dir = {'cmor': 'Lib', 'cmip6_cv': 'LibCV', 'cmor.Test':'Test', 'cmip6_cv.PrePARE':'LibCV/PrePARE'},
+#       scripts=['scripts/PrePARE.py' ],
        ext_modules = [
             Extension('cmor._cmor',
                   srcfiles,
@@ -62,7 +65,7 @@ setup (name = "CMOR",
                   library_dirs = library_dirs,
                   libraries = libraries,
                   define_macros = macros,
-                  extra_compile_args = [ "-g", "-DgFortran"]
+                  extra_compile_args = [ "-DgFortran"]
                   ),
             Extension('cmip6_cv._cmip6_cv',
                   srcfiles_CV,
@@ -70,9 +73,12 @@ setup (name = "CMOR",
                   library_dirs = library_dirs,
                   libraries = libraries,
                   define_macros = macros,
-                  extra_compile_args = [ "-g", "-DgFortran"]
+                  extra_compile_args = [ "-DgFortran"]
                   ),
-        ]
+        ],
+       entry_points = {
+          'console_scripts':['PrePARE=cmip6_cv.PrePARE:main'],
+        }
 
       )
 

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



More information about the debian-science-commits mailing list