[cmor] 01/01: upstream release 3.3.0
Alastair McKinstry
mckinstry at moszumanska.debian.org
Fri Dec 15 10:25:47 UTC 2017
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to tag upstream/3.3.0
in repository cmor.
commit 99190ac9d7f418531442444d7b4732273bce0f31
Author: Alastair McKinstry <mckinstry at debian.org>
Date: Fri Dec 15 10:25:17 2017 +0000
upstream release 3.3.0
---
INSTALL | 4 +-
LibCV/PrePARE/PrePARE.py | 207 ++++++++++++++++++++++----------------
LibCV/pywrapper.py | 22 ++--
README.md | 4 +-
RELEASE-NOTES | 1 +
Src/cmor.c | 5 +
Src/cmor_CV.c | 59 +++++++----
Src/cmor_variables.c | 2 +-
TestTables/CMIP6_3hr.json | 4 +-
TestTables/CMIP6_6hrLev.json | 4 +-
TestTables/CMIP6_6hrPlev.json | 76 +-------------
TestTables/CMIP6_6hrPlevPt.json | 4 +-
TestTables/CMIP6_AERday.json | 4 +-
TestTables/CMIP6_AERfx.json | 2 +-
TestTables/CMIP6_AERhr.json | 4 +-
TestTables/CMIP6_AERmon.json | 4 +-
TestTables/CMIP6_AERmonZ.json | 38 +++----
TestTables/CMIP6_Amon.json | 4 +-
TestTables/CMIP6_Amon_json_hfls | 2 +-
TestTables/CMIP6_CF3hr.json | 4 +-
TestTables/CMIP6_CFday.json | 4 +-
TestTables/CMIP6_CFmon.json | 4 +-
TestTables/CMIP6_CFsubhr.json | 4 +-
TestTables/CMIP6_CFsubhrOff.json | 2 +-
TestTables/CMIP6_CV.json | 54 ++++++++--
TestTables/CMIP6_E1hr.json | 4 +-
TestTables/CMIP6_E1hrClimMon.json | 4 +-
TestTables/CMIP6_E3hr.json | 4 +-
TestTables/CMIP6_E3hrPt.json | 40 +-------
TestTables/CMIP6_E6hrZ.json | 10 +-
TestTables/CMIP6_Eday.json | 124 +++++------------------
TestTables/CMIP6_EdayZ.json | 34 +++----
TestTables/CMIP6_Efx.json | 4 +-
TestTables/CMIP6_Emon.json | 36 +++----
TestTables/CMIP6_EmonZ.json | 74 ++++++--------
TestTables/CMIP6_Esubhr.json | 4 +-
TestTables/CMIP6_Eyr.json | 4 +-
TestTables/CMIP6_IfxAnt.json | 12 +--
TestTables/CMIP6_IfxGre.json | 12 +--
TestTables/CMIP6_ImonAnt.json | 4 +-
TestTables/CMIP6_ImonGre.json | 4 +-
TestTables/CMIP6_IyrAnt.json | 42 ++++----
TestTables/CMIP6_IyrGre.json | 42 ++++----
TestTables/CMIP6_LImon.json | 4 +-
TestTables/CMIP6_Lmon.json | 4 +-
TestTables/CMIP6_Oclim.json | 4 +-
TestTables/CMIP6_Oday.json | 4 +-
TestTables/CMIP6_Odec.json | 8 +-
TestTables/CMIP6_Ofx.json | 10 +-
TestTables/CMIP6_Omon.json | 46 ++++-----
TestTables/CMIP6_Omonmissing.json | 2 +-
TestTables/CMIP6_Oyr.json | 4 +-
TestTables/CMIP6_SIday.json | 24 ++---
TestTables/CMIP6_SImon.json | 154 ++++++++++++++--------------
TestTables/CMIP6_cf3hr_0.json | 2 +-
TestTables/CMIP6_cf3hr_1.json | 2 +-
TestTables/CMIP6_cf3hr_2.json | 2 +-
TestTables/CMIP6_chunking.json | 2 +-
TestTables/CMIP6_day.json | 4 +-
TestTables/CMIP6_fx.json | 16 +--
TestTables/CMIP6_grids.json | 12 +--
TestTables/python_test_table_A | 2 +-
configure | 18 ++--
configure.ac | 2 +-
include/cmor.h | 7 +-
recipes/cmor/meta.yaml | 11 +-
recipes/conda-envs/cmor-3.3.0.yml | 70 +++++++++++++
scripts/CMIP6_CV_cron_github.sh | 4 +-
scripts/createCMIP6CV.py | 5 +-
setup.py.in | 2 +-
70 files changed, 691 insertions(+), 714 deletions(-)
diff --git a/INSTALL b/INSTALL
index 706c025..ddab693 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,6 @@
INSTALLATION INSTRUCTIONS
-------------------------
-Climate Model Output Rewriter (CMOR) version 3.2.8 installation instructions.
+Climate Model Output Rewriter (CMOR) version 3.3.0 installation instructions.
DOWNLOAD
@@ -13,7 +13,7 @@ cd CMOR
INSTALLATION
------------
-CMOR 3.2.8 requires external packages that need to be installed first.
+CMOR 3.3.0 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/LibCV/PrePARE/PrePARE.py b/LibCV/PrePARE/PrePARE.py
index 496ac6c..d9e3928 100644
--- a/LibCV/PrePARE/PrePARE.py
+++ b/LibCV/PrePARE/PrePARE.py
@@ -16,13 +16,15 @@ Created on Fri Feb 19 11:33:52 2016
@author: Denis Nadeau LLNL
'''
-import cmip6_cv
-import cdms2
-import argparse
import sys
+# Make sure cdms2.__init__py is not loaded when importing Cdunif
+sys.path.insert(0,sys.prefix+"/lib/python2.7/site-packages/cdms2")
+import Cdunif
+import argparse
import os
import json
import numpy
+import cmip6_cv
class bcolors:
@@ -36,6 +38,26 @@ class bcolors:
UNDERLINE = '\033[4m'
# =========================
+# FILEAction()
+# =========================
+
+
+class FILEAction(argparse.Action):
+ '''
+ Check if argparse is JSON file
+ '''
+
+ def __call__(self, parser, namespace, values, option_string=None):
+ fn = values
+ if not os.path.isfile(fn):
+ raise argparse.ArgumentTypeError(
+ 'FILEAction:{0} is file not found'.format(fn))
+ f = open(fn)
+ lines = f.readlines()
+ f.close()
+ setattr(namespace, self.dest, lines)
+
+# =========================
# JSONAction()
# =========================
@@ -52,6 +74,7 @@ class JSONAction(argparse.Action):
'JSONAction:{0} is file not found'.format(fn))
f = open(fn)
lines = f.readlines()
+ f.close()
jsonobject = json.loads(" ".join(lines))
if not jsonobject:
raise argparse.ArgumentTypeError(
@@ -72,8 +95,9 @@ class CDMSAction(argparse.Action):
if not os.path.isfile(fn):
raise argparse.ArgumentTypeError(
'CDMSAction:{0} does not exist'.format(fn))
- f = cdms2.open(fn)
- setattr(namespace, self.dest, f)
+ f = Cdunif.CdunifFile(fn,"r")
+ f.close()
+ setattr(namespace, self.dest, fn)
# =========================
@@ -125,40 +149,6 @@ class checkCMIP6(object):
# Initilaze arrays
# -------------------------------------------------------------------
self.cmip6_table = args.cmip6_table
- self.infile = args.infile
- self.attributes = self.infile.listglobal()
- self.variables = self.infile.listvariable()
- if args.variable is not None:
- self.var = [args.variable]
- else:
- # -------------------------------------------------------------------
- # find variable that contains a "history" (should only be one)
- # -------------------------------------------------------------------
- self.var = [self.infile.variable_id]
-
- 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"
- print "! Please use the --variable option to specify your CMIP6 variable"
- print "! Check your file or use CMOR 3.x to achieve compliance for ESGF publication."
- print "!!!!!!!!!!!!!!!!!!!!!!!!!"
- print bcolors.ENDC
-
- raise KeyboardInterrupt
-
- try:
- self.keys = self.infile.listattribute(self.var[0])
- except BaseException:
- print bcolors.FAIL
- print "!!!!!!!!!!!!!!!!!!!!!!!!!"
- print "! Error: The variable " + self.var[0] + " could not be found"
- print "! Check your file variables "
- print "!!!!!!!!!!!!!!!!!!!!!!!!!"
- print bcolors.ENDC
-
- raise
-
# -------------------------------------------------------------------
# call setup() to clean all 'C' internal memory.
# -------------------------------------------------------------------
@@ -186,42 +176,7 @@ class checkCMIP6(object):
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()]
- member_id = ""
- if("sub_experiment_id" in self.dictGbl.keys() ):
- 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
- # -------------------------------------------------------------------
- self.dictVars = dict((y, x) for y, x in
- [(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 BaseException:
- self.calendar = "gregorian"
- self.timeunits = "days since ?"
# -------------------------------------------------------------------
# Load CMIP6 table into memory
# -------------------------------------------------------------------
@@ -234,7 +189,7 @@ class checkCMIP6(object):
cmip6_cv.set_cur_dataset_attribute(
attribute, self.dictGbl[attribute])
- def ControlVocab(self):
+ def ControlVocab(self,args):
'''
Check CMIP6 global attributes against Control Vocabulary file.
@@ -252,6 +207,76 @@ class checkCMIP6(object):
10. Validate sub_experiment_* atributes.
11. Validate that all *_index are integers.
'''
+ self.variable = args.variable
+ self.infile = args.infile
+ # -------------------------------------
+ # Create alist of all Global Attributes
+ # -------------------------------------
+ self.dictGbl = {key: self.infile.__dict__[key] for key in self.infile.__dict__.keys()}
+ self.attributes = self.infile.__dict__.keys()
+ self.variables = self.infile.variables.keys()
+ ierr = [
+ cmip6_cv.set_cur_dataset_attribute(
+ key,
+ value) for key,
+ value in self.dictGbl.iteritems()]
+ member_id = ""
+ if("sub_experiment_id" in self.dictGbl.keys() ):
+ 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')
+ if self.variable is not None:
+ self.var = [self.variable]
+ else:
+ # -------------------------------------------------------------------
+ # find variable that contains a "history" (should only be one)
+ # -------------------------------------------------------------------
+ self.var = [self.infile.variable_id]
+
+ 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"
+ print "! Please use the --variable option to specify your CMIP6 variable"
+ print "! Check your file or use CMOR 3.x to achieve compliance for ESGF publication."
+ print "!!!!!!!!!!!!!!!!!!!!!!!!!"
+ print bcolors.ENDC
+
+ raise KeyboardInterrupt
+
+ try:
+ self.keys = self.infile.variables[self.var[0]].__dict__.keys()
+ except BaseException:
+ print bcolors.FAIL
+ print "!!!!!!!!!!!!!!!!!!!!!!!!!"
+ print "! Error: The variable " + self.var[0] + " could not be found"
+ print "! Check your file variables "
+ print "!!!!!!!!!!!!!!!!!!!!!!!!!"
+ print bcolors.ENDC
+
+ raise
+
+ # -------------------------------------------------------------------
+ # Create a dictionnary of attributes for var
+ # -------------------------------------------------------------------
+ self.dictVars = dict((y, x) for y, x in
+ [(key, value) for key in self.keys
+ if self.infile.variables[self.var[0]].__dict__[key] is not None
+ for value in [self.infile.variables[self.var[0]].__dict__[key]]])
+ try:
+ self.calendar = self.infile.variables['time'].calendar
+ self.timeunits = self.infile.variables['time'].units
+ except BaseException:
+ self.calendar = "gregorian"
+ self.timeunits = "days since ?"
cmip6_cv.check_requiredattributes(self.table_id)
cmip6_cv.check_institution(self.table_id)
cmip6_cv.check_sourceID(self.table_id)
@@ -262,19 +287,19 @@ class checkCMIP6(object):
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]
+ startimebnds = self.infile.variables['time_bnds'][0][0]
+ endtimebnds = self.infile.variables['time_bnds'][-1][1]
except BaseException:
startimebnds = 0
endtimebnds = 0
try:
- startime = self.infile['time'][0]
- endtime = self.infile['time'][-1]
+ startime = self.infile.variables['time'][0]
+ endtime = self.infile.variables['time'][-1]
except BaseException:
startime = 0
endtime = 0
- varunits = self.infile[self.var[0]].units
- varmissing = self.infile[self.var[0]]._FillValue[0]
+ varunits = self.infile.variables[self.var[0]].units
+ varmissing = self.infile.variables[self.var[0]]._FillValue[0]
varid = cmip6_cv.setup_variable(self.var[0], varunits, varmissing, startime, endtime,
startimebnds, endtimebnds)
if(varid == -1):
@@ -286,7 +311,8 @@ class checkCMIP6(object):
cmip6_cv.set_CV_Error()
return
- fn = os.path.basename(self.infile.id)
+# fn = os.path.basename(self.infile.id)
+ fn = os.path.basename(str(self.infile).split('\'')[1])
cmip6_cv.check_filename(
self.table_id,
varid,
@@ -325,6 +351,8 @@ class checkCMIP6(object):
prepLIST = cmip6_cv.list_variable_attributes(varid)
for key in prepLIST:
+ if(key == "long_name"):
+ continue
if(key == "comment"):
continue
# Is this attritue in file?
@@ -380,6 +408,8 @@ class checkCMIP6(object):
if(cmip6_cv.get_CV_Error()):
raise KeyboardInterrupt
+
+ pass
print bcolors.OKGREEN
print "*************************************************************************************"
print "* This file is compliant with the CMIP6 specification and can be published in ESGF. *"
@@ -402,7 +432,7 @@ def main():
help='CMIP6 CMOR table (JSON file) ex: Tables/CMIP6_Amon.json',
action=JSONAction)
- parser.add_argument('infile',
+ parser.add_argument('infile',
help='Input CMIP6 netCDF file to Validate ex: clisccp_cfMon_DcppC22_NICAM_gn_200001-200001.nc',
action=CDMSAction)
@@ -420,9 +450,13 @@ def main():
except SystemExit:
return 1
+ process = checkCMIP6(args)
try:
- process = checkCMIP6(args)
- process.ControlVocab()
+ print "processing: ", args.infile
+ args.infile = Cdunif.CdunifFile(args.infile,"r")
+ process.ControlVocab(args)
+ args.infile.close()
+
except KeyboardInterrupt:
print bcolors.FAIL
print "!!!!!!!!!!!!!!!!!!!!!!!!!"
@@ -430,8 +464,7 @@ def main():
print "! Check your file or use CMOR 3.x to achieve compliance for ESGF publication."
print "!!!!!!!!!!!!!!!!!!!!!!!!!"
print bcolors.ENDC
- sys.exit(-1)
-# process.checkActivities()
+# sys.exit(-1)
return(0)
diff --git a/LibCV/pywrapper.py b/LibCV/pywrapper.py
index 576a851..e09e58a 100644
--- a/LibCV/pywrapper.py
+++ b/LibCV/pywrapper.py
@@ -24,17 +24,17 @@ try:
except BaseException:
has_cdtime = False
-try:
- import cdms2
- has_cdms2 = True
-except BaseException:
- has_cdms2 = False
-
-try:
- import MV2
- has_MV2 = True
-except BaseException:
- has_MV2 = False
+#try:
+ #import cdms2
+ #has_cdms2 = True
+#except BaseException:
+ #has_cdms2 = False
+
+#try:
+ #import MV2
+ #has_MV2 = True
+#except BaseException:
+ #has_MV2 = False
try:
import numpy.oldnumeric.ma.MaskedArray
diff --git a/README.md b/README.md
index 53fc4ad..61de90c 100644
--- a/README.md
+++ b/README.md
@@ -3,8 +3,8 @@ Climate Model Output Rewriter
CMOR 3.2 documentation can be found here: http://cmor.llnl.gov
-[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.893083.svg)](https://doi.org/10.5281/zenodo.893083)
-[![stable version](https://img.shields.io/badge/stable%20version-3.2.8-brightgreen.svg)](https://github.com/PCMDI/cmor/releases/tag/3.2.8)
+[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1115862.svg)](https://doi.org/10.5281/zenodo.1115862)
+[![stable version](https://img.shields.io/badge/stable%20version-3.3.0-brightgreen.svg)](https://github.com/PCMDI/cmor/releases/tag/cmor-3.3.0)
![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 1fd017a..63249db 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -1,3 +1,4 @@
+2018-12-12 : Release 3.3.0
2018-11-08 : Release 3.2.8
2018-09-14 : Release 3.2.7
2018-08-31 : Release 3.2.6
diff --git a/Src/cmor.c b/Src/cmor.c
index 1e50881..00aa2a0 100644
--- a/Src/cmor.c
+++ b/Src/cmor.c
@@ -6094,6 +6094,9 @@ int cmor_close_variable(int var_id, char *file_name, int *preserve)
cmor_vars[var_id].associated_ids[i] = -1;
cmor_vars[var_id].nc_var_id = -999;
}
+ if (cmor_vars[var_id].values != NULL) {
+ free(cmor_vars[var_id].values);
+ }
for (i = 0; i < cmor_vars[var_id].nattributes; i++) {
if (strcmp(cmor_vars[var_id].attributes[i], "cell_methods")
== 0) {
@@ -6145,6 +6148,8 @@ int cmor_close(void)
"but never initialized", cmor_vars[i].id, i,
cmor_tables[cmor_vars[i].ref_table_id].szTable_id);
cmor_handle_error(msg, CMOR_WARNING);
+ } else if (cmor_vars[i].zaxis != -1) {
+ cmor_reset_variable(i);
}
}
for (i = 0; i < CMOR_MAX_TABLES; i++) {
diff --git a/Src/cmor_CV.c b/Src/cmor_CV.c
index 989cf04..9468062 100644
--- a/Src/cmor_CV.c
+++ b/Src/cmor_CV.c
@@ -17,7 +17,6 @@ extern void cdCompAdd(cdCompTime comptime,
double value, cdCalenType calendar, cdCompTime * result);
extern void cdCompAddMixed(cdCompTime ct, double value, cdCompTime * result);
-
/************************************************************************/
/* cmor_CV_set_att() */
/************************************************************************/
@@ -73,8 +72,13 @@ void cmor_CV_set_att(cmor_CV_def_t * CV, char *szKey, json_object * joValue)
CV->type = CV_object;
} else if (json_object_is_type(joValue, json_type_array)) {
+ int i;
pArray = json_object_get_array(joValue);
length = array_list_length(pArray);
+ CV->aszValue = (char **) malloc(length * sizeof(char**));
+ for(i=0; i < length; i++) {
+ CV->aszValue[i] = (char *) malloc(sizeof(char) * CMOR_MAX_STRING);
+ }
json_object *joItem;
CV->anElements = length;
for (k = 0; k < length; k++) {
@@ -95,7 +99,6 @@ void cmor_CV_set_att(cmor_CV_def_t * CV, char *szKey, json_object * joValue)
/************************************************************************/
void cmor_CV_init(cmor_CV_def_t * CV, int table_id)
{
- int i;
cmor_is_setup();
cmor_add_traceback("_init_CV_def");
@@ -107,9 +110,7 @@ void cmor_CV_init(cmor_CV_def_t * CV, int table_id)
CV->szValue[0] = '\0';
CV->dValue = -9999.9;
CV->oValue = NULL;
- for (i = 0; i < CMOR_MAX_JSON_ARRAY; i++) {
- CV->aszValue[i][0] = '\0';
- }
+ CV->aszValue = NULL;
CV->anElements = -1;
cmor_pop_traceback();
@@ -321,6 +322,18 @@ char *cmor_CV_get_value(cmor_CV_def_t * CV, char *key)
void cmor_CV_free(cmor_CV_def_t * CV)
{
int k;
+ int i;
+ int length;
+/* -------------------------------------------------------------------- */
+/* Free allocated double string array */
+/* -------------------------------------------------------------------- */
+ length = CV->anElements;
+ if(length != 0) {
+ for(i=0; i < length; i++) {
+ free(CV->aszValue[i]);
+ }
+ free(CV->aszValue);
+ }
/* -------------------------------------------------------------------- */
/* Recursively go down the tree and free branch */
/* -------------------------------------------------------------------- */
@@ -328,12 +341,9 @@ void cmor_CV_free(cmor_CV_def_t * CV)
for (k = 0; k < CV->nbObjects; k++) {
cmor_CV_free(&CV->oValue[k]);
}
- }
- if (CV->oValue != NULL) {
free(CV->oValue);
CV->oValue = NULL;
}
-
}
/************************************************************************/
@@ -1480,13 +1490,12 @@ int cmor_CV_checkFilename(cmor_CV_def_t * CV, int var_id,
char msg[CMOR_MAX_STRING];
cdCompTime comptime;
int i, j, n;
- int ierr;
int timeDim;
cdCompTime starttime, endtime;
int axis_id;
outname[0] = '\0';
- ierr = cmor_CreateFromTemplate(0, cmor_current_dataset.file_template,
+ cmor_CreateFromTemplate(0, cmor_current_dataset.file_template,
outname, "_");
cmor_get_cur_dataset_attribute(CV_INPUTFILENAME, CV_Filename);
timeDim = -1;
@@ -1885,11 +1894,10 @@ int cmor_CV_ValidateAttribute(cmor_CV_def_t * CV, char *szKey)
char szValue[CMOR_MAX_STRING];
char msg[CMOR_MAX_STRING];
char CV_Filename[CMOR_MAX_STRING];
- char szValids[CMOR_MAX_STRING * 2];
- char szOutput[CMOR_MAX_STRING * 2];
+ char szValids[CMOR_MAX_STRING];
+ char szOutput[CMOR_MAX_STRING];
char szTmp[CMOR_MAX_STRING];
int i;
- int j;
int nObjects;
regex_t regex;
int reti;
@@ -1970,7 +1978,7 @@ int cmor_CV_ValidateAttribute(cmor_CV_def_t * CV, char *szKey)
return (0);
}
nObjects = list_CV->nbObjects;
- for (j = 0; i < nObjects; i++) {
+ for (i = 0; i < nObjects; i++) {
CV_key = &list_CV->oValue[i];
if (CV_key->szValue[0] != '\0') {
cmor_set_cur_dataset_attribute_internal(CV_key->key,
@@ -1985,10 +1993,10 @@ int cmor_CV_ValidateAttribute(cmor_CV_def_t * CV, char *szKey)
if (i == (attr_CV->anElements)) {
for (i = 0; i < attr_CV->anElements; i++) {
strcat(szValids, "\"");
- strncat(szValids, attr_CV->aszValue[i], CMOR_MAX_STRING);
+ strncpy(szOutput, attr_CV->aszValue[i], CMOR_MAX_STRING);
+ strcat(szValids, szOutput);
strcat(szValids, "\" ");
}
- snprintf(szOutput, 132, "%s ...", szValids);
snprintf(msg, CMOR_MAX_STRING,
"The attribute \"%s\" could not be validated. \n! "
@@ -1997,7 +2005,7 @@ int cmor_CV_ValidateAttribute(cmor_CV_def_t * CV, char *szKey)
"Valid values must match the regular expression:"
"\n! \t[%s] \n! \n! "
"Check your Control Vocabulary file \"%s\".\n! ",
- szKey, szValue, szOutput, CV_Filename);
+ szKey, szValue, szValids, CV_Filename);
cmor_handle_error(msg, CMOR_NORMAL);
cmor_pop_traceback();
@@ -2325,6 +2333,23 @@ int cmor_CV_variable(int *var_id, char *name, char *units, float *missing,
refvar = cmor_tables[CMOR_TABLE].vars[iref];
for (i = 0; i < CMOR_MAX_VARIABLES; i++) {
+ if(cmor_vars[i].ref_table_id == CMOR_TABLE) {
+ if (refvar.out_name[0] == '\0') {
+ if(strncmp(cmor_vars[i].id, name, CMOR_MAX_STRING) == 0) {
+ *var_id = i;
+ return (0);
+ }
+ } else {
+ if(strncmp(cmor_vars[i].id, refvar.out_name, CMOR_MAX_STRING) == 0 ) {
+ *var_id = i;
+ return (0);
+ }
+ }
+ }
+ }
+
+
+ for (i = 0; i < CMOR_MAX_VARIABLES; i++) {
if (cmor_vars[i].self == -1) {
vrid = i;
break;
diff --git a/Src/cmor_variables.c b/Src/cmor_variables.c
index d141031..e678141 100644
--- a/Src/cmor_variables.c
+++ b/Src/cmor_variables.c
@@ -2991,7 +2991,7 @@ int cmor_write_var_to_file(int ncid, cmor_var_t * avar, void *data,
free(tmp_vals);
} else {
/* -------------------------------------------------------------------- */
-/* checks wether you need bounds or not */
+/* checks if you need bounds or not */
/* -------------------------------------------------------------------- */
if (cmor_tables[cmor_axes[avar->axes_ids[0]].ref_table_id].axes
diff --git a/TestTables/CMIP6_3hr.json b/TestTables/CMIP6_3hr.json
index cbdab92..e80e8c8 100644
--- a/TestTables/CMIP6_3hr.json
+++ b/TestTables/CMIP6_3hr.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table 3hr",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.125000",
diff --git a/TestTables/CMIP6_6hrLev.json b/TestTables/CMIP6_6hrLev.json
index 1054cc0..f8d9ca0 100644
--- a/TestTables/CMIP6_6hrLev.json
+++ b/TestTables/CMIP6_6hrLev.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table 6hrLev",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.250000",
diff --git a/TestTables/CMIP6_6hrPlev.json b/TestTables/CMIP6_6hrPlev.json
index 954af54..0d797df 100644
--- a/TestTables/CMIP6_6hrPlev.json
+++ b/TestTables/CMIP6_6hrPlev.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table 6hrPlev",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.250000",
@@ -193,42 +193,6 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "ua200": {
- "frequency": "6hr",
- "modeling_realm": "atmos",
- "standard_name": "eastward_wind",
- "units": "m s-1",
- "cell_methods": "area: time: mean",
- "cell_measures": "area: areacella",
- "long_name": "Eastward Wind at 200hPa",
- "comment": "Zonal wind (positive eastwards) at 200hPa",
- "dimensions": "longitude latitude time p200",
- "out_name": "ua200",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
- "ua850": {
- "frequency": "6hr",
- "modeling_realm": "atmos",
- "standard_name": "eastward_wind",
- "units": "m s-1",
- "cell_methods": "area: time: mean",
- "cell_measures": "area: areacella",
- "long_name": "Eastward Wind at 850 hPa",
- "comment": "Zonal wind on the 850 hPa surface",
- "dimensions": "longitude latitude time p850",
- "out_name": "ua850",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
"uas": {
"frequency": "6hr",
"modeling_realm": "atmos",
@@ -265,42 +229,6 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "va200": {
- "frequency": "6hr",
- "modeling_realm": "atmos",
- "standard_name": "northward_wind",
- "units": "m s-1",
- "cell_methods": "area: time: mean",
- "cell_measures": "area: areacella",
- "long_name": "Northward Wind",
- "comment": "Northward component of the wind",
- "dimensions": "longitude latitude time p200",
- "out_name": "va200",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
- "va850": {
- "frequency": "6hr",
- "modeling_realm": "atmos",
- "standard_name": "northward_wind",
- "units": "m s-1",
- "cell_methods": "area: time: mean",
- "cell_measures": "area: areacella",
- "long_name": "Northward Wind",
- "comment": "Northward component of the wind at 850hPa",
- "dimensions": "longitude latitude time p850",
- "out_name": "va850",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
"vas": {
"frequency": "6hr",
"modeling_realm": "atmos",
diff --git a/TestTables/CMIP6_6hrPlevPt.json b/TestTables/CMIP6_6hrPlevPt.json
index 536fdbb..4e5358f 100644
--- a/TestTables/CMIP6_6hrPlevPt.json
+++ b/TestTables/CMIP6_6hrPlevPt.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table 6hrPlevPt",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.250000",
diff --git a/TestTables/CMIP6_AERday.json b/TestTables/CMIP6_AERday.json
index 66b7038..9482d5e 100644
--- a/TestTables/CMIP6_AERday.json
+++ b/TestTables/CMIP6_AERday.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table AERday",
"realm": "aerosol",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "1.0",
diff --git a/TestTables/CMIP6_AERfx.json b/TestTables/CMIP6_AERfx.json
index 26122cc..f9dc865 100644
--- a/TestTables/CMIP6_AERfx.json
+++ b/TestTables/CMIP6_AERfx.json
@@ -10,7 +10,7 @@
"approx_interval": "",
"generic_levels": "",
"mip_era": "CMIP6",
- "Conventions": "CF-1.6 CMIP-6.0"
+ "Conventions": "CF-1.6 CMIP-6.2"
},
"variable_entry": {
"areacella": {
diff --git a/TestTables/CMIP6_AERhr.json b/TestTables/CMIP6_AERhr.json
index 828c9ae..7d8b38a 100644
--- a/TestTables/CMIP6_AERhr.json
+++ b/TestTables/CMIP6_AERhr.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table AERhr",
"realm": "aerosol",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "1.0",
diff --git a/TestTables/CMIP6_AERmon.json b/TestTables/CMIP6_AERmon.json
index ea148c9..8f61323 100644
--- a/TestTables/CMIP6_AERmon.json
+++ b/TestTables/CMIP6_AERmon.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table AERmon",
"realm": "aerosol",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00000",
diff --git a/TestTables/CMIP6_AERmonZ.json b/TestTables/CMIP6_AERmonZ.json
index ce6e286..6c42e31 100644
--- a/TestTables/CMIP6_AERmonZ.json
+++ b/TestTables/CMIP6_AERmonZ.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table AERmonZ",
"realm": "aerosol",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00000",
@@ -19,7 +19,7 @@
"standard_name": "mole_fraction_of_inorganic_bromine_in_air",
"units": "mol mol-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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 organic source gases (halons, methyl bromide, VSLS), and natural inorganic bromine sources (e.g., volcanoes, sea salt, [...]
"dimensions": "latitude plev39 time",
@@ -37,7 +37,7 @@
"standard_name": "mole_fraction_of_methane_in_air",
"units": "mol mol-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "CH4 volume mixing ratio",
"comment": "",
"dimensions": "latitude plev39 time",
@@ -55,7 +55,7 @@
"standard_name": "mole_fraction_of_inorganic_chlorine_in_air",
"units": "mol mol-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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",
@@ -73,7 +73,7 @@
"standard_name": "mass_fraction_of_water_in_air",
"units": "1.0",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Mass Fraction of Water",
"comment": "includes all phases of water",
"dimensions": "latitude plev39 time",
@@ -91,7 +91,7 @@
"standard_name": "mole_fraction_of_hydrogen_chloride_in_air",
"units": "mol mol-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "HCl volume mixing ratio",
"comment": "",
"dimensions": "latitude plev39 time",
@@ -109,7 +109,7 @@
"standard_name": "mole_fraction_of_nitric_acid_in_air",
"units": "mol mol-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "HNO3 volume mixing ratio",
"comment": "",
"dimensions": "latitude plev39 time",
@@ -127,7 +127,7 @@
"standard_name": "mole_fraction_of_hydroperoxyl_radical_in_air",
"units": "mol mol-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "HO2 volume mixing ratio",
"comment": "",
"dimensions": "latitude plev39 time",
@@ -145,7 +145,7 @@
"standard_name": "age_of_stratospheric_air",
"units": "yr",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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",
@@ -163,7 +163,7 @@
"standard_name": "mole_fraction_of_nitrous_oxide_in_air",
"units": "mol mol-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "N2O volume mixing ratio",
"comment": "",
"dimensions": "latitude plev39 time",
@@ -181,7 +181,7 @@
"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",
+ "cell_measures": "",
"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",
@@ -199,7 +199,7 @@
"standard_name": "mole_fraction_of_ozone_in_air",
"units": "mol mol-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Ozone volume mixing ratio",
"comment": "",
"dimensions": "latitude plev39 time",
@@ -217,7 +217,7 @@
"standard_name": "mole_fraction_of_hydroxyl_radical_in_air",
"units": "mol mol-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "OH volume mixing ratio",
"comment": "",
"dimensions": "latitude plev39 time",
@@ -235,7 +235,7 @@
"standard_name": "air_temperature",
"units": "K",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Air Temperature",
"comment": "Air Temperature",
"dimensions": "latitude plev39 time",
@@ -253,7 +253,7 @@
"standard_name": "eastward_wind",
"units": "m s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Eastward Wind",
"comment": "",
"dimensions": "latitude plev39 time",
@@ -271,7 +271,7 @@
"standard_name": "northward_wind",
"units": "m s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Northward Wind",
"comment": "",
"dimensions": "latitude plev39 time",
@@ -289,7 +289,7 @@
"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",
+ "cell_measures": "",
"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",
@@ -307,7 +307,7 @@
"standard_name": "geopotential_height",
"units": "m",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Geopotential Height",
"comment": "",
"dimensions": "latitude plev39 time",
diff --git a/TestTables/CMIP6_Amon.json b/TestTables/CMIP6_Amon.json
index 47c6570..b3ff8d3 100644
--- a/TestTables/CMIP6_Amon.json
+++ b/TestTables/CMIP6_Amon.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Amon",
"realm": "atmos atmosChem",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00000",
diff --git a/TestTables/CMIP6_Amon_json_hfls b/TestTables/CMIP6_Amon_json_hfls
index da660fd..0c478ab 100644
--- a/TestTables/CMIP6_Amon_json_hfls
+++ b/TestTables/CMIP6_Amon_json_hfls
@@ -11,7 +11,7 @@
"approx_interval": "30.00000",
"generic_levels": "alevel alevhalf",
"mip_era": "CMIP6",
- "Conventions": "CF-1.7 CMIP-6.0"
+ "Conventions": "CF-1.7 CMIP-6.2"
},
"axis_entry": {
"plevs": {
diff --git a/TestTables/CMIP6_CF3hr.json b/TestTables/CMIP6_CF3hr.json
index 783f4cd..60be50d 100644
--- a/TestTables/CMIP6_CF3hr.json
+++ b/TestTables/CMIP6_CF3hr.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table CF3hr",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.125000",
diff --git a/TestTables/CMIP6_CFday.json b/TestTables/CMIP6_CFday.json
index c4aecf8..9f4fa7f 100644
--- a/TestTables/CMIP6_CFday.json
+++ b/TestTables/CMIP6_CFday.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table CFday",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "1.00000",
diff --git a/TestTables/CMIP6_CFmon.json b/TestTables/CMIP6_CFmon.json
index 102daa4..8d30573 100644
--- a/TestTables/CMIP6_CFmon.json
+++ b/TestTables/CMIP6_CFmon.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table CFmon",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00000",
diff --git a/TestTables/CMIP6_CFsubhr.json b/TestTables/CMIP6_CFsubhr.json
index a92b20f..6bd9a9f 100644
--- a/TestTables/CMIP6_CFsubhr.json
+++ b/TestTables/CMIP6_CFsubhr.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table CFsubhr",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.017361",
diff --git a/TestTables/CMIP6_CFsubhrOff.json b/TestTables/CMIP6_CFsubhrOff.json
index 92ad59e..f265d85 100644
--- a/TestTables/CMIP6_CFsubhrOff.json
+++ b/TestTables/CMIP6_CFsubhrOff.json
@@ -11,7 +11,7 @@
"approx_interval": "",
"generic_levels": "",
"mip_era": "CMIP6",
- "Conventions": "CF-1.7 CMIP-6.0"
+ "Conventions": "CF-1.7 CMIP-6.2"
},
"variable_entry": {
"cfadDbze94": {
diff --git a/TestTables/CMIP6_CV.json b/TestTables/CMIP6_CV.json
index f40bed6..117e4d8 100644
--- a/TestTables/CMIP6_CV.json
+++ b/TestTables/CMIP6_CV.json
@@ -34,11 +34,11 @@
],
"version_metadata":{
"author":"Paul J. Durack <durack1 at llnl.gov>",
- "creation_date":"Wed Nov 8 10:22:13 2017 -0800",
+ "creation_date":"Thu Dec 7 10:14:39 2017 -0800",
"institution_id":"PCMDI",
- "latest_tag_point":"3.2.7 (93; g38a80ac)",
- "note":"Correct model components for various LS3MIP/LUMIP experiments",
- "previous_commit":"9849ad4dfe7a943e440e4a73a0821a8bf0a95bdd"
+ "latest_tag_point":"3.2.8 (16; gb51e037)",
+ "note":"Revise THU source_id CIESM",
+ "previous_commit":"3c9ff0ab226f35d54adc146b6349fc2f7a3b542a"
},
"activity_id":{
"AerChemMIP":"Aerosols and Chemistry Model Intercomparison Project",
@@ -271,6 +271,7 @@
"CMIP",
"CORDEX",
"GMMIP",
+ "HighResMIP",
"OMIP",
"SIMIP",
"ScenarioMIP"
@@ -629,6 +630,45 @@
"source_id":"EMAC-2-53-Vol",
"source":"EMAC-2-53-Vol (2017): \naerosol: gmxe 2.2.x\natmos: ECHAM5.3.02 (modified; spectral T42; 128 x 64 longitude/latitude; 47 levels; top level 0.01 hPa)\natmosChem: MECCA 3.8.x\nland: same as Atmosphere\nlandIce: none\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)\nocnBgchem: none\nseaIce: thermodynamic (Semtner zero-layer) dynamic (Hibler 79) sea ice model"
},
+ "FGOALS-f3-H":{
+ "activity_participation":[
+ "CMIP"
+ ],
+ "cohort":[
+ "Registered"
+ ],
+ "institution_id":[
+ "CAS"
+ ],
+ "source_id":"FGOALS-f3-H",
+ "source":"FGOALS-f3-H (2017): \naerosol: none\natmos: FAMIL2.2 (Cubed-sphere, c384; 1440 x 720 longitude/latitude; 32 levels; top level 2.16 hPa)\natmosChem: none\nland: CLM4.0\nlandIce: none\nocean: LICOM3.0 (LICOM3.0, tripolar primarily 0.1deg; 3600 x 2302 longitude/latitude; 55 levels; top grid cell 0-5 m)\nocnBgchem: none\nseaIce: CICE4.0"
+ },
+ "FGOALS-f3-L":{
+ "activity_participation":[
+ "CMIP"
+ ],
+ "cohort":[
+ "Registered"
+ ],
+ "institution_id":[
+ "CAS"
+ ],
+ "source_id":"FGOALS-f3-L",
+ "source":"FGOALS-f3-L (2017): \naerosol: none\natmos: FAMIL2.2 (Cubed-sphere, c96; 360 x 180 longitude/latitude; 32 levels; top level 2.16 hPa)\natmosChem: none\nland: CLM4.0\nlandIce: none\nocean: LICOM3.0 (LICOM3.0, tripolar primarily 1deg; 360 x 218 longitude/latitude; 30 levels; top grid cell 0-10 m)\nocnBgchem: none\nseaIce: CICE4.0"
+ },
+ "FGOALS-g3":{
+ "activity_participation":[
+ "CMIP"
+ ],
+ "cohort":[
+ "Registered"
+ ],
+ "institution_id":[
+ "CAS"
+ ],
+ "source_id":"FGOALS-g3",
+ "source":"FGOALS-g3 (2017): \naerosol: none\natmos: GAMIL2 (180 x 90 longitude/latitude; 26 levels; top level 2.19hPa)\natmosChem: none\nland: CLM4.0\nlandIce: none\nocean: LICOM3.0 (LICOM3.0, tripolar primarily 1deg; 360 x 218 longitude/latitude; 30 levels; top grid cell 0-10 m)\nocnBgchem: none\nseaIce: CICE4.0"
+ },
"GFDL-AM4":{
"activity_participation":[
"CMIP"
@@ -1462,7 +1502,7 @@
"fx"
],
"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).*\\. The data prod [...]
+ "^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 [...]
],
"mip_era":[
"CMIP6"
@@ -7582,7 +7622,7 @@
"^[[:digit:]]\\{2,2\\}\\.[[:digit:]]\\{2,2\\}\\.[[:digit:]]\\{2,2\\}$"
],
"Conventions":[
- "^CF-1.7 CMIP-6.2\\( UGRID-1.0\\)\\{0,\\}$"
+ "^CF-1.7 CMIP-6.[0-2]\\( UGRID-1.0\\)\\{0,\\}$"
],
"forcing_index":[
"^\\[\\{0,\\}[[:digit:]]\\{1,\\}\\]\\{0,\\}$"
@@ -7594,4 +7634,4 @@
"^\\[\\{0,\\}[[:digit:]]\\{1,\\}\\]\\{0,\\}$"
]
}
-}
\ No newline at end of file
+}
diff --git a/TestTables/CMIP6_E1hr.json b/TestTables/CMIP6_E1hr.json
index 382ca4e..98eabbc 100644
--- a/TestTables/CMIP6_E1hr.json
+++ b/TestTables/CMIP6_E1hr.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table E1hr",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.017361",
diff --git a/TestTables/CMIP6_E1hrClimMon.json b/TestTables/CMIP6_E1hrClimMon.json
index 1a65554..6354f5a 100644
--- a/TestTables/CMIP6_E1hrClimMon.json
+++ b/TestTables/CMIP6_E1hrClimMon.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table E1hrClimMon",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.017361",
diff --git a/TestTables/CMIP6_E3hr.json b/TestTables/CMIP6_E3hr.json
index f915152..b71d96d 100644
--- a/TestTables/CMIP6_E3hr.json
+++ b/TestTables/CMIP6_E3hr.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table E3hr",
"realm": "land",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.125000",
diff --git a/TestTables/CMIP6_E3hrPt.json b/TestTables/CMIP6_E3hrPt.json
index a916963..6e726b0 100644
--- a/TestTables/CMIP6_E3hrPt.json
+++ b/TestTables/CMIP6_E3hrPt.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table E3hrPt",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.125000",
@@ -841,24 +841,6 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "ua850": {
- "frequency": "3hr",
- "modeling_realm": "atmos",
- "standard_name": "eastward_wind",
- "units": "m s-1",
- "cell_methods": "area: mean time: point",
- "cell_measures": "area: areacella",
- "long_name": "Eastward Wind",
- "comment": "",
- "dimensions": "longitude latitude time1 p850",
- "out_name": "ua",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
"va7h": {
"frequency": "3hrPt",
"modeling_realm": "atmos",
@@ -877,24 +859,6 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "va850": {
- "frequency": "3hr",
- "modeling_realm": "atmos",
- "standard_name": "northward_wind",
- "units": "m s-1",
- "cell_methods": "area: mean time: point",
- "cell_measures": "area: areacella",
- "long_name": "Northward Wind",
- "comment": "",
- "dimensions": "longitude latitude time1 p850",
- "out_name": "va",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
"wap7h": {
"frequency": "3hrPt",
"modeling_realm": "atmos",
diff --git a/TestTables/CMIP6_E6hrZ.json b/TestTables/CMIP6_E6hrZ.json
index 3fa97f0..012431e 100644
--- a/TestTables/CMIP6_E6hrZ.json
+++ b/TestTables/CMIP6_E6hrZ.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table E6hrZ",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.250000",
@@ -19,7 +19,7 @@
"standard_name": "surface_air_pressure",
"units": "Pa",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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",
"dimensions": "latitude time",
@@ -37,7 +37,7 @@
"standard_name": "longwave_heating_rate_due_to_volcanic_aerosols",
"units": "K s-1",
"cell_methods": "longitude: mean time: point",
- "cell_measures": "area: areacella",
+ "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",
@@ -55,7 +55,7 @@
"standard_name": "shortwave_heating_rate_due_to_volcanic_aerosols",
"units": "K s-1",
"cell_methods": "longitude: mean time: point",
- "cell_measures": "area: areacella",
+ "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",
diff --git a/TestTables/CMIP6_Eday.json b/TestTables/CMIP6_Eday.json
index 5d169c4..34a13cf 100644
--- a/TestTables/CMIP6_Eday.json
+++ b/TestTables/CMIP6_Eday.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Eday",
"realm": "land",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "1.00000",
@@ -289,7 +289,7 @@
"standard_name": "change_over_time_in_groundwater",
"units": "kg m-2",
"cell_methods": "area: mean where land time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacellr",
"long_name": "Change in Groundwater",
"comment": "",
"dimensions": "longitude latitude time",
@@ -325,7 +325,7 @@
"standard_name": "change_over_time_in_river_water_amount",
"units": "kg m-2",
"cell_methods": "area: mean where land time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacellr",
"long_name": "Change in River Storage",
"comment": "",
"dimensions": "longitude latitude time",
@@ -1129,6 +1129,24 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
+ "mrtws": {
+ "frequency": "day",
+ "modeling_realm": "land",
+ "standard_name": "total_water_storage",
+ "units": "kg m-2",
+ "cell_methods": "area: mean where land time: mean",
+ "cell_measures": "area: areacella",
+ "long_name": "Terrestrial Water Storage",
+ "comment": "Mass of water in all phases and in all components including soil, canopy, vegetation, ice sheets, rivers and ground water.",
+ "dimensions": "longitude latitude time",
+ "out_name": "mrtws",
+ "type": "",
+ "positive": "",
+ "valid_min": "",
+ "valid_max": "",
+ "ok_min_mean_abs": "",
+ "ok_max_mean_abs": ""
+ },
"nudgincsm": {
"frequency": "day",
"modeling_realm": "land",
@@ -1369,7 +1387,7 @@
"standard_name": "water_flux_from_soil_layer_to_groundwater",
"units": "kg m-2 s-1",
"cell_methods": "area: mean where land time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacellr",
"long_name": "Groundwater recharge from soil layer",
"comment": "",
"dimensions": "longitude latitude time",
@@ -1423,7 +1441,7 @@
"standard_name": "water_flux_from_upstream",
"units": "m3 s-1",
"cell_methods": "area: mean where land time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacellr",
"long_name": "River Inflow",
"comment": "Inflow of River Water into Cell",
"dimensions": "longitude latitude time",
@@ -1441,7 +1459,7 @@
"standard_name": "water_flux_to_downstream",
"units": "m3 s-1",
"cell_methods": "area: mean where land time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacellr",
"long_name": "River Discharge",
"comment": "Outflow of River Water from Cell",
"dimensions": "longitude latitude time",
@@ -2101,24 +2119,6 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "tws": {
- "frequency": "day",
- "modeling_realm": "land",
- "standard_name": "canopy_and_surface_and_subsurface_water_amount",
- "units": "kg m-2",
- "cell_methods": "area: mean where land time: mean",
- "cell_measures": "area: areacella",
- "long_name": "Terrestrial Water Storage",
- "comment": "",
- "dimensions": "longitude latitude time",
- "out_name": "tws",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
"ua": {
"frequency": "day",
"modeling_realm": "atmos",
@@ -2137,42 +2137,6 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "ua200": {
- "frequency": "day",
- "modeling_realm": "atmos",
- "standard_name": "eastward_wind",
- "units": "m s-1",
- "cell_methods": "area: time: mean",
- "cell_measures": "area: areacella",
- "long_name": "Eastward Wind at 200hPa",
- "comment": "Zonal wind (positive eastwards) at 200hPa",
- "dimensions": "longitude latitude time p200",
- "out_name": "ua200",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
- "ua850": {
- "frequency": "day",
- "modeling_realm": "atmos",
- "standard_name": "eastward_wind",
- "units": "m s-1",
- "cell_methods": "area: time: mean",
- "cell_measures": "area: areacella",
- "long_name": "Eastward Wind at 850 hPa",
- "comment": "Zonal wind on the 850 hPa surface",
- "dimensions": "longitude latitude time p850",
- "out_name": "ua850",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
"va": {
"frequency": "day",
"modeling_realm": "atmos",
@@ -2191,42 +2155,6 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "va200": {
- "frequency": "day",
- "modeling_realm": "atmos",
- "standard_name": "northward_wind",
- "units": "m s-1",
- "cell_methods": "area: time: mean",
- "cell_measures": "area: areacella",
- "long_name": "Northward Wind",
- "comment": "Northward component of the wind",
- "dimensions": "longitude latitude time p200",
- "out_name": "va200",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
- "va850": {
- "frequency": "day",
- "modeling_realm": "atmos",
- "standard_name": "northward_wind",
- "units": "m s-1",
- "cell_methods": "area: time: mean",
- "cell_measures": "area: areacella",
- "long_name": "Northward Wind",
- "comment": "Northward component of the wind at 850hPa",
- "dimensions": "longitude latitude time p850",
- "out_name": "va850",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
"wap": {
"frequency": "day",
"modeling_realm": "atmos",
@@ -2251,7 +2179,7 @@
"standard_name": "depth_of_soil_moisture_saturation",
"units": "m",
"cell_methods": "area: mean where land time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacellr",
"long_name": "Water table depth",
"comment": "",
"dimensions": "longitude latitude time",
diff --git a/TestTables/CMIP6_EdayZ.json b/TestTables/CMIP6_EdayZ.json
index e06328f..06c4fcb 100644
--- a/TestTables/CMIP6_EdayZ.json
+++ b/TestTables/CMIP6_EdayZ.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table EdayZ",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "1.00000",
@@ -19,7 +19,7 @@
"standard_name": "northward_eliassen_palm_flux_in_air",
"units": "m3 s-2",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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.",
"dimensions": "latitude plev39 time",
@@ -37,7 +37,7 @@
"standard_name": "upward_eliassen_palm_flux_in_air",
"units": "m3 s-2",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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.",
"dimensions": "latitude plev39 time",
@@ -55,7 +55,7 @@
"standard_name": "specific_humidity",
"units": "1.0",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Specific Humidity",
"comment": "",
"dimensions": "latitude plev19 time",
@@ -73,7 +73,7 @@
"standard_name": "meridional_streamfunction_transformed_eulerian_mean",
"units": "kg s^-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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. Academic Press.",
"dimensions": "latitude plev39 time",
@@ -91,7 +91,7 @@
"standard_name": "air_temperature",
"units": "K",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Air Temperature",
"comment": "Air Temperature",
"dimensions": "latitude plev19 time",
@@ -109,7 +109,7 @@
"standard_name": "eastward_wind",
"units": "m s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Eastward Wind",
"comment": "",
"dimensions": "latitude plev39 time",
@@ -127,7 +127,7 @@
"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",
+ "cell_measures": "",
"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",
@@ -145,7 +145,7 @@
"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",
+ "cell_measures": "",
"long_name": "u-tendency nonorographic gravity wave drag",
"comment": "Tendency of the eastward wind by parameterized nonorographic gravity waves.",
"dimensions": "latitude plev39 time",
@@ -163,7 +163,7 @@
"standard_name": "tendency_of_eastward_wind_due_to_orographic_gravity_wave_drag",
"units": "m s-2",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "u-tendency orographic gravity wave drag",
"comment": "Tendency of the eastward wind by parameterized orographic gravity waves.",
"dimensions": "latitude plev39 time",
@@ -181,7 +181,7 @@
"standard_name": "u-tendency_by_wstar_advection",
"units": "m s-1 d-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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. Academic Press.",
"dimensions": "latitude plev39 time",
@@ -199,7 +199,7 @@
"standard_name": "u-tendency_by_vstar_advection",
"units": "m s-1 d-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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. Academic Press.",
"dimensions": "latitude plev39 time",
@@ -217,7 +217,7 @@
"standard_name": "northward_wind",
"units": "m s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Northward Wind",
"comment": "",
"dimensions": "latitude plev19 time",
@@ -235,7 +235,7 @@
"standard_name": "northward_transformed_eulerian_mean_air_velocity",
"units": "m s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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).",
"dimensions": "latitude plev39 time",
@@ -253,7 +253,7 @@
"standard_name": "unset",
"units": "m s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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",
"dimensions": "latitude plev39 time",
@@ -271,7 +271,7 @@
"standard_name": "geopotential_height",
"units": "m",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Geopotential Height",
"comment": "",
"dimensions": "latitude plev19 time",
diff --git a/TestTables/CMIP6_Efx.json b/TestTables/CMIP6_Efx.json
index fce25ee..e99fe67 100644
--- a/TestTables/CMIP6_Efx.json
+++ b/TestTables/CMIP6_Efx.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Efx",
"realm": "land",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.00000",
diff --git a/TestTables/CMIP6_Emon.json b/TestTables/CMIP6_Emon.json
index ec89711..72e8a5c 100644
--- a/TestTables/CMIP6_Emon.json
+++ b/TestTables/CMIP6_Emon.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Emon",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00000",
@@ -1167,7 +1167,7 @@
},
"depdust": {
"frequency": "mon",
- "modeling_realm": "atmos",
+ "modeling_realm": "aerosol",
"standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_total_deposition",
"units": "kg m-2 s-1",
"cell_methods": "area: time: mean",
@@ -1405,7 +1405,7 @@
"standard_name": "carbon_mass_flux_into_ocean_from_rivers",
"units": "kg m-2 s-1",
"cell_methods": "area: mean where land time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacellr",
"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.",
"dimensions": "longitude latitude time",
@@ -2914,7 +2914,7 @@
"lwsrfasdust": {
"frequency": "mon",
"modeling_realm": "atmos",
- "standard_name": "tendency_of_all_sky_surface_longwave_flux_to_dust_ambient_aerosol_particles",
+ "standard_name": "surface_instantaneous_longwave_forcing_due_to_dust",
"units": "W m-2",
"cell_methods": "area: time: mean",
"cell_measures": "area: areacella",
@@ -2932,7 +2932,7 @@
"lwsrfcsdust": {
"frequency": "mon",
"modeling_realm": "atmos",
- "standard_name": "tendency_of_clear_sky_surface_longwave_flux_to_dust_ambient_aerosol_particles",
+ "standard_name": "surface_instantaneous_longwave_forcing_due_to_dust_in_clearsky",
"units": "W m-2",
"cell_methods": "area: time: mean",
"cell_measures": "area: areacella",
@@ -2965,17 +2965,17 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "lwtoacs": {
+ "lwtoacsaer": {
"frequency": "mon",
"modeling_realm": "atmos",
- "standard_name": "tendency_of_clear_sky_top_of_atmosphere_longwave_flux_to_dust_ambient_aerosol_particles___2D_field_radiative_properties",
+ "standard_name": "toa_instantaneous_longwave_forcing",
"units": "W m-2",
"cell_methods": "area: time: mean",
"cell_measures": "area: areacella",
- "long_name": "Clear-sky TOA Longwave radiative flux due to Dust",
- "comment": "Balkanski - LSCE",
+ "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": "lwtoacs",
+ "out_name": "lwtoacsaer",
"type": "",
"positive": "",
"valid_min": "",
@@ -2983,17 +2983,17 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "lwtoacsaer": {
+ "lwtoacsdust": {
"frequency": "mon",
"modeling_realm": "atmos",
- "standard_name": "toa_instantaneous_longwave_forcing",
+ "standard_name": "toa_instantaneous_longwave_forcing_due_to_dust_in_clearsky",
"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",
+ "long_name": "Clear-sky TOA Longwave radiative flux due to Dust",
+ "comment": "Balkanski - LSCE",
"dimensions": "longitude latitude time",
- "out_name": "lwtoacsaer",
+ "out_name": "lwtoacsdust",
"type": "",
"positive": "",
"valid_min": "",
@@ -5019,7 +5019,7 @@
},
"sedustCI": {
"frequency": "mon",
- "modeling_realm": "atmos",
+ "modeling_realm": "aerosol",
"standard_name": "tendency_of_atmosphere_mass_content_of_dust_dry_aerosol_particles_due_to_sedimentation",
"units": "kg m-2 s-1",
"cell_methods": "area: time: mean",
@@ -6247,7 +6247,7 @@
"standard_name": "depth_of_soil_moisture_saturation",
"units": "m",
"cell_methods": "area: mean where land time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacellr",
"long_name": "Water table depth from surface.",
"comment": "",
"dimensions": "longitude latitude time",
diff --git a/TestTables/CMIP6_EmonZ.json b/TestTables/CMIP6_EmonZ.json
index 17641e4..679c226 100644
--- a/TestTables/CMIP6_EmonZ.json
+++ b/TestTables/CMIP6_EmonZ.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table EmonZ",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00000",
@@ -13,31 +13,13 @@
"Conventions": "CF-1.7 CMIP-6.2"
},
"variable_entry": {
- "co2totalmass": {
- "frequency": "mon",
- "modeling_realm": "atmos",
- "standard_name": "CO2_total_mass_in_atmos",
- "units": "kg",
- "cell_methods": "area: time: mean",
- "cell_measures": "",
- "long_name": "Globally integrated Carbon Mass in Atmosphere",
- "comment": "globally integrated mass of carbon as CO2 in atmosphere. Report as a single number for all emissions-driven runs",
- "dimensions": "time",
- "out_name": "co2totalmass",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
"epfy": {
"frequency": "mon",
"modeling_realm": "atmos",
"standard_name": "northward_eliassen_palm_flux_in_air",
"units": "m3 s-2",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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.",
"dimensions": "latitude plev39 time",
@@ -55,7 +37,7 @@
"standard_name": "upward_eliassen_palm_flux_in_air",
"units": "m3 s-2",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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.",
"dimensions": "latitude plev39 time",
@@ -73,7 +55,7 @@
"standard_name": "photolysis_rate_of_molecular_oxygen",
"units": "s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "photoloysis rate of O2",
"comment": "Rate of photolysis of molecular oxygen to atomic oxygen (o2 -> o1d+o)",
"dimensions": "latitude plev39 time",
@@ -91,7 +73,7 @@
"standard_name": "photolysis_rate_of_ozone",
"units": "s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "photoloysis rate of O3",
"comment": "sum of rates o3 -> o1d+o2 and o3 -> o+o2",
"dimensions": "latitude plev39 time",
@@ -109,7 +91,7 @@
"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": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "total Ox loss rate",
"comment": "total chemical loss rate for o+o1d+o3",
"dimensions": "latitude plev39 time",
@@ -127,7 +109,7 @@
"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": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "total Ox production rate",
"comment": "total production rate of o+o1d+o3 including o2 photolysis and all o3 producing reactions",
"dimensions": "latitude plev39 time",
@@ -145,7 +127,7 @@
"standard_name": "northward_ocean_salt_transport",
"units": "kg s-1",
"cell_methods": "longitude: mean (basin) time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Northward Ocean Salt Transport",
"comment": "function of latitude, basin",
"dimensions": "latitude basin time",
@@ -163,7 +145,7 @@
"standard_name": "northward_ocean_salt_transport",
"units": "kg s-1",
"cell_methods": "longitude: mean (basin) time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Atlantic Northward Ocean Salt Transport",
"comment": "",
"dimensions": "latitude basin time",
@@ -181,7 +163,7 @@
"standard_name": "tendency_of_air_temperature_due_to_convection",
"units": "K s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Tendency of Air Temperature due to Convection",
"comment": "Tendencies from cumulus convection scheme.",
"dimensions": "latitude plev39 time",
@@ -199,7 +181,7 @@
"standard_name": "tendency_of_air_temperature_due_to_model_physics",
"units": "K s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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": "latitude plev39 time",
@@ -217,7 +199,7 @@
"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",
+ "cell_measures": "",
"long_name": "temperature tendency nonorographic gravity wave dissipation",
"comment": "Temperature tendency due to dissipation of parameterized nonorographic gravity waves.",
"dimensions": "latitude plev39 time",
@@ -235,7 +217,7 @@
"standard_name": "temperature_tendency_due_to_dissipation_orographic_gravity_wave_drag",
"units": "K s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "temperature tendency orographic gravity wave dissipation",
"comment": "Temperature tendency due to dissipation of parameterized orographic gravity waves.",
"dimensions": "latitude plev39 time",
@@ -253,7 +235,7 @@
"standard_name": "tendency_of_air_temperature_due_to_longwave_heating",
"units": "K s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Longwave heating rate",
"comment": "Tendency of air temperature due to longwave radiative heating",
"dimensions": "latitude plev39 time",
@@ -271,7 +253,7 @@
"standard_name": "tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky",
"units": "K s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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",
@@ -289,7 +271,7 @@
"standard_name": "tendency_of_air_temperature_due_to_shortwave_heating",
"units": "K s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Shortwave heating rate",
"comment": "Tendency of air temperature due to shortwave radiative heating",
"dimensions": "latitude plev39 time",
@@ -307,7 +289,7 @@
"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",
+ "cell_measures": "",
"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",
@@ -325,7 +307,7 @@
"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",
+ "cell_measures": "",
"long_name": "Tendency of Air Temperature Due to Stratiform Clouds and Precipitation",
"comment": "",
"dimensions": "latitude plev39 time",
@@ -343,7 +325,7 @@
"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",
+ "cell_measures": "",
"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",
@@ -361,7 +343,7 @@
"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",
+ "cell_measures": "",
"long_name": "u-tendency nonorographic gravity wave drag",
"comment": "Tendency of the eastward wind by parameterized nonorographic gravity waves.",
"dimensions": "latitude plev39 time",
@@ -379,7 +361,7 @@
"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",
+ "cell_measures": "",
"long_name": "mole fraction of o and o3 and o1d",
"comment": "Mole Fraction of Ox",
"dimensions": "latitude plev39 time",
@@ -397,7 +379,7 @@
"standard_name": "northward_transformed_eulerian_mean_air_velocity",
"units": "m s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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).",
"dimensions": "latitude plev39 time",
@@ -415,7 +397,7 @@
"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",
+ "cell_measures": "",
"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",
@@ -433,7 +415,7 @@
"standard_name": "unset",
"units": "m s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"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",
"dimensions": "latitude plev39 time",
@@ -451,7 +433,7 @@
"standard_name": "atmosphere_eastward_stress_due_to_gravity_wave_drag",
"units": "Pa",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "x_gravity_wave_drag_param",
"comment": "Parameterised x-component of gravity wave drag",
"dimensions": "latitude plev39 time",
@@ -469,7 +451,7 @@
"standard_name": "atmosphere_northward_stress_due_to_gravity_wave_drag",
"units": "Pa",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "y_gravity_wave_drag_param",
"comment": "Parameterised y- component of gravity wave drag",
"dimensions": "latitude plev39 time",
@@ -487,7 +469,7 @@
"standard_name": "tendency_of_air_temperature_due_to_diabatic_processes",
"units": "K s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Zonal Mean Diabatic Heating Rates",
"comment": "The diabatic heating rates due to all the processes that may change potential temperature",
"dimensions": "latitude plev39 time",
diff --git a/TestTables/CMIP6_Esubhr.json b/TestTables/CMIP6_Esubhr.json
index 93f6260..bed48e7 100644
--- a/TestTables/CMIP6_Esubhr.json
+++ b/TestTables/CMIP6_Esubhr.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Esubhr",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.017361",
diff --git a/TestTables/CMIP6_Eyr.json b/TestTables/CMIP6_Eyr.json
index 1fcf6be..a584557 100644
--- a/TestTables/CMIP6_Eyr.json
+++ b/TestTables/CMIP6_Eyr.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Eyr",
"realm": "land",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "365",
diff --git a/TestTables/CMIP6_IfxAnt.json b/TestTables/CMIP6_IfxAnt.json
index 263b982..b2ecc09 100644
--- a/TestTables/CMIP6_IfxAnt.json
+++ b/TestTables/CMIP6_IfxAnt.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table IfxAnt",
"realm": "landIce",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "",
@@ -18,11 +18,11 @@
"modeling_realm": "land",
"standard_name": "cell_area",
"units": "m2",
- "cell_methods": "area: mean",
- "cell_measures": "area: areacellg",
- "long_name": "Grid Cell Area for Interpolated Grids",
+ "cell_methods": "area: sum",
+ "cell_measures": "",
+ "long_name": "Grid-Cell Area for Ice Sheet Variables",
"comment": "Area of the target grid (not the interpolated area of the source grid).",
- "dimensions": "xant yant",
+ "dimensions": "longitude latitude",
"out_name": "areacellg",
"type": "",
"positive": "",
diff --git a/TestTables/CMIP6_IfxGre.json b/TestTables/CMIP6_IfxGre.json
index 3b12d2e..74d3546 100644
--- a/TestTables/CMIP6_IfxGre.json
+++ b/TestTables/CMIP6_IfxGre.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table IfxGre",
"realm": "landIce",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "",
@@ -18,11 +18,11 @@
"modeling_realm": "land",
"standard_name": "cell_area",
"units": "m2",
- "cell_methods": "area: mean",
- "cell_measures": "area: areacellg",
- "long_name": "Grid Cell Area for Interpolated Grids",
+ "cell_methods": "area: sum",
+ "cell_measures": "",
+ "long_name": "Grid-Cell Area for Ice Sheet Variables",
"comment": "Area of the target grid (not the interpolated area of the source grid).",
- "dimensions": "xgre ygre",
+ "dimensions": "longitude latitude",
"out_name": "areacellg",
"type": "",
"positive": "",
diff --git a/TestTables/CMIP6_ImonAnt.json b/TestTables/CMIP6_ImonAnt.json
index 31058ab..5b62772 100644
--- a/TestTables/CMIP6_ImonAnt.json
+++ b/TestTables/CMIP6_ImonAnt.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table ImonAnt",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00",
diff --git a/TestTables/CMIP6_ImonGre.json b/TestTables/CMIP6_ImonGre.json
index c985452..04b4165 100644
--- a/TestTables/CMIP6_ImonGre.json
+++ b/TestTables/CMIP6_ImonGre.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table ImonGre",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00",
diff --git a/TestTables/CMIP6_IyrAnt.json b/TestTables/CMIP6_IyrAnt.json
index e5134c9..55c92b6 100644
--- a/TestTables/CMIP6_IyrAnt.json
+++ b/TestTables/CMIP6_IyrAnt.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table IyrAnt",
- "realm": "landIce",
+ "realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "365.00",
@@ -31,24 +31,6 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "areacelli": {
- "frequency": "yr",
- "modeling_realm": "landIce",
- "standard_name": "cell_area",
- "units": "m2",
- "cell_methods": "area: time: mean",
- "cell_measures": "area: areacellg",
- "long_name": "Ice-Sheet Grid Cell Area",
- "comment": "Horizontal area of ice-sheet grid cells",
- "dimensions": "xant yant time",
- "out_name": "areacelli",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
"hfgeoubed": {
"frequency": "yr",
"modeling_realm": "landIce",
@@ -283,6 +265,24 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
+ "modelCellAreai": {
+ "frequency": "yr",
+ "modeling_realm": "landIce",
+ "standard_name": "cell_area",
+ "units": "m2",
+ "cell_methods": "area: time: mean",
+ "cell_measures": "area: areacellg",
+ "long_name": "The cell area of the ice sheet model.",
+ "comment": "Horizontal area of ice-sheet grid cells",
+ "dimensions": "xant yant time",
+ "out_name": "modelCellAreai",
+ "type": "",
+ "positive": "",
+ "valid_min": "",
+ "valid_max": "",
+ "ok_min_mean_abs": "",
+ "ok_max_mean_abs": ""
+ },
"orog": {
"frequency": "yr",
"modeling_realm": "land",
diff --git a/TestTables/CMIP6_IyrGre.json b/TestTables/CMIP6_IyrGre.json
index 471cf74..aa40f17 100644
--- a/TestTables/CMIP6_IyrGre.json
+++ b/TestTables/CMIP6_IyrGre.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table IyrGre",
- "realm": "landIce",
+ "realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "365.00",
@@ -31,24 +31,6 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "areacelli": {
- "frequency": "yr",
- "modeling_realm": "landIce",
- "standard_name": "cell_area",
- "units": "m2",
- "cell_methods": "area: time: mean",
- "cell_measures": "area: areacellg",
- "long_name": "Ice-Sheet Grid Cell Area",
- "comment": "Horizontal area of ice-sheet grid cells",
- "dimensions": "xgre ygre time",
- "out_name": "areacelli",
- "type": "",
- "positive": "",
- "valid_min": "",
- "valid_max": "",
- "ok_min_mean_abs": "",
- "ok_max_mean_abs": ""
- },
"hfgeoubed": {
"frequency": "yr",
"modeling_realm": "landIce",
@@ -283,6 +265,24 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
+ "modelCellAreai": {
+ "frequency": "yr",
+ "modeling_realm": "landIce",
+ "standard_name": "cell_area",
+ "units": "m2",
+ "cell_methods": "area: time: mean",
+ "cell_measures": "area: areacellg",
+ "long_name": "The cell area of the ice sheet model.",
+ "comment": "Horizontal area of ice-sheet grid cells",
+ "dimensions": "xgre ygre time",
+ "out_name": "modelCellAreai",
+ "type": "",
+ "positive": "",
+ "valid_min": "",
+ "valid_max": "",
+ "ok_min_mean_abs": "",
+ "ok_max_mean_abs": ""
+ },
"orog": {
"frequency": "yr",
"modeling_realm": "land",
diff --git a/TestTables/CMIP6_LImon.json b/TestTables/CMIP6_LImon.json
index b55491c..8e095d7 100644
--- a/TestTables/CMIP6_LImon.json
+++ b/TestTables/CMIP6_LImon.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table LImon",
"realm": "landIce land",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00000",
diff --git a/TestTables/CMIP6_Lmon.json b/TestTables/CMIP6_Lmon.json
index 38a2a96..7d933ee 100644
--- a/TestTables/CMIP6_Lmon.json
+++ b/TestTables/CMIP6_Lmon.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Lmon",
"realm": "land",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00000",
diff --git a/TestTables/CMIP6_Oclim.json b/TestTables/CMIP6_Oclim.json
index 009de08..f4b6ef1 100644
--- a/TestTables/CMIP6_Oclim.json
+++ b/TestTables/CMIP6_Oclim.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Oclim",
"realm": "ocean",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00000",
diff --git a/TestTables/CMIP6_Oday.json b/TestTables/CMIP6_Oday.json
index e4abb04..b9f32c8 100644
--- a/TestTables/CMIP6_Oday.json
+++ b/TestTables/CMIP6_Oday.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Oday",
"realm": "ocnBgChem",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "1.00000",
diff --git a/TestTables/CMIP6_Odec.json b/TestTables/CMIP6_Odec.json
index a685420..ea222d2 100644
--- a/TestTables/CMIP6_Odec.json
+++ b/TestTables/CMIP6_Odec.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Odec",
"realm": "ocean",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "3650.00000",
@@ -55,7 +55,7 @@
"standard_name": "northward_ocean_heat_transport",
"units": "W",
"cell_methods": "longitude: mean (basin) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -109,7 +109,7 @@
"standard_name": "ocean_meridional_overturning_mass_streamfunction",
"units": "kg s-1",
"cell_methods": "longitude: mean (comment: basin mean[ along zig-zag grid path]) time: mean",
- "cell_measures": "area: areacella",
+ "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",
diff --git a/TestTables/CMIP6_Ofx.json b/TestTables/CMIP6_Ofx.json
index 79c204a..aa63d63 100644
--- a/TestTables/CMIP6_Ofx.json
+++ b/TestTables/CMIP6_Ofx.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Ofx",
"realm": "ocean",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.00000",
@@ -18,9 +18,9 @@
"modeling_realm": "ocean",
"standard_name": "cell_area",
"units": "m2",
- "cell_methods": "area: mean",
- "cell_measures": "area: areacello",
- "long_name": "Ocean Grid-Cell Area",
+ "cell_methods": "area: sum",
+ "cell_measures": "",
+ "long_name": "Grid-Cell Area",
"comment": "Horizontal area of ocean grid cells",
"dimensions": "longitude latitude",
"out_name": "areacello",
diff --git a/TestTables/CMIP6_Omon.json b/TestTables/CMIP6_Omon.json
index 0073f46..fab97ec 100644
--- a/TestTables/CMIP6_Omon.json
+++ b/TestTables/CMIP6_Omon.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Omon",
"realm": "ocnBgChem",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00000",
@@ -1420,7 +1420,7 @@
"fgsf6": {
"frequency": "mon",
"modeling_realm": "ocean",
- "standard_name": "surface_downward_mole_flux_of_sf6",
+ "standard_name": "surface_downward_mole_flux_of_sulfur_hexafluoride",
"units": "mol sec-1 m-2",
"cell_methods": "area: mean where sea time: mean",
"cell_measures": "area: areacello",
@@ -1639,7 +1639,7 @@
"standard_name": "northward_ocean_heat_transport",
"units": "W",
"cell_methods": "longitude: mean (basin) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -1657,7 +1657,7 @@
"standard_name": "northward_ocean_heat_transport_due_to_parameterized_eddy_advection",
"units": "W",
"cell_methods": "longitude: mean (basin) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -1675,7 +1675,7 @@
"standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_advection",
"units": "W",
"cell_methods": "longitude: mean (basin) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -1693,7 +1693,7 @@
"standard_name": "northward_ocean_heat_transport_due_to_parameterized_mesoscale_diffusion",
"units": "W",
"cell_methods": "longitude: mean (basin) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -1711,7 +1711,7 @@
"standard_name": "northward_ocean_heat_transport_due_to_parameterized_submesoscale_advection",
"units": "W",
"cell_methods": "longitude: mean (basin) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2035,7 +2035,7 @@
"standard_name": "northward_ocean_heat_transport_due_to_gyre",
"units": "W",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2053,7 +2053,7 @@
"standard_name": "northward_ocean_heat_transport_due_to_overturning",
"units": "W",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2701,7 +2701,7 @@
"standard_name": "sea_water_transport_across_line",
"units": "kg s-1",
"cell_methods": "time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Sea Water Transport",
"comment": "",
"dimensions": "oline time",
@@ -2809,7 +2809,7 @@
"standard_name": "ocean_meridional_overturning_mass_streamfunction",
"units": "kg s-1",
"cell_methods": "longitude: mean (comment: basin mean[ along zig-zag grid path]) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2827,7 +2827,7 @@
"standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection",
"units": "kg s-1",
"cell_methods": "longitude: mean (comment: basin mean[ along zig-zag grid path]) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2845,7 +2845,7 @@
"standard_name": "ocean_meridional_overturning_mass_streamfunction",
"units": "kg s-1",
"cell_methods": "longitude: mean (comment: basin mean[ along zig-zag grid path]) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2863,7 +2863,7 @@
"standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection",
"units": "kg s-1",
"cell_methods": "longitude: mean (comment: basin mean[ along zig-zag grid path]) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2881,7 +2881,7 @@
"standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_advection",
"units": "kg s-1",
"cell_methods": "longitude: mean (comment: basin mean[ along zig-zag grid path]) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2899,7 +2899,7 @@
"standard_name": "ocean_y_overturning_mass_streamfunction",
"units": "kg s-1",
"cell_methods": "time: mean grid_longitude: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2917,7 +2917,7 @@
"standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection",
"units": "kg s-1",
"cell_methods": "time: mean grid_longitude: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2935,7 +2935,7 @@
"standard_name": "ocean_y_overturning_mass_streamfunction",
"units": "kg s-1",
"cell_methods": "time: mean grid_longitude: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2953,7 +2953,7 @@
"standard_name": "ocean_y_overturning_mass_streamfunction_due_to_parameterized_mesoscale_advection",
"units": "kg s-1",
"cell_methods": "time: mean grid_longitude: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -2971,7 +2971,7 @@
"standard_name": "ocean_meridional_overturning_mass_streamfunction_due_to_parameterized_submesoscale_advection",
"units": "kg s-1",
"cell_methods": "longitude: mean (comment: basin mean[ along zig-zag grid path]) time: mean",
- "cell_measures": "area: areacella",
+ "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",
@@ -3907,7 +3907,7 @@
"standard_name": "northward_ocean_salt_transport_due_to_gyre",
"units": "kg s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Northward Ocean Salt Transport due to Gyre",
"comment": "From all advective mass transport processes, resolved and parameterized.",
"dimensions": "latitude basin time",
@@ -3925,7 +3925,7 @@
"standard_name": "northward_ocean_salt_transport_due_to_overturning",
"units": "kg s-1",
"cell_methods": "longitude: mean time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Northward Ocean Salt Transport due to Overturning",
"comment": "From all advective mass transport processes, resolved and parameterized.",
"dimensions": "latitude basin time",
diff --git a/TestTables/CMIP6_Omonmissing.json b/TestTables/CMIP6_Omonmissing.json
index 164a2b6..80261b5 100644
--- a/TestTables/CMIP6_Omonmissing.json
+++ b/TestTables/CMIP6_Omonmissing.json
@@ -12,7 +12,7 @@
"approx_interval": "30.00000",
"generic_levels": "olevel",
"mip_era": "CMIP6",
- "Conventions": "CF-1.7 CMIP-6.0"
+ "Conventions": "CF-1.7 CMIP-6.2"
},
"axis_entry": {
"alt16": {
diff --git a/TestTables/CMIP6_Oyr.json b/TestTables/CMIP6_Oyr.json
index 9a410fe..7d6f196 100644
--- a/TestTables/CMIP6_Oyr.json
+++ b/TestTables/CMIP6_Oyr.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table Oyr",
"realm": "ocnBgChem",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "365.00000",
diff --git a/TestTables/CMIP6_SIday.json b/TestTables/CMIP6_SIday.json
index 83c00e2..e67ca1a 100644
--- a/TestTables/CMIP6_SIday.json
+++ b/TestTables/CMIP6_SIday.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table SIday",
"realm": "seaIce",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "1.00000",
@@ -20,7 +20,7 @@
"units": "%",
"cell_methods": "area: mean where sea time: mean",
"cell_measures": "area: areacello",
- "long_name": "Sea Ice Area Fraction",
+ "long_name": "Sea Ice Area Fraction (Ocean Grid)",
"comment": "Area fraction of grid cell covered by sea ice",
"dimensions": "longitude latitude time typesi",
"out_name": "siconc",
@@ -31,17 +31,17 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "siconco": {
+ "siconca": {
"frequency": "day",
"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",
+ "long_name": "Sea Ice Area Fraction (Atmospheric Grid)",
"comment": "Area fraction of grid cell covered by sea ice",
"dimensions": "longitude latitude time typesi",
- "out_name": "siconco",
+ "out_name": "siconca",
"type": "real",
"positive": "",
"valid_min": "",
@@ -72,8 +72,8 @@
"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",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR 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",
@@ -90,8 +90,8 @@
"modeling_realm": "seaIce",
"standard_name": "sea_ice_surface_temperature",
"units": "K",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Surface temperature of sea ice",
"comment": "Report surface temperature of snow where snow covers the sea ice.",
"dimensions": "longitude latitude time",
@@ -108,8 +108,8 @@
"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",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR 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",
diff --git a/TestTables/CMIP6_SImon.json b/TestTables/CMIP6_SImon.json
index c9295ce..ac16b31 100644
--- a/TestTables/CMIP6_SImon.json
+++ b/TestTables/CMIP6_SImon.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table SImon",
"realm": "seaIce",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "30.00000",
@@ -18,8 +18,8 @@
"modeling_realm": "seaIce",
"standard_name": "downward_sea_ice_basal_salt_flux",
"units": "kg m-2 s-1",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Salt flux from sea ice",
"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",
@@ -36,8 +36,8 @@
"modeling_realm": "seaIce",
"standard_name": "age_of_sea_ice",
"units": "s",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Age of sea ice",
"comment": "Age of sea ice",
"dimensions": "longitude latitude time",
@@ -55,7 +55,7 @@
"standard_name": "sea_ice_area_transport_across_line",
"units": "m2 s-1",
"cell_methods": "time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Sea ice area flux through straits",
"comment": "net (sum of transport in all directions) sea ice area transport through the following four passages, positive into the Arctic Ocean 1. Fram Strait = (11.5W,81.3N to (10.5E,79.6N) 2. Canadian Archipelago = (128.2W,70.6N) to (59.3W,82.1N) 3. Barents opening = (16.8E,76.5N) to (19.2E,70.2N) 4. Bering Strait = (171W,66.2N) to (166W,65N)",
"dimensions": "siline time",
@@ -108,8 +108,8 @@
"modeling_realm": "seaIce",
"standard_name": "compressive_strength_of_sea_ice",
"units": "N m-1",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR 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",
@@ -128,7 +128,7 @@
"units": "%",
"cell_methods": "area: mean where sea time: mean",
"cell_measures": "area: areacello",
- "long_name": "Sea Ice Area Fraction",
+ "long_name": "Sea Ice Area Fraction (Ocean Grid)",
"comment": "Area fraction of grid cell covered by sea ice",
"dimensions": "longitude latitude time typesi",
"out_name": "siconc",
@@ -139,17 +139,17 @@
"ok_min_mean_abs": "",
"ok_max_mean_abs": ""
},
- "siconco": {
+ "siconca": {
"frequency": "mon",
"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",
+ "long_name": "Sea Ice Area Fraction (Atmospheric Grid)",
"comment": "Area fraction of grid cell covered by sea ice",
"dimensions": "longitude latitude time typesi",
- "out_name": "siconco",
+ "out_name": "siconca",
"type": "real",
"positive": "",
"valid_min": "",
@@ -199,7 +199,7 @@
"standard_name": "divergence_of_sea_ice_velocity",
"units": "s-1",
"cell_methods": "area: mean where sea_ice (comment: mask=siconc) time: point",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacello",
"long_name": "Divergence of the sea-ice velocity field",
"comment": "Divergence of sea-ice velocity field (first shear strain invariant)",
"dimensions": "longitude latitude time1",
@@ -414,8 +414,8 @@
"modeling_realm": "seaIce",
"standard_name": "surface_drag_coefficient_for_momentum_in_water",
"units": "1.0",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Ocean drag coefficient",
"comment": "Oceanic drag coefficient that is used to calculate the oceanic momentum drag on sea ice",
"dimensions": "longitude latitude time",
@@ -432,8 +432,8 @@
"modeling_realm": "seaIce",
"standard_name": "surface_drag_coefficient_for_momentum_in_air",
"units": "1.0",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Atmospheric drag coefficient",
"comment": "Atmospheric drag coefficient that is used to calculate the atmospheric momentum drag on sea ice",
"dimensions": "longitude latitude time",
@@ -486,8 +486,8 @@
"modeling_realm": "seaIce",
"standard_name": "sea_ice_freeboard",
"units": "m",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Sea-ice freeboard",
"comment": "Mean height of sea-ice surface (=snow-ice interface when snow covered) above sea level",
"dimensions": "longitude latitude time",
@@ -504,8 +504,8 @@
"modeling_realm": "seaIce",
"standard_name": "conductive_heat_flux_at_sea_ice_bottom",
"units": "W m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Net conductive heat fluxes in ice at the bottom",
"comment": "the net heat conduction flux at the ice base",
"dimensions": "longitude latitude time",
@@ -522,8 +522,8 @@
"modeling_realm": "seaIce",
"standard_name": "conductive_heat_flux_at_sea_ice_surface",
"units": "W m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Net conductive heat flux in ice at the surface",
"comment": "the net heat conduction flux at the ice surface",
"dimensions": "longitude latitude time",
@@ -540,8 +540,8 @@
"modeling_realm": "seaIce",
"standard_name": "freshwater_flux_from_ice",
"units": "kg m-2 s-1",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR 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)",
"dimensions": "longitude latitude time",
@@ -558,8 +558,8 @@
"modeling_realm": "seaIce",
"standard_name": "freshwater_flux_from_ice_surface",
"units": "kg m-2 s-1",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR 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.",
"dimensions": "longitude latitude time",
@@ -576,8 +576,8 @@
"modeling_realm": "seaIce",
"standard_name": "surface_upward_latent_heat_flux",
"units": "W m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Net latent heat flux over sea ice",
"comment": "the net latent heat flux over sea ice",
"dimensions": "longitude latitude time",
@@ -594,8 +594,8 @@
"modeling_realm": "seaIce",
"standard_name": "surface_downwelling_longwave_flux_in_air",
"units": "W m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Downwelling longwave flux over sea ice",
"comment": "the downwelling longwave flux over sea ice (always positive)",
"dimensions": "longitude latitude time",
@@ -612,8 +612,8 @@
"modeling_realm": "seaIce",
"standard_name": "surface_upwelling_longwave_flux_in_air",
"units": "W m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Upwelling Longwave Flux over Sea Ice",
"comment": "the upwelling longwave flux over sea ice (always negative)",
"dimensions": "longitude latitude time",
@@ -630,8 +630,8 @@
"modeling_realm": "seaIce",
"standard_name": "surface_upward_sensible_heat_flux",
"units": "W m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Net upward sensible heat flux over sea ice",
"comment": "the net sensible heat flux over sea ice",
"dimensions": "longitude latitude time",
@@ -648,8 +648,8 @@
"modeling_realm": "seaIce",
"standard_name": "upward_sea_ice_basal_heat_flux",
"units": "W m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "",
"comment": "the net sensible heat flux under sea ice from the ocean",
"dimensions": "longitude latitude time",
@@ -666,8 +666,8 @@
"modeling_realm": "seaIce",
"standard_name": "bottom_downwelling_shortwave_flux_into_ocean",
"units": "W m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Downwelling shortwave flux under sea ice",
"comment": "The downwelling shortwave flux underneath sea ice (always positive)",
"dimensions": "longitude latitude time",
@@ -684,8 +684,8 @@
"modeling_realm": "seaIce",
"standard_name": "surface_downwelling_shortwave_flux_in_air",
"units": "W m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR 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",
@@ -702,8 +702,8 @@
"modeling_realm": "seaIce",
"standard_name": "surface_upwelling_shortwave_flux_in_air",
"units": "W m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Upwelling Shortwave Flux over Sea Ice",
"comment": "The upwelling shortwave flux over sea ice (always negative)",
"dimensions": "longitude latitude time",
@@ -937,7 +937,7 @@
"standard_name": "sea_ice_transport_across_line",
"units": "kg s-1",
"cell_methods": "time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Sea mass area flux through straits",
"comment": "net (sum of transport in all directions) sea ice area transport through the following four passages, positive into the Arctic Ocean 1. Fram Strait = (11.5W,81.3N to (10.5E,79.6N) 2. Canadian Archipelago = (128.2W,70.6N) to (59.3W,82.1N) 3. Barents opening = (16.8E,76.5N) to (19.2E,70.2N) 4. Bering Strait = (171W,66.2N) to (166W,65N)",
"dimensions": "siline time",
@@ -973,7 +973,7 @@
"standard_name": "surface_liquid_water_amount",
"units": "kg m-2",
"cell_methods": "area: time: mean where sea_ice_melt_pond (comment: mask=simpconc)",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacello",
"long_name": "Meltpond Mass per Unit Area",
"comment": "Meltpond mass per area of sea ice.",
"dimensions": "longitude latitude time",
@@ -991,7 +991,7 @@
"standard_name": "melt_pond_refrozen_ice",
"units": "m",
"cell_methods": "area: time: mean where sea_ice_melt_pond (comment: mask=simpconc)",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacello",
"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",
@@ -1008,8 +1008,8 @@
"modeling_realm": "seaIce",
"standard_name": "rainfall_flux",
"units": "kg m-2 s-1",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR 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",
@@ -1026,8 +1026,8 @@
"modeling_realm": "seaIce",
"standard_name": "fraction_of_ridged_sea_ice",
"units": "1.0",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Percentage Cover of Sea-Ice by Ridging",
"comment": "Fraction of sea ice, by area, which is covered by sea ice ridges, giving equal weight to every square metre of sea ice .",
"dimensions": "longitude latitude time",
@@ -1062,8 +1062,8 @@
"modeling_realm": "seaIce",
"standard_name": "sea_ice_salinity",
"units": "0.001",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Sea ice salinity",
"comment": "Mean sea-ice salinity of all sea ice in grid cell",
"dimensions": "longitude latitude time",
@@ -1099,7 +1099,7 @@
"standard_name": "maximum_shear_of_sea_ice_velocity",
"units": "s-1",
"cell_methods": "area: mean where sea_ice (comment: mask=siconc) time: point",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacello",
"long_name": "Maximum shear of sea-ice velocity field",
"comment": "Maximum shear of sea-ice velocity field (second shear strain invariant)",
"dimensions": "longitude latitude time1",
@@ -1116,8 +1116,8 @@
"modeling_realm": "seaIce",
"standard_name": "surface_snow_area_fraction",
"units": "%",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR 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.",
"dimensions": "longitude latitude time",
@@ -1134,8 +1134,8 @@
"modeling_realm": "seaIce",
"standard_name": "thermal_energy_content_of_surface_snow",
"units": "J m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR 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.",
"dimensions": "longitude latitude time",
@@ -1152,8 +1152,8 @@
"modeling_realm": "seaIce",
"standard_name": "liquid_water_content_of_surface_snow",
"units": "kg m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Snow mass per area",
"comment": "Total mass of snow on sea ice divided by grid-cell area",
"dimensions": "longitude latitude time",
@@ -1188,8 +1188,8 @@
"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",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR 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",
@@ -1207,7 +1207,7 @@
"standard_name": "maximum_shear_stress",
"units": "N m-1",
"cell_methods": "area: mean where sea_ice (comment: mask=siconc) time: point",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacello",
"long_name": "Maximum shear stress in sea ice",
"comment": "Maximum shear stress in sea ice (second stress invariant)",
"dimensions": "longitude latitude time1",
@@ -1225,7 +1225,7 @@
"standard_name": "average_normal_stress",
"units": "N m-1",
"cell_methods": "area: mean where sea_ice (comment: mask=siconc) time: point",
- "cell_measures": "area: areacella",
+ "cell_measures": "area: areacello",
"long_name": "Average normal stress in sea ice",
"comment": "Average normal stress in sea ice (first stress invariant)",
"dimensions": "longitude latitude time1",
@@ -1260,8 +1260,8 @@
"modeling_realm": "seaIce",
"standard_name": "upward_x_stress_at_sea_ice_base",
"units": "N m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "X-component of ocean stress on sea ice",
"comment": "X-component of ocean stress on sea ice",
"dimensions": "longitude latitude time",
@@ -1296,8 +1296,8 @@
"modeling_realm": "seaIce",
"standard_name": "upward_y_stress_at_sea_ice_base",
"units": "N m-2",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Y-component of ocean stress on sea ice",
"comment": "Y-component of ocean stress on sea ice",
"dimensions": "longitude latitude time",
@@ -1314,8 +1314,8 @@
"modeling_realm": "seaIce",
"standard_name": "sea_ice_bottom_temperature",
"units": "K",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Temperature at ice-ocean interface",
"comment": "Report temperature at interface, NOT temperature within lowermost model layer",
"dimensions": "longitude latitude time",
@@ -1332,8 +1332,8 @@
"modeling_realm": "seaIce",
"standard_name": "sea_ice_surface_temperature",
"units": "K",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Temperature at snow-ice interface",
"comment": "Report surface temperature of ice where snow thickness is zero",
"dimensions": "longitude latitude time",
@@ -1350,8 +1350,8 @@
"modeling_realm": "seaIce",
"standard_name": "sea_ice_surface_temperature",
"units": "K",
- "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)",
- "cell_measures": "area: areacella",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR areacella",
"long_name": "Surface temperature of sea ice",
"comment": "Report surface temperature of snow where snow covers the sea ice.",
"dimensions": "longitude latitude time",
@@ -1368,8 +1368,8 @@
"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",
+ "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)",
+ "cell_measures": "area: areacello OR 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",
@@ -1603,7 +1603,7 @@
"standard_name": "snow_mass_transport_across_line",
"units": "kg s-1",
"cell_methods": "time: mean",
- "cell_measures": "area: areacella",
+ "cell_measures": "",
"long_name": "Snow mass flux through straits",
"comment": "net (sum of transport in all directions) snow mass transport through the following four passages, positive into the Arctic Ocean 1. Fram Strait = (11.5W,81.3N to (10.5E,79.6N) 2. Canadian Archipela",
"dimensions": "siline time",
diff --git a/TestTables/CMIP6_cf3hr_0.json b/TestTables/CMIP6_cf3hr_0.json
index fd59c18..48117c9 100644
--- a/TestTables/CMIP6_cf3hr_0.json
+++ b/TestTables/CMIP6_cf3hr_0.json
@@ -11,7 +11,7 @@
"approx_interval": "1.00",
"generic_levels": "",
"mip_era": "CMIP6",
- "Conventions": "CF-1.7 CMIP-6.0"
+ "Conventions": "CF-1.7 CMIP-6.2"
},
"axis_entry": {
"height40": {
diff --git a/TestTables/CMIP6_cf3hr_1.json b/TestTables/CMIP6_cf3hr_1.json
index 3e6cb54..924d44a 100644
--- a/TestTables/CMIP6_cf3hr_1.json
+++ b/TestTables/CMIP6_cf3hr_1.json
@@ -10,7 +10,7 @@
"approx_interval": "1.00",
"generic_levels": "",
"mip_era": "CMIP6",
- "Conventions": "CF-1.7 CMIP-6.0"
+ "Conventions": "CF-1.7 CMIP-6.2"
},
"axis_entry": {
"height40": {
diff --git a/TestTables/CMIP6_cf3hr_2.json b/TestTables/CMIP6_cf3hr_2.json
index a293154..d8699e7 100644
--- a/TestTables/CMIP6_cf3hr_2.json
+++ b/TestTables/CMIP6_cf3hr_2.json
@@ -11,7 +11,7 @@
"approx_interval": "1.00",
"generic_levels": "",
"mip_era": "CMIP6",
- "Conventions": "CF-1.7 CMIP-6.0"
+ "Conventions": "CF-1.7 CMIP-6.2"
},
"axis_entry": {
"time1": {
diff --git a/TestTables/CMIP6_chunking.json b/TestTables/CMIP6_chunking.json
index 7f33bcf..8af4ba1 100644
--- a/TestTables/CMIP6_chunking.json
+++ b/TestTables/CMIP6_chunking.json
@@ -9,7 +9,7 @@
"generic_levels": "alevel alevhalf",
"product":"model-output",
"data_specs_version": "10.10.10",
- "Conventions": "CF-1.7 CMIP-6.0"
+ "Conventions": "CF-1.7 CMIP-6.2"
},
"variable_entry": {
"tas": {
diff --git a/TestTables/CMIP6_day.json b/TestTables/CMIP6_day.json
index 503dcca..c95bb5b 100644
--- a/TestTables/CMIP6_day.json
+++ b/TestTables/CMIP6_day.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table day",
"realm": "atmos",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "1.00000",
diff --git a/TestTables/CMIP6_fx.json b/TestTables/CMIP6_fx.json
index 33ad563..32e890c 100644
--- a/TestTables/CMIP6_fx.json
+++ b/TestTables/CMIP6_fx.json
@@ -1,10 +1,10 @@
{
"Header": {
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"table_id": "Table fx",
"realm": "land",
"cmor_version": "3.2",
- "table_date": "08 November 2017",
+ "table_date": "13 December 2017",
"missing_value": "1e20",
"product": "model-output",
"approx_interval": "0.00000",
@@ -18,9 +18,9 @@
"modeling_realm": "atmos land",
"standard_name": "cell_area",
"units": "m2",
- "cell_methods": "area: mean",
- "cell_measures": "area: areacella",
- "long_name": "Atmosphere Grid-Cell Area",
+ "cell_methods": "area: sum",
+ "cell_measures": "",
+ "long_name": "Grid-Cell Area for Atmospheric Variables",
"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",
"out_name": "areacella",
@@ -36,9 +36,9 @@
"modeling_realm": "land",
"standard_name": "cell_area",
"units": "m2",
- "cell_methods": "area: mean",
- "cell_measures": "area: areacella",
- "long_name": "River Model Grid-Cell Area",
+ "cell_methods": "area: sum",
+ "cell_measures": "",
+ "long_name": "Grid-Cell Area for River Model Variables",
"comment": "For river routing model, if grid differs from the atmospheric grid.",
"dimensions": "longitude latitude",
"out_name": "areacellr",
diff --git a/TestTables/CMIP6_grids.json b/TestTables/CMIP6_grids.json
index 0aea641..746f468 100644
--- a/TestTables/CMIP6_grids.json
+++ b/TestTables/CMIP6_grids.json
@@ -4,9 +4,9 @@
"cmor_version": "3.2",
"Conventions": "CF-1.7 CMIP-6.2",
"table_id": "Table grids",
- "data_specs_version": "01.00.16",
+ "data_specs_version": "01.00.18",
"missing_value": "1e20",
- "table_date": "08 November 2017"
+ "table_date": "13 December 2017"
},
"mapping_entry": {
"sample_user_mapping": {
@@ -118,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"
@@ -127,7 +127,7 @@
"dimensions": "vertices longitude latitude",
"valid_min": "-90.0",
"long_name": "",
- "standard_name": "vertices_latitude",
+ "standard_name": "",
"out_name": "vertices_latitude",
"units": "degrees_north",
"valid_max": "90.0"
@@ -136,7 +136,7 @@
"dimensions": "vertices longitude latitude",
"valid_min": "0.0",
"long_name": "",
- "standard_name": "vertices_longitude",
+ "standard_name": "",
"out_name": "vertices_longitude",
"units": "degrees_east",
"valid_max": "360.0"
@@ -145,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/python_test_table_A b/TestTables/python_test_table_A
index a26781a..d845d30 100644
--- a/TestTables/python_test_table_A
+++ b/TestTables/python_test_table_A
@@ -10,7 +10,7 @@
"approx_interval": "30.00000",
"generic_levels": "alevel alevhalf",
"mip_era": "CMIP6",
- "Conventions": "CF-1.7 CMIP-6.0"
+ "Conventions": "CF-1.7 CMIP-6.2"
},
"axis_entry": {
diff --git a/configure b/configure
index 619bffd..1807e02 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.8.
+# Generated by GNU Autoconf 2.69 for cmor 3.3.0.
#
# 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.8'
-PACKAGE_STRING='cmor 3.2.8'
+PACKAGE_VERSION='3.3.0'
+PACKAGE_STRING='cmor 3.3.0'
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.8 to adapt to many kinds of systems.
+\`configure' configures cmor 3.3.0 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.8:";;
+ short | recursive ) echo "Configuration of cmor 3.3.0:";;
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.8
+cmor configure 3.3.0
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.8, which was
+It was created by cmor $as_me 3.3.0, 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.8, which was
+This file was extended by cmor $as_me 3.3.0, 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.8
+cmor config.status 3.3.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 32629ef..52edf62 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.8, nadeau1 at llnl.gov)
+AC_INIT(cmor, 3.3.0, nadeau1 at llnl.gov)
GIT_TAG=`./get_git_version.sh`
diff --git a/include/cmor.h b/include/cmor.h
index 9c0a5d7..b5cc3fd 100644
--- a/include/cmor.h
+++ b/include/cmor.h
@@ -2,8 +2,8 @@
#define CMOR_H
#define CMOR_VERSION_MAJOR 3
-#define CMOR_VERSION_MINOR 2
-#define CMOR_VERSION_PATCH 8
+#define CMOR_VERSION_MINOR 3
+#define CMOR_VERSION_PATCH 0
#define CMOR_CF_VERSION_MAJOR 1
#define CMOR_CF_VERSION_MINOR 6
@@ -358,8 +358,7 @@ typedef struct cmor_CV_def_ {
int nValue;
double dValue;
char szValue[CMOR_MAX_STRING];
-
- char aszValue[CMOR_MAX_JSON_OBJECT][CMOR_MAX_STRING];
+ char **aszValue;
int anElements;
int nbObjects;
struct cmor_CV_def_ *oValue;
diff --git a/recipes/cmor/meta.yaml b/recipes/cmor/meta.yaml
index 6a747a3..071deba 100644
--- a/recipes/cmor/meta.yaml
+++ b/recipes/cmor/meta.yaml
@@ -1,6 +1,6 @@
package:
name: cmor
- version: 3.2.8
+ version: 3.3.0
source:
git_rev: master
@@ -21,17 +21,18 @@ requirements:
- python
- ossuuid 1.6.2.*
- udunits2
- - hdf5 1.8.18|1.8.18.*
+ - hdf5 1.8.*
- libnetcdf 4.4.*
- - numpy {{ NPY_VER }}
+ - numpy {{ NPY_VER }}.*
- libgcc [osx]
+
run:
- python
- ossuuid 1.6.2.*
- udunits2
- - hdf5 1.8.18|1.8.18.*
+ - hdf5 1.8.*
- libnetcdf 4.4.*
- - numpy {{ NPY_VER }}
+ - numpy {{ NPY_VER }}.*
- cdms2
- libgcc [osx]
diff --git a/recipes/conda-envs/cmor-3.3.0.yml b/recipes/conda-envs/cmor-3.3.0.yml
new file mode 100644
index 0000000..331a85e
--- /dev/null
+++ b/recipes/conda-envs/cmor-3.3.0.yml
@@ -0,0 +1,70 @@
+name: cmor-3.3.0
+channels:
+- pcmdi
+- conda-forge
+- defaults
+dependencies:
+- asn1crypto=0.22.0=py27_0
+- ca-certificates=2017.11.5=0
+- cdat_info=2.12=py27_1
+- cdms2=2.12=np113py27_0
+- cdtime=2.12=np113py27_2
+- certifi=2017.11.5=py27_0
+- cffi=1.11.2=py27_0
+- chardet=3.0.4=py27_0
+- clapack=3.2.1=0
+- cryptography=2.1.4=py27_0
+- curl=7.55.1=0
+- distarray=2.12.2=py27_0
+- enum34=1.1.6=py27_1
+- esmf=7.0.0=8
+- esmpy=7.0.0=py27_1
+- expat=2.2.5=0
+- future=0.16.0=py27_0
+- g2clib=1.6.0=5
+- hdf4=4.2.13=0
+- hdf5=1.8.18=2
+- idna=2.6=py27_1
+- ipaddress=1.0.18=py27_0
+- jasper=1.900.1=4
+- jpeg=9b=2
+- krb5=1.14.2=0
+- lapack=3.6.1=1
+- libcdms=2.12=0
+- libcf=1.0.1=py27_0
+- libdrs=2.12=0
+- libdrs_f=2.12=1
+- libffi=3.2.1=3
+- libnetcdf=4.4.1.1=9
+- libpng=1.6.34=0
+- libssh2=1.8.0=2
+- libtiff=4.0.9=0
+- mpich=3.2=5
+- ncurses=5.9=10
+- netcdf-fortran=4.4.4=5
+- openssl=1.0.2n=0
+- ossuuid=1.6.2=0
+- pycparser=2.18=py27_0
+- pyopenssl=17.4.0=py27_0
+- pysocks=1.6.7=py27_0
+- python=2.7.14=2
+- readline=6.2=0
+- requests=2.18.4=py27_1
+- setuptools=38.2.4=py27_0
+- six=1.11.0=py27_1
+- sqlite=3.13.0=1
+- tk=8.5.19=2
+- udunits2=2.2.25=2
+- urllib3=1.22=py27_0
+- xz=5.2.3=0
+- zlib=1.2.11=0
+- intel-openmp=2018.0.0=hc7b2577_8
+- libgcc=7.2.0=h69d50b8_2
+- libgcc-ng=7.2.0=h7cc24e2_2
+- libgfortran=3.0.0=1
+- libstdcxx-ng=7.2.0=h7a57d05_2
+- mkl=2018.0.1=h19d6760_4
+- numpy=1.13.3=py27hbcc08e0_0
+- cmor=3.3.0=py27he7c6f3b_0
+prefix: /software/anaconda2/envs/cmor-3.3.0
+
diff --git a/scripts/CMIP6_CV_cron_github.sh b/scripts/CMIP6_CV_cron_github.sh
index 80815d9..489d1b8 100755
--- a/scripts/CMIP6_CV_cron_github.sh
+++ b/scripts/CMIP6_CV_cron_github.sh
@@ -14,9 +14,9 @@ git push
cp -v ~/cmor/scripts/CMIP6_CV.json .
msg="cron: update CMIP6_CV -- "`date +%Y-%m-%dT%H:%M`
echo $msg
-git commit -am "$msg"
+git commit -am $msg
git push
-URL=`hub pull-request CMIP6_CVupdt -m "$msg"`
+URL=`hub pull-request CMIP6_CVupdt -m $msg`
if [[ ! -z $URL ]]; then
PR=`echo $URL | awk -F/ '{print $7}'`
TOKEN=`cat ~/.config/hub | grep oauth_token | awk -F: '{print $2}' | sed -e 's/^\s*//'`
diff --git a/scripts/createCMIP6CV.py b/scripts/createCMIP6CV.py
index ae616a0..6a763f8 100644
--- a/scripts/createCMIP6CV.py
+++ b/scripts/createCMIP6CV.py
@@ -88,13 +88,14 @@ def run():
regexp["mip_era"] = [ "CMIP6" ]
regexp["further_info_url"] = [ "https://furtherinfo.es-doc.org/.*" ]
regexp["product"] = [ "model-output" ]
- regexp["Conventions"] = [ "^CF-1.7 CMIP-6.2\\( UGRID-1.0\\)\\{0,\\}$" ]
+ regexp["Conventions"] = [ "^CF-1.7 CMIP-6.[0-2]\\( 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).*\\. [...]
+ 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) )
diff --git a/setup.py.in b/setup.py.in
index b8d5859..27901de 100755
--- a/setup.py.in
+++ b/setup.py.in
@@ -53,7 +53,7 @@ print 'src:',srcfiles
print 'macros:',macros
setup (name = "CMOR",
- version='3.2',
+ version='3.3',
author='Denis Nadeau, AIMS',
description = "Python Interface to CMOR output library",
url = "http://cmor.llnl.gov/",
--
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