diff --git a/.circleci/config.yml b/.circleci/config.yml index 2c3b15c7..a1020224 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,34 +22,42 @@ aliases: conda config --set always_yes yes --set changeps1 no conda update -y -q conda conda config --set anaconda_upload no - conda create -q -n py2 -c cdat/label/nightly -c conda-forge ossuuid udunits2 hdf5 libnetcdf numpy gcc openssl cdms2 "python<3" - #conda create -q -n py3 -c conda-forge ossuuid udunits2 hdf5 libnetcdf numpy gcc "python>3" + conda create -q -n py2 -c cdat/label/nightly -c conda-forge ossuuid udunits2 hdf5 libnetcdf numpy openssl cdms2 python=2.7 $CONDA_COMPILERS - &setup_cmor name: setup_cmor command: | echo "WE are in: "`pwd` export PATH=$WORKDIR/miniconda/bin:$PATH + set +e source activate py2 + echo "ACTIVATE RETURN CODE $?" + set -e export PREFIX=$(python -c "import sys; print sys.prefix") git clone https://github.com/PCMDI/cmip6-cmor-tables ln -s cmip6-cmor-tables/Tables Tables ./configure --prefix=$PREFIX --with-python --with-uuid=$PREFIX --with-udunits2=$PREFIX --with-netcdf=$PREFIX --enable-verbose-test make install + echo "MAKE PASSED" + exit 0 - &run_cmor_tests name: run_cmor_tests command: | export PATH=$WORKDIR/miniconda/bin:$PATH export UVCDAT_ANONYMOUS_LOG=False + set +e source activate py2 + set -e make test - &run_prepare_tests name: run_prepare_tests command: | export PATH=$WORKDIR/miniconda/bin:$PATH export UVCDAT_ANONYMOUS_LOG=False + set +e source activate py2 + set -e for file in `ls -1 Test/test_python_CMIP6_CV*.py`; do echo $file; python $file; mystatus=$?; if [[ "$mystatus" != "0" ]]; then return ${mystatus}; fi; done @@ -59,6 +67,8 @@ jobs: xcode: "9.2.0" environment: WORKDIR: "workspace/test_macos_cmor" + CONDA_COMPILERS: "clang_osx-64 gfortran_osx-64" + LDSHARED_FLAGS: "-bundle -undefined dynamic_lookup" steps: - checkout - run: *setup_miniconda @@ -72,6 +82,8 @@ jobs: image: circleci/classic:latest environment: WORKDIR: "workspace/test_linux_cmor" + CONDA_COMPILERS: "gcc_linux-64 gfortran_linux-64" + LDSHARED_FLAGS: "-shared -pthread" steps: - checkout - run: *setup_miniconda diff --git a/.gitignore b/.gitignore index d357e54d..348a4390 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ *.pyc *.gcno *.gcda +*.dSYM .cproject .project .settings/ diff --git a/.travis.yml b/.travis.yml index a01fb250..39304924 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,22 +13,20 @@ before_install: - if [ "$TRAVIS_OS_NAME" = "osx" ]; then wget https://repo.continuum.io/miniconda/Miniconda2-latest-MacOSX-x86_64.sh -O miniconda.sh; fi - export PATH="$HOME/miniconda/bin:$PATH" - - export PREFIX="$HOME/miniconda" - - export UDUNITS2_XML_PATH=$HOME/miniconda/share/udunits/udunits2.xml - export UVCDAT_ANONYMOUS_LOG=no - bash miniconda.sh -b -p $HOME/miniconda - conda config --set always_yes yes --set changeps1 no - conda update -y -q conda - - conda install openssl=1.0.2d - - conda install cdms2 -c cdat/label/nightly -c conda-forge -c cdat - - conda install udunits2 -c cdat/label/nightly -c conda-forge -c cdat - - if [ "$TRAVIS_OS_NAME" = "linux" ]; then conda install gcc; fi - - if [ "$TRAVIS_OS_NAME" = "osx" ]; then conda install gcc; fi - - source deactivate root - - source activate root + - if [ "$TRAVIS_OS_NAME" = "linux" ]; then export CONDA_COMPILERS="gcc_linux-64 gfortran_linux-64"; fi + - if [ "$TRAVIS_OS_NAME" = "osx" ]; then export CONDA_COMPILERS="clang_osx-64 gfortran_osx-64"; fi + - conda create -q -n py2 -c cdat/label/nightly -c conda-forge ossuuid udunits2 hdf5 libnetcdf numpy openssl cdms2 python=2.7 $CONDA_COMPILERS + - source activate py2 install: + - export PREFIX=$(python -c "import sys; print sys.prefix") - git clone https://github.com/PCMDI/cmip6-cmor-tables - ln -s cmip6-cmor-tables/Tables Tables + - if [ "$TRAVIS_OS_NAME" = "linux" ]; then export LDSHARED_FLAGS="-shared -pthread"; fi + - if [ "$TRAVIS_OS_NAME" = "osx" ]; then export LDSHARED_FLAGS="-bundle -undefined dynamic_lookup"; fi - "./configure --prefix=$PREFIX --with-python --with-uuid=$PREFIX --with-udunits2=$PREFIX --with-netcdf=$PREFIX --enable-verbose-test" - make install diff --git a/INSTALL b/INSTALL index 7844fd01..116e5964 100644 --- a/INSTALL +++ b/INSTALL @@ -1,6 +1,6 @@ INSTALLATION INSTRUCTIONS ------------------------- -Climate Model Output Rewriter (CMOR) version 3.3.1 installation instructions. +Climate Model Output Rewriter (CMOR) version 3.3.3 installation instructions. DOWNLOAD @@ -13,7 +13,7 @@ cd CMOR INSTALLATION ------------ -CMOR 3.3.1 requires external packages that need to be installed first. +CMOR 3.3.3 requires external packages that need to be installed first. It can be compiled/linked against either NetCDF3 or NetCDF4. If you decide to go with NetCDF4 be sure to build NetCDF4 with the --enable-netcdf-4 option! diff --git a/Makefile.in b/Makefile.in index 0c30522b..582c0c22 100644 --- a/Makefile.in +++ b/Makefile.in @@ -4,6 +4,7 @@ VPATH = @srcdir@ srcdir = @srcdir@ FC=@FC@ CC=@CC@ +LDSHARED="@CC@ ${LDSHARED_FLAGS}" CFLAGS=@CFLAGS@ CPPFLAGS=@CPPFLAGS@ CPPFLAGS_USER="" @@ -157,7 +158,7 @@ endif python: @echo "Building Python interface" #if [ ! -d "${DIR}" ]; then mkdir -p ${DIR}; fi - ${PYTHONEXEC} setup.py install @CDATPREFIX@ + LDSHARED=${LDSHARED} ${PYTHONEXEC} setup.py install @CDATPREFIX@ test_a_python: @echo "${OK_COLOR}Testing ${TEST_NAME} ${NO_COLOR}" ${PYTHONEXEC} ${TEST_NAME} ${VERB} @@ -231,6 +232,10 @@ test_python: python env TEST_NAME=Test/test_site_ts.py make test_a_python env TEST_NAME=Test/test_python_free_wrapping_issue.py make test_a_python env TEST_NAME=Test/test_python_filename_time_range.py make test_a_python + env TEST_NAME=Test/test_cmor_half_levels.py make test_a_python + env TEST_NAME=Test/test_cmor_half_levels_with_bounds.py make test_a_python + env TEST_NAME=Test/test_cmor_half_levels_wrong_generic_level.py make test_a_python + env TEST_NAME=Test/test_cmor_double_singleton.py make test_a_python test_case: @echo "${OK_COLOR}Testing: "${TEST_NAME}" with input file: ${INPUT_FILE}${NO_COLOR}" diff --git a/Src/cmor_axes.c b/Src/cmor_axes.c index 8a99bd3b..5cc5010e 100644 --- a/Src/cmor_axes.c +++ b/Src/cmor_axes.c @@ -2163,6 +2163,7 @@ void cmor_init_axis_def(cmor_axis_def_t * axis, int table_id) axis->index_only = 'n'; axis->must_have_bounds = 0; axis->must_call_cmor_grid = 0; + axis->generic_level_name[0] = '\0'; } /************************************************************************/ @@ -2244,6 +2245,10 @@ int cmor_set_axis_def_att(cmor_axis_def_t * axis, char att[CMOR_MAX_STRING], axis->positive = val[0]; + } else if (strcmp(att, AXIS_ATT_GEN_LEVEL_NAME) == 0) { + + strncpy(axis->generic_level_name, val, CMOR_MAX_STRING); + } else if (strcmp(att, AXIS_ATT_AXIS) == 0) { axis->axis = val[0]; diff --git a/Src/cmor_variables.c b/Src/cmor_variables.c index 2cb90599..c7c778b2 100644 --- a/Src/cmor_variables.c +++ b/Src/cmor_variables.c @@ -394,7 +394,6 @@ int cmor_zfactor(int *zvar_id, int axis_id, char *name, char *units, { extern int cmor_nvars; - extern cmor_var_t cmor_formula[]; int i, j, k; int n, gid; @@ -1581,16 +1580,39 @@ int cmor_variable(int *var_id, char *name, char *units, int ndims, continue; } for (j = 0; j < refvar.ndims; j++) { - if ((strcmp + if (strcmp (cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes [cmor_axes[laxes_ids[i]].ref_axis_id].id, - cmor_tables[CMOR_TABLE].axes[refvar.dimensions[j]].id) == 0) - || - ((cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes + cmor_tables[CMOR_TABLE].axes[refvar.dimensions[j]].id) == 0) { + k++; + } + else if ((cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes [cmor_axes[laxes_ids[i]].ref_axis_id].axis == 'Z') - && (refvar.dimensions[j] == -2))) { - + && (refvar.dimensions[j] == -2)) { k++; +/* ok it is a olvel or similar (refvar == -2) */ +/* we need to ensure it is the correct one */ + if ( + (strcmp(refvar.generic_level_name, + cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes + [cmor_axes[laxes_ids[i]].ref_axis_id].generic_level_name) != 0) && + (cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes + [cmor_axes[laxes_ids[i]].ref_axis_id].generic_level_name[0] != '\0') + ) { + snprintf(msg, CMOR_MAX_STRING, + "You defined variable '%s' (table %s) with axis " + "id '%s', the variable calls for a generic axis of type '%s' " + "according to your table, the axis you are providing is of generic type '%s'", + refvar.id, + cmor_tables[cmor_vars[vrid].ref_table_id].szTable_id, + cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id]. + axes[cmor_axes[laxes_ids[i]].ref_axis_id].id, + refvar.generic_level_name, + cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes + [cmor_axes[laxes_ids[i]].ref_axis_id].generic_level_name + ); + cmor_handle_error_var(msg, CMOR_CRITICAL, vrid); + } } } if (k != i) { @@ -1879,6 +1901,7 @@ void cmor_init_var_def(cmor_var_def_t * var, int table_id) var->shuffle = 0; var->deflate = 1; var->deflate_level = 1; + var->generic_level_name[0] = '\0'; } /************************************************************************/ @@ -1954,6 +1977,7 @@ int cmor_set_var_def_att(cmor_var_def_t * var, char att[CMOR_MAX_STRING], if (n == -1) { j = strcmp(DIMENSION_ZLEVEL, dim); j *= strcmp(DIMENSION_ALEVEL, dim); + j *= strcmp(DIMENSION_ALEVEL_HALF, dim); j *= strcmp(DIMENSION_OLEVEL, dim); for (k = 0; k < CMOR_MAX_ELEMENTS; k++) { if (cmor_tables[var->table_id].generic_levels[k][0] == '\0') @@ -1965,6 +1989,8 @@ int cmor_set_var_def_att(cmor_var_def_t * var, char att[CMOR_MAX_STRING], if (j == 0) { var->dimensions[var->ndims] = -2; + strncpy(var->generic_level_name, dim, CMOR_MAX_STRING); + } else { if ((strcmp(dim, DIMENSION_LONGITUDE) != 0) && strcmp(dim, DIMENSION_LATITUDE) != 0) { diff --git a/Test/common.py b/Test/common.py new file mode 100644 index 00000000..58471b1b --- /dev/null +++ b/Test/common.py @@ -0,0 +1,113 @@ +import numpy +import cmor +import os + +specs = {"CLOUD": {"convert": [2.0, 0.], "units": "%", "entry": "cl", "positive": ""}, + "U": {"convert": [1., -40.], "units": "m s-1", "entry": "ua", "positive": ""}, + "T": {"convert": [1., 220], "units": "K", "entry": "ta", "positive": ""}, + "LATENT": {"convert": [4., 0.], "units": "W m-2", "entry": "hfls", "positive": "down"}, + "TSURF": {"convert": [1., -15.], "units": "Celsius", "entry": "tas", "positive": ""}, + "PSURF": {"convert": [3., 900.], "units": "hPa", "entry": "ps", "positive": ""}, + "SOIL_WET": {"convert": [2., 0.], "units": "kg m-2", "entry": "mrsos", "positive": ""}, + "MC": {"convert": [2., 0.], "units": "kg m-2 s-1", "entry": "mc", "positive": "up"}, + "BS": {"convert": [2., 0.], "units": "m-1 sr-1", "entry": "bs550aer", "positive": ""}, + } + + +def read_coords(nlats, nlons): + alons = (360.*numpy.arange(nlons)/nlons+.5) - 180. + blons = numpy.zeros((nlons, 2), dtype=float) + blons[:, 0] = 360.*numpy.arange(nlons)/nlons - 180. + blons[:, 1] = 360.*numpy.arange(1, nlons+1)/nlons - 180. + + alats = (180.*numpy.arange(nlats)/nlats+.5) - 90. + blats = numpy.zeros((nlats, 2), dtype=float) + blats[:, 0] = 180.*numpy.arange(nlats)/nlats - 90. + blats[:, 1] = 180.*numpy.arange(1, nlats+1)/nlats - 90. + + levs = numpy.array([1., 5., 10, 20, 30, 50, 70, 100, 150, + 200, 250, 300, 400, 500, 600, 700, 850, 925, 1000]) + + return alats, blats, alons, blons, levs + + +def read_time(index, refyear=2015., monthdays=30., yeardays=360.): + time0 = (refyear - 1850.) * yeardays + time = time0 + (index + 0.5) * monthdays + b1 = time0 + (index) * monthdays + b2 = time0 + (index+1) * monthdays + return numpy.array([time]), numpy.array([b1, b2]) + + +def read_3d_input_files(index, varname, shape): + + print "3d shape", shape + field = numpy.zeros(shape, dtype=numpy.float32) + factor, offset = specs[varname]["convert"] + for i in range(field.shape[2]): # lon + for j in range(field.shape[1]): # lat + for k in range(field.shape[0]): # levs + if i == 0: + field[k, j, 0] = ((k)*3 + (j)*16 + index) * \ + factor + offset + 0.225 + else: + field[k, j, i] = ((k)*3 + (j)*16 + index + + 4*i-2)*factor + offset + 0.225 + return field + + +def read_2d_input_files(index, varname, shape): + sh = list(shape) + sh.insert(0, 1) + return read_3d_input_files(index, varname, sh)[0] + + +# PARAMETERS + +ntimes = 2 +lon = 4 +lat = 3 +plev = 19 +lev = 5 + +p0 = 1.e3 +a_coeff = [0.1, 0.2, 0.3, 0.22, 0.1] +b_coeff = [0.0, 0.1, 0.2, 0.5, 0.8] + +a_coeff_bnds = [0., .15, .25, .25, .16, 0.] +b_coeff_bnds = [0., .05, .15, .35, .65, 1.] + + +zlevs = numpy.array([.1, .3, .55, .7, .9]) +zlev_bnds = numpy.array([0., .2, .42, .62, .8, 1.]) + +alats, bnds_lat, alons, bnds_lon, plevs = read_coords(lat, lon) + +def init_cmor(pth, dataset_json): + ierr = cmor.setup(inpath=os.path.join(pth, "Test"), + netcdf_file_action=cmor.CMOR_REPLACE) #, logfile="CMOR.log") + ierr = cmor.dataset_json(os.path.join(pth, "Test", dataset_json)) + +def read_cmor_time_lat_lon(): + ilat = cmor.axis( + table_entry='latitude', + units='degrees_north', + length=lat, + coord_vals=alats, + cell_bounds=bnds_lat) + print("ILAT:", ilat) + print(lon, alons, bnds_lon) + ilon = cmor.axis( + table_entry='longitude', + coord_vals=alons, + units='degrees_east', + cell_bounds=bnds_lon) + + print("ILON:", ilon) + + + itim = cmor.axis( + table_entry="time", + units="days since 1850", + length=ntimes) + return itim, ilat, ilon \ No newline at end of file diff --git a/Test/metadata-template.json b/Test/metadata-template.json new file mode 100644 index 00000000..4728ed0e --- /dev/null +++ b/Test/metadata-template.json @@ -0,0 +1,42 @@ +{ + "_control_vocabulary_file": "CMIP6_CV.json", + "_cmip6_option": "CMIP6", + + "activity_id": "CMIP", + "branch_method": "none provided", + "branch_time": "0.0D", + "branch_time_in_child": "0.0D", + "branch_time_in_parent": "0.0D", + "comment": "", + "contact ": "philippe.le.sager@knmi.nl", + "data_specs_version": "1.3.15", + "experiment_id": "historical", + "forcing_index": "1", + "history": "", + "initialization_index": "1", + "institution_id": "EC-Earth-Consortium", + "license": "CMIP6 model data produced by EC-Earth-Consortium is licensed under a Creative Commons Attribution NonCommercial 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) http://furtherinfo.es-doc.org/CMIP6.KNMI.EC-Earth.historical. The data producers and data providers make no warranty, either express or implied, including, but not limited to, warranties of merchantability and fitness for a particular purpose. All liabilities arising from the supply of the information (including any liability arising in negligence) are excluded to the fullest extent permitted by law.", + "mip_era": "CMIP6", + "outpath": "./cmor", + "parent_activity_id": "CMIP", + "parent_experiment_id": "piControl", + "parent_mip_era": "CMIP6", + "parent_source_id": "EC-Earth3-HR", + "parent_time_units": "days since 1850-01-01", + "parent_variant_label": "r1i1p1f1", + "physics_index": "1", + "grid": "T511ORCA025", + "grid_label": "gr", + "nominal_resolution": "50 km", + "product": "model-output", + "realization_index": "1", + "source_id": "EC-Earth3-HR", + "source": "EC-Earth3-HR", + "source_type": "AOGCM", + "sub_experiment": "none", + "sub_experiment_id": "none", + "variant_info": "forcing: Nat.Ant.", + "variant_label": "r1i1:m1:f1", + "tracking_prefix": "hdl:21.14100", + "frequency": "3hr" +} diff --git a/Test/test_cmor_double_singleton.py b/Test/test_cmor_double_singleton.py new file mode 100644 index 00000000..1a8e5d7a --- /dev/null +++ b/Test/test_cmor_double_singleton.py @@ -0,0 +1,33 @@ +import common +import cmor +import os + + +pth = os.getcwd() +common.init_cmor(pth, "common_user_input.json") +cmor.load_table(os.path.join(pth, 'Tables', 'CMIP6_6hrLev.json')) +itim, ilat, ilon = common.read_cmor_time_lat_lon() + +ilambda = cmor.axis( + table_entry='lambda550nm', + units='m', + length=1, + coord_vals=[550.,], + cell_bounds=[500.,600.]) +# Creates two singleton dims? + +varid = cmor.variable(table_entry=common.specs["BS"]["entry"], + units=common.specs["BS"]["units"], + axis_ids=[itim, ilat, ilon, ilambda], + missing_value=1.e28, + positive=common.specs["BS"]["positive"], + original_name="BS") +for index in range(2): + tim_array, bnds_tim = common.read_time(index) + data = common.read_2d_input_files(index, "BS", (common.lat, common.lon)) + print data.shape, data + print tim_array, bnds_tim + cmor.write(var_id=varid, data=data, ntimes_passed=1, + time_vals=tim_array, time_bnds=bnds_tim) + print("Passed write") +cmor.close() diff --git a/Test/test_cmor_half_levels.py b/Test/test_cmor_half_levels.py new file mode 100644 index 00000000..8d5f9314 --- /dev/null +++ b/Test/test_cmor_half_levels.py @@ -0,0 +1,61 @@ +import cdms2 +import cmor +import numpy +import os +import common + +varin3d = ["MC", ] + +n3d = len(varin3d) + +pth = os.getcwd() +common.init_cmor(pth, "common_user_input.json") +ierr = cmor.load_table(os.path.join(pth, 'Tables', 'CMIP6_Amon.json')) +itim, ilat, ilon = common.read_cmor_time_lat_lon() + +ilev_half = cmor.axis(table_entry='standard_hybrid_sigma_half', + units='1', + coord_vals=common.zlevs) +print("ILEVL half:", ilev_half) + +cmor.zfactor(zaxis_id=ilev_half, zfactor_name='p0', + units='hPa', zfactor_values=common.p0) +print "p0 1/2" +cmor.zfactor(zaxis_id=ilev_half, zfactor_name='b_half', axis_ids=[ilev_half, ], + zfactor_values=common.b_coeff) +print "b 1/2" +cmor.zfactor(zaxis_id=ilev_half, zfactor_name='a_half', axis_ids=[ilev_half, ], + zfactor_values=common.a_coeff) +print "a 1/2" +ps_var = cmor.zfactor(zaxis_id=ilev_half, zfactor_name='ps', + axis_ids=[ilon, ilat, itim], units='hPa') +print "ps 1/2" + +var3d_ids = [] +for m in varin3d: + print "3d VAR:", m + var3d_ids.append( + cmor.variable(table_entry=common.specs[m]["entry"], + units=common.specs[m]["units"], + axis_ids=[itim, ilev_half, ilat, ilon], + missing_value=1.e28, + positive=common.specs[m]["positive"], + original_name=m) + ) +print "Ok now writing", var3d_ids, common.ntimes +for index in range(common.ntimes): + tim_array, bnds_tim = common.read_time(index) + for i, varname in enumerate(varin3d): + data = common.read_3d_input_files( + index, varname, (common.lev, common.lat, common.lon)) + print data.shape, data + print tim_array, bnds_tim + cmor.write(var_id=var3d_ids[i], data=data, ntimes_passed=1, + time_vals=tim_array, time_bnds=bnds_tim) + print("Passed write") + # PSURF + data = common.read_2d_input_files( + index, "PSURF", (common.lat, common.lon)) + cmor.write(var_id=ps_var, data=data, ntimes_passed=1, + time_vals=tim_array, time_bnds=bnds_tim, store_with=var3d_ids[i]) +cmor.close() diff --git a/Test/test_cmor_half_levels_with_bounds.py b/Test/test_cmor_half_levels_with_bounds.py new file mode 100644 index 00000000..af0bd8f3 --- /dev/null +++ b/Test/test_cmor_half_levels_with_bounds.py @@ -0,0 +1,170 @@ +import cdms2 +import cmor +import numpy +import os + +specs = {"CLOUD": {"convert": [2.0, 0.], "units": "%", "entry": "cl", "positive": ""}, + "U": {"convert": [1., -40.], "units": "m s-1", "entry": "ua", "positive": ""}, + "T": {"convert": [1., 220], "units": "K", "entry": "ta", "positive": ""}, + "LATENT": {"convert": [4., 0.], "units": "W m-2", "entry": "hfls", "positive": "down"}, + "TSURF": {"convert": [1., -15.], "units": "Celsius", "entry": "tas", "positive": ""}, + "PSURF": {"convert": [3., 900.], "units": "hPa", "entry": "ps", "positive": ""}, + "SOIL_WET": {"convert": [2., 0.], "units": "kg m-2", "entry": "mrsos", "positive": ""}, + "MC": {"convert": [2., 0.], "units": "kg m-2 s-1", "entry": "mc", "positive": "up"}, + } + + +def read_coords(nlats, nlons): + alons = (360.*numpy.arange(nlons)/nlons+.5) - 180. + blons = numpy.zeros((nlons, 2), dtype=float) + blons[:, 0] = 360.*numpy.arange(nlons)/nlons - 180. + blons[:, 1] = 360.*numpy.arange(1, nlons+1)/nlons - 180. + + alats = (180.*numpy.arange(nlats)/nlats+.5) - 90. + blats = numpy.zeros((nlats, 2), dtype=float) + blats[:, 0] = 180.*numpy.arange(nlats)/nlats - 90. + blats[:, 1] = 180.*numpy.arange(1, nlats+1)/nlats - 90. + + levs = numpy.array([1., 5., 10, 20, 30, 50, 70, 100, 150, + 200, 250, 300, 400, 500, 600, 700, 850, 925, 1000]) + + return alats, blats, alons, blons, levs + + +def read_time(index, refyear=2015., monthdays=30., yeardays=360.): + time0 = (refyear - 1850.) * yeardays + time = time0 + (index + 0.5) * monthdays + b1 = time0 + (index) * monthdays + b2 = time0 + (index+1) * monthdays + return numpy.array([time]), numpy.array([b1, b2]) + + +def read_3d_input_files(index, varname, shape): + + print "3d shape",shape + field = numpy.zeros(shape, dtype=numpy.float32) + factor, offset = specs[varname]["convert"] + for i in range(field.shape[2]): # lon + for j in range(field.shape[1]): # lat + for k in range(field.shape[0]): # levs + if i == 0: + field[k, j, 0] = ((k)*3 + (j)*16 + index) * \ + factor + offset + 0.225 + else: + field[k, j, i] = ((k)*3 + (j)*16 + index + + 4*i-2)*factor + offset + 0.225 + return field + + +def read_2d_input_files(index, varname, shape): + sh = list(shape) + sh.insert(0, 1) + return read_3d_input_files(index, varname, sh)[0] + + +# PARAMETERS + +ntimes = 2 +lon = 4 +lat = 3 +plev = 19 +lev = 5 + +p0 = 1.e3 +a_coeff = [0.1, 0.2, 0.3, 0.22, 0.1] +b_coeff = [0.0, 0.1, 0.2, 0.5, 0.8] + +a_coeff_bnds = [0., .15, .25, .25, .16, 0.] +b_coeff_bnds = [0., .05, .15, .35, .65, 1.] + + +varin3d = ["MC",] + +n3d = len(varin3d) + +alats, bnds_lat, alons, bnds_lon, plevs = read_coords(lat, lon) + +print alats[:2], alats[-2:] +print bnds_lat[0], bnds_lat[-1] +print alons[:2], alons[-2:] +print bnds_lon[0], bnds_lon[-1] +print plevs + +pth = os.path.expanduser("~/Karl") +pth = os.getcwd() +ierr = cmor.setup(inpath=os.path.join(pth, "Test"), + netcdf_file_action=cmor.CMOR_REPLACE) #, logfile="CMOR.log") +print("ERR:", ierr) +ierr = cmor.dataset_json(os.path.join(pth, "Test", "common_user_input.json")) +print("ERR:", ierr) + +ierr = cmor.load_table(os.path.join(pth, 'Tables', 'CMIP6_Amon.json')) +print("ERR:", ierr) +ilat = cmor.axis( + table_entry='latitude', + units='degrees_north', + length=lat, + coord_vals=alats, + cell_bounds=bnds_lat) +print("ILAT:", ilat) +print(lon, alons, bnds_lon) +ilon = cmor.axis( + table_entry='longitude', + coord_vals=alons, + units='degrees_east', + cell_bounds=bnds_lon) + +print("ILON:", ilon) + + +itim = cmor.axis( + table_entry="time", + units="days since 1850", + length=ntimes) + +print("ITIME:",itim) +zlevs = numpy.array([.1, .3, .55, .7, .9]) +zlev_bnds = numpy.array([0., .2, .42, .62, .8, 1.]) + +ilev_half = cmor.axis(table_entry='standard_hybrid_sigma_half', + units='1', + coord_vals=zlevs, cell_bounds=zlev_bnds) +print("ILEVL half:",ilev_half) + +cmor.zfactor(zaxis_id=ilev_half, zfactor_name='p0', units='hPa', zfactor_values=p0) +print "p0 1/2" +cmor.zfactor(zaxis_id=ilev_half, zfactor_name='b_half', axis_ids=[ilev_half, ], + zfactor_values=b_coeff, zfactor_bounds=b_coeff_bnds) +print "b 1/2" +cmor.zfactor(zaxis_id=ilev_half, zfactor_name='a_half', axis_ids=[ilev_half, ], + zfactor_values=a_coeff, zfactor_bounds=a_coeff_bnds) +print "a 1/2" +ps_var = cmor.zfactor(zaxis_id=ilev_half, zfactor_name='ps', + axis_ids=[ilon, ilat, itim], units='hPa') +print "ps 1/2" + +var3d_ids = [] +for m in varin3d: + print "3d VAR:",m + var3d_ids.append( + cmor.variable(table_entry=specs[m]["entry"], + units=specs[m]["units"], + axis_ids=[itim, ilev_half, ilat, ilon], + missing_value=1.e28, + positive=specs[m]["positive"], + original_name=m) + ) +print "Ok now writing",var3d_ids, ntimes +for index in range(ntimes): + tim_array, bnds_tim = read_time(index) + for i, varname in enumerate(varin3d): + data = read_3d_input_files(index, varname,(lev,lat,lon)) + print data.shape, data + print tim_array, bnds_tim + cmor.write(var_id=var3d_ids[i], data=data, ntimes_passed=1, + time_vals=tim_array, time_bnds=bnds_tim) + print("Passed write") + # PSURF + data = read_2d_input_files(index,"PSURF",(lat,lon)) + cmor.write(var_id=ps_var, data=data, ntimes_passed=1, time_vals=tim_array, time_bnds=bnds_tim, store_with=var3d_ids[i]) +cmor.close() \ No newline at end of file diff --git a/Test/test_cmor_half_levels_wrong_generic_level.py b/Test/test_cmor_half_levels_wrong_generic_level.py new file mode 100644 index 00000000..7ea4e096 --- /dev/null +++ b/Test/test_cmor_half_levels_wrong_generic_level.py @@ -0,0 +1,144 @@ +import cdms2 +import cmor +import numpy +import os + +specs = {"CLOUD": {"convert": [2.0, 0.], "units": "%", "entry": "cl", "positive": ""}, + "U": {"convert": [1., -40.], "units": "m s-1", "entry": "ua", "positive": ""}, + "T": {"convert": [1., 220], "units": "K", "entry": "ta", "positive": ""}, + "LATENT": {"convert": [4., 0.], "units": "W m-2", "entry": "hfls", "positive": "down"}, + "TSURF": {"convert": [1., -15.], "units": "Celsius", "entry": "tas", "positive": ""}, + "PSURF": {"convert": [3., 900.], "units": "hPa", "entry": "ps", "positive": ""}, + "SOIL_WET": {"convert": [2., 0.], "units": "kg m-2", "entry": "mrsos", "positive": ""}, + "MC": {"convert": [2., 0.], "units": "kg m-2 s-1", "entry": "mc", "positive": "up"}, + } + + +def read_coords(nlats, nlons): + alons = (360.*numpy.arange(nlons)/nlons+.5) - 180. + blons = numpy.zeros((nlons, 2), dtype=float) + blons[:, 0] = 360.*numpy.arange(nlons)/nlons - 180. + blons[:, 1] = 360.*numpy.arange(1, nlons+1)/nlons - 180. + + alats = (180.*numpy.arange(nlats)/nlats+.5) - 90. + blats = numpy.zeros((nlats, 2), dtype=float) + blats[:, 0] = 180.*numpy.arange(nlats)/nlats - 90. + blats[:, 1] = 180.*numpy.arange(1, nlats+1)/nlats - 90. + + levs = numpy.array([1., 5., 10, 20, 30, 50, 70, 100, 150, + 200, 250, 300, 400, 500, 600, 700, 850, 925, 1000]) + + return alats, blats, alons, blons, levs + + +def read_time(index, refyear=2015., monthdays=30., yeardays=360.): + time0 = (refyear - 1850.) * yeardays + time = time0 + (index + 0.5) * monthdays + b1 = time0 + (index) * monthdays + b2 = time0 + (index+1) * monthdays + return numpy.array([time]), numpy.array([b1, b2]) + + +def read_3d_input_files(index, varname, shape): + + print "3d shape",shape + field = numpy.zeros(shape, dtype=numpy.float32) + factor, offset = specs[varname]["convert"] + for i in range(field.shape[2]): # lon + for j in range(field.shape[1]): # lat + for k in range(field.shape[0]): # levs + if i == 0: + field[k, j, 0] = ((k)*3 + (j)*16 + index) * \ + factor + offset + 0.225 + else: + field[k, j, i] = ((k)*3 + (j)*16 + index + + 4*i-2)*factor + offset + 0.225 + return field + + +def read_2d_input_files(index, varname, shape): + sh = list(shape) + sh.insert(0, 1) + return read_3d_input_files(index, varname, sh)[0] + + +# PARAMETERS + +ntimes = 2 +lon = 4 +lat = 3 +plev = 19 +lev = 5 + +p0 = 1.e3 +a_coeff = [0.1, 0.2, 0.3, 0.22, 0.1] +b_coeff = [0.0, 0.1, 0.2, 0.5, 0.8] + +a_coeff_bnds = [0., .15, .25, .25, .16, 0.] +b_coeff_bnds = [0., .05, .15, .35, .65, 1.] + + +varin3d = ["MC",] + +n3d = len(varin3d) + +alats, bnds_lat, alons, bnds_lon, plevs = read_coords(lat, lon) + +print alats[:2], alats[-2:] +print bnds_lat[0], bnds_lat[-1] +print alons[:2], alons[-2:] +print bnds_lon[0], bnds_lon[-1] +print plevs + +pth = os.path.expanduser("~/Karl") +pth = os.getcwd() +ierr = cmor.setup(inpath=os.path.join(pth, "Test"), + netcdf_file_action=cmor.CMOR_REPLACE) #, logfile="CMOR.log") +print("ERR:", ierr) +ierr = cmor.dataset_json(os.path.join(pth, "Test", "common_user_input.json")) +print("ERR:", ierr) + +ierr = cmor.load_table(os.path.join(pth, 'Tables', 'CMIP6_Amon.json')) +print("ERR:", ierr) +ilat = cmor.axis( + table_entry='latitude', + units='degrees_north', + length=lat, + coord_vals=alats, + cell_bounds=bnds_lat) +print("ILAT:", ilat) +print(lon, alons, bnds_lon) +ilon = cmor.axis( + table_entry='longitude', + coord_vals=alons, + units='degrees_east', + cell_bounds=bnds_lon) + +print("ILON:", ilon) + +cmor.load_table("Tables/CMIP6_Omon.json") +itim = cmor.axis( + table_entry="time", + units="days since 1850", + length=ntimes) + +print("ITIME:",itim) +zlevs = numpy.array([.1, .3, .55, .7, .9]) +zlev_bnds = numpy.array([0., .2, .42, .62, .8, 1.]) + +ilev_half = cmor.axis(table_entry='standard_hybrid_sigma', + units='1', + coord_vals=zlevs, cell_bounds=zlev_bnds) +print("ILEVL half:",ilev_half) + +cmor.zfactor(zaxis_id=ilev_half, zfactor_name='p0', units='hPa', zfactor_values=p0) +print "p0 1/2" +failed = False +try: + cmor.zfactor(zaxis_id=ilev_half, zfactor_name='b_half', axis_ids=[ilev_half, ], + zfactor_values=b_coeff) +except: + failed = True + +if not failed: + raise RuntimeError("This code should have error exited") \ No newline at end of file diff --git a/Test/test_license_parsing.py b/Test/test_license_parsing.py new file mode 100644 index 00000000..c738b6a4 --- /dev/null +++ b/Test/test_license_parsing.py @@ -0,0 +1,52 @@ +from common import * +import cmor + + +cmor.setup(inpath="Test", + set_verbosity=cmor.CMOR_NORMAL, + netcdf_file_action=cmor.CMOR_REPLACE) + +cmor.dataset_json("Test/metadata-template.json") +cmor.set_cur_dataset_attribute("calendar", "gregorian") +cmor.load_table("Tables/CMIP6_Amon.json") +ilat = cmor.axis( + table_entry='latitude', + units='degrees_north', + length=lat, + coord_vals=alats, + cell_bounds=bnds_lat) +print("ILAT:", ilat) +print(lon, alons, bnds_lon) +ilon = cmor.axis( + table_entry='longitude', + coord_vals=alons, + units='degrees_east', + cell_bounds=bnds_lon) + +itim = cmor.axis( + table_entry="time", + units="days since 1850", + length=ntimes) + +var2d_ids = [] +for m in ["TSURF", ]: + var2d_ids.append( + cmor.variable(table_entry=specs[m]["entry"], + units=specs[m]["units"], + axis_ids=[itim, ilat, ilon], + missing_value=1.e28, + positive=specs[m]["positive"], + original_name=m) + ) + +for index in range(ntimes): + tim_array, bnds_tim = read_time(index) + for i, varname in enumerate(["TSURF", ]): + data = read_2d_input_files(index, varname, (lat, lon)) + print data.shape, data + print tim_array, bnds_tim + cmor.write(var_id=var2d_ids[i], data=data, ntimes_passed=1, + time_vals=tim_array, time_bnds=bnds_tim) + print("Passed write") + +cmor.close() diff --git a/Test/test_python_CMIP6_CV_externalvariables.py b/Test/test_python_CMIP6_CV_externalvariables.py index 02422592..81c87355 100644 --- a/Test/test_python_CMIP6_CV_externalvariables.py +++ b/Test/test_python_CMIP6_CV_externalvariables.py @@ -38,13 +38,14 @@ def setUp(self, *args, **kwargs): # -------------- # Create tmpfile # -------------- - self.tmpfile = tempfile.mkstemp() - os.dup2(self.tmpfile[0], 1) - os.dup2(self.tmpfile[0], 2) - os.close(self.tmpfile[0]) + #self.tmpfile = tempfile.mkstemp() + #os.dup2(self.tmpfile[0], 1) + #os.dup2(self.tmpfile[0], 2) + #os.close(self.tmpfile[0]) - def testCMIP6(self): + def tstCMIP6(self): + print "CMIP6" nlat = 10 dlat = 180. / nlat nlon = 20 @@ -60,37 +61,48 @@ def testCMIP6(self): # ------------------------------------------- # Try to call cmor with a bad institution_ID # ------------------------------------------- + print "RRRRRRRR" cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE) + print "CMIP6 ----" cmor.dataset_json("Test/common_user_input.json") + print "CMIP6 ----" # -------------------------------------------- # load Omon table and create masscello variable # -------------------------------------------- cmor.load_table("CMIP6_Omon.json") + print "CMIP6 ----" itime = cmor.axis(table_entry="time", units='months since 2010', coord_vals=numpy.array([0, 1, 2, 3, 4.]), cell_bounds=numpy.array([0, 1, 2, 3, 4, 5.])) + print "CMIP6 ----" ilat = cmor.axis( table_entry='latitude', coord_vals=lats, cell_bounds=blats, units='degrees_north') + print "CMIP6 ----" ilon = cmor.axis( table_entry='longitude', coord_vals=lons, cell_bounds=blons, units='degrees_east') + print "CMIP6 ----" ilev = cmor.axis(table_entry='depth_coord', length=5, cell_bounds=numpy.arange(0, 12000, 2000), coord_vals=numpy.arange(0, 10000, 2000), units="m") + print "CMIP6 ----" ivar = cmor.variable( table_entry="masscello", axis_ids=[ itime, ilev, ilat, ilon, ], units='kg/m2') + print "CMIP6 ----" data = numpy.random.random((ntimes, nlev, nlat, nlon)) * 100. cmor.write(ivar, data) + print "CMIP6 ----" cmor.close() + print "CMIP6 ----" os.dup2(self.newstdout, 1) os.dup2(self.newstderr, 2) sys.stdout = os.fdopen(self.newstdout, 'w', 0) @@ -99,9 +111,11 @@ def testCMIP6(self): f = cdms2.open(cmor.get_final_filename(), "r") a = f.getglobal("external_variables") self.assertEqual("areacello volcello", a) + print "CMIP6" def testCMIP6_ExternaVariablesError(self): + print "CMIP6 External Error" cmor.setup(inpath='Tables', netcdf_file_action=cmor.CMOR_REPLACE) error_flag = cmor.dataset_json('Test/common_user_input.json') table_id = cmor.load_table('CMIP6_6hrLev.json') @@ -143,6 +157,7 @@ def testCMIP6_ExternaVariablesError(self): a = f.getglobal("external_variables") self.assertEqual(None, a) f.close() + print "CMIP6 External Error" def tearDown(self): diff --git a/TestTables/CMIP6_3hr.json b/TestTables/CMIP6_3hr.json index 885dec62..e10761d0 100644 --- a/TestTables/CMIP6_3hr.json +++ b/TestTables/CMIP6_3hr.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table 3hr", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -292,7 +292,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Surface Diffuse Downwelling Shortwave Radiation", - "comment": "", + "comment": "Downwelling radiation is radiation from above. It does not mean 'net downward'. 'Diffuse' radiation is radiation that has been scattered by particles in the atmosphere such as cloud droplets and aerosols. When thought of as being incident on a surface, a radiative flux is sometimes called 'irradiance'. In addition, it is identical with the quantity measured by a cosine-collector light-meter and sometimes called 'vector irradiance'. In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. The surface called 'surface' means the lower boundary of the atmosphere. 'shortwave' means shortwave radiation.", "dimensions": "longitude latitude time", "out_name": "rsdsdiff", "type": "real", diff --git a/TestTables/CMIP6_6hrLev.json b/TestTables/CMIP6_6hrLev.json index 4c673c1c..5c7cf2db 100644 --- a/TestTables/CMIP6_6hrLev.json +++ b/TestTables/CMIP6_6hrLev.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table 6hrLev", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -17,13 +17,13 @@ "bs550aer": { "frequency": "6hr", "modeling_realm": "aerosol", - "standard_name": "volume_lidar_backwards_scattering_coefficient_in_air_due_to_ambient_aerosol_particles", + "standard_name": "volume_scattering_function_in_air_due_to_ambient_aerosol_particles", "units": "m-1 sr-1", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Aerosol backscatter coefficient", "comment": "Aerosol Backscatter at 550nm and 180 degrees, computed from extinction and lidar ratio", - "dimensions": "longitude latitude time lambda550nm", + "dimensions": "longitude latitude time lambda550nm scatter180", "out_name": "bs550aer", "type": "real", "positive": "", diff --git a/TestTables/CMIP6_6hrPlev.json b/TestTables/CMIP6_6hrPlev.json index ebd1d6be..e09dc84a 100644 --- a/TestTables/CMIP6_6hrPlev.json +++ b/TestTables/CMIP6_6hrPlev.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table 6hrPlev", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_6hrPlevPt.json b/TestTables/CMIP6_6hrPlevPt.json index ea9e45a3..4139dedc 100644 --- a/TestTables/CMIP6_6hrPlevPt.json +++ b/TestTables/CMIP6_6hrPlevPt.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table 6hrPlevPt", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -161,7 +161,7 @@ "lwsffluxaero": { "frequency": "6hrPt", "modeling_realm": "atmos", - "standard_name": "longwave__flux__due_to_volcanic_aerosols_at_the_surface", + "standard_name": "surface_downwelling_longwave_flux_in_air_due_to_volcanic_ambient_aerosol_particles", "units": "W m-2", "cell_methods": "area: mean time: point", "cell_measures": "area: areacella", @@ -179,7 +179,7 @@ "lwtoafluxaerocs": { "frequency": "6hrPt", "modeling_realm": "atmos", - "standard_name": "longwave_flux_due_to_volcanic_aerosols_at_TOA_under_clear_sky", + "standard_name": "toa_outgoing_longwave_flux_due_to_volcanic_ambient_aerosol_particles_assuming_clear_sky", "units": "W m-2", "cell_methods": "area: mean time: point", "cell_measures": "area: areacella", @@ -341,7 +341,7 @@ "swsffluxaero": { "frequency": "6hrPt", "modeling_realm": "atmos", - "standard_name": "shortwave__flux_due_to_volcanic_ambient_aerosol_particles_at_the_surface", + "standard_name": "surface_downwelling_shortwave_flux_in_air_due_to_volcanic_ambient_aerosol_particles", "units": "W m-2", "cell_methods": "area: mean time: point", "cell_measures": "area: areacella", @@ -359,7 +359,7 @@ "swtoafluxaerocs": { "frequency": "6hrPt", "modeling_realm": "atmos", - "standard_name": "shortwave_flux_due_to_volcanic_aerosols_at_TOA_under_clear_sky", + "standard_name": "toa_outgoing_shortwave_flux_due_to_volcanic_ambient_aerosol_particles_assuming_clear_sky", "units": "W m-2", "cell_methods": "area: mean time: point", "cell_measures": "area: areacella", diff --git a/TestTables/CMIP6_AERday.json b/TestTables/CMIP6_AERday.json index c8de258c..bd0eb26c 100644 --- a/TestTables/CMIP6_AERday.json +++ b/TestTables/CMIP6_AERday.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table AERday", "realm": "aerosol", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_AERhr.json b/TestTables/CMIP6_AERhr.json index bb782a12..70034937 100644 --- a/TestTables/CMIP6_AERhr.json +++ b/TestTables/CMIP6_AERhr.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table AERhr", "realm": "aerosol", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_AERmon.json b/TestTables/CMIP6_AERmon.json index ac7b0464..9c030947 100644 --- a/TestTables/CMIP6_AERmon.json +++ b/TestTables/CMIP6_AERmon.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table AERmon", "realm": "aerosol", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -1763,7 +1763,7 @@ "pod0": { "frequency": "mon", "modeling_realm": "aerosol", - "standard_name": "pending_CF_name", + "standard_name": "integration_wrt_time_of_mole_stomatal_uptake_of_ozone", "units": "mol m-2 s-1", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -1875,7 +1875,7 @@ "units": "W m-2", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", - "long_name": "toa outgoing shortwave radiation", + "long_name": "TOA Outgoing Aerosol-Free Shortwave Radiation", "comment": "Flux corresponding to rsut resulting from aerosol-free call to radiation, following Ghan (ACP, 2013)", "dimensions": "longitude latitude time", "out_name": "rsutaf", @@ -1893,7 +1893,7 @@ "units": "W m-2", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", - "long_name": "toa outgoing clear-sky shortwave radiation", + "long_name": "TOA Outgoing Clear-Sky, Aerosol-Free Shortwave Radiation", "comment": "Flux corresponding to rsutcs resulting from aerosol-free call to radiation, following Ghan (ACP, 2013)", "dimensions": "longitude latitude time", "out_name": "rsutcsaf", diff --git a/TestTables/CMIP6_AERmonZ.json b/TestTables/CMIP6_AERmonZ.json index a1c9e31a..dabbd299 100644 --- a/TestTables/CMIP6_AERmonZ.json +++ b/TestTables/CMIP6_AERmonZ.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table AERmonZ", "realm": "aerosol", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_Amon.json b/TestTables/CMIP6_Amon.json index e7827864..24c7c34b 100644 --- a/TestTables/CMIP6_Amon.json +++ b/TestTables/CMIP6_Amon.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Amon", "realm": "atmos atmosChem", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -58,7 +58,7 @@ "cell_methods": "area: time: mean", "cell_measures": "", "long_name": "Global Mean Mole Fraction of CFC113", - "comment": "", + "comment": "Mole fraction is used in the construction mole_fraction_of_X_in_Y, where X is a material constituent of Y. The chemical formula of CFC113 is CCl2FCClF2. The IUPAC name for CFC113 is 1,1,2-trichloro-1,2,2-trifluoro-ethane.", "dimensions": "time", "out_name": "cfc113global", "type": "real", @@ -76,7 +76,7 @@ "cell_methods": "area: time: mean", "cell_measures": "", "long_name": "Global Mean Mole Fraction of CFC11", - "comment": "", + "comment": "Mole fraction is used in the construction mole_fraction_of_X_in_Y, where X is a material constituent of Y. The chemical formula of CFC11 is CFCl3. The IUPAC name for CFC11 is trichloro-fluoro-methane.", "dimensions": "time", "out_name": "cfc11global", "type": "real", @@ -94,7 +94,7 @@ "cell_methods": "area: time: mean", "cell_measures": "", "long_name": "Global Mean Mole Fraction of CFC12", - "comment": "", + "comment": "Mole fraction is used in the construction mole_fraction_of_X_in_Y, where X is a material constituent of Y. The chemical formula of CFC12 is CF2Cl2. The IUPAC name for CFC12 is dichloro-difluoro-methane.", "dimensions": "time", "out_name": "cfc12global", "type": "real", @@ -454,7 +454,7 @@ "cell_methods": "area: time: mean", "cell_measures": "", "long_name": "Global Mean Mole Fraction of HCFC22", - "comment": "", + "comment": "Mole fraction is used in the construction mole_fraction_of_X_in_Y, whereX is a material constituent of Y. A chemical species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. The chemicalformula for HCFC22 is CHClF2. The IUPAC name for HCFC22 is chloro-difluoro-methane.", "dimensions": "time", "out_name": "hcfc22global", "type": "real", diff --git a/TestTables/CMIP6_CF3hr.json b/TestTables/CMIP6_CF3hr.json index 0697715d..b89aef38 100644 --- a/TestTables/CMIP6_CF3hr.json +++ b/TestTables/CMIP6_CF3hr.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table CF3hr", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -112,7 +112,7 @@ "cell_methods": "area: mean time: point", "cell_measures": "area: areacella", "long_name": "Stratiform Cloud Area Fraction", - "comment": "", + "comment": "'Layer' means any layer with upper and lower boundaries that have constant values in some vertical coordinate. There must be a vertical coordinate variable indicating the extent of the layer(s). If the layers are model layers, the vertical coordinate can be model_level_number, but it is recommended to specify a physical coordinate (in a scalar or auxiliary coordinate variable) as well. 'X_area_fraction' means the fraction of horizontal area occupied by X. 'X_area' means the horizontal area occupied by X within the grid cell. Cloud area fraction is also called 'cloud amount' and 'cloud cover'. In an atmosphere model, stratiform cloud is that produced by large-scale convergence (not the convection schemes).", "dimensions": "longitude latitude alevel time1", "out_name": "cls", "type": "real", @@ -310,7 +310,7 @@ "cell_methods": "area: mean time: point", "cell_measures": "area: areacella", "long_name": "Stratiform Graupel Flux", - "comment": "", + "comment": "alias::large_scale_graupel_flux", "dimensions": "longitude latitude alevhalf time1", "out_name": "grpllsprof", "type": "real", @@ -472,7 +472,7 @@ "cell_methods": "area: mean time: point", "cell_measures": "area: areacella", "long_name": "Convective Rainfall Flux", - "comment": "", + "comment": "In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics.", "dimensions": "longitude latitude alevhalf time1", "out_name": "prcprof", "type": "real", @@ -508,7 +508,7 @@ "cell_methods": "area: mean time: point", "cell_measures": "area: areacella", "long_name": "Stratiform Rainfall Flux", - "comment": "", + "comment": "alias::large_scale_rainfall_flux", "dimensions": "longitude latitude alevhalf time1", "out_name": "prlsprof", "type": "real", diff --git a/TestTables/CMIP6_CFday.json b/TestTables/CMIP6_CFday.json index b17cf555..a363dbf2 100644 --- a/TestTables/CMIP6_CFday.json +++ b/TestTables/CMIP6_CFday.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table CFday", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -220,7 +220,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "CALIPSO Total Cloud Fraction", - "comment": "", + "comment": "'X_area_fraction' means the fraction of horizontal area occupied by X. 'X_area' means the horizontal area occupied by X within the grid cell. Cloud area fraction is also called 'cloud amount' and 'cloud cover'. The cloud area fraction is for the whole atmosphere column, as seen from the surface or the top of the atmosphere. The cloud area fraction in a layer of the atmosphere has the standard name cloud_area_fraction_in_atmosphere_layer.", "dimensions": "longitude latitude time", "out_name": "cltcalipso", "type": "real", diff --git a/TestTables/CMIP6_CFmon.json b/TestTables/CMIP6_CFmon.json index 98f06fca..0eb68dca 100644 --- a/TestTables/CMIP6_CFmon.json +++ b/TestTables/CMIP6_CFmon.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table CFmon", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -184,7 +184,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Stratiform Cloud Area Fraction", - "comment": "", + "comment": "'Layer' means any layer with upper and lower boundaries that have constant values in some vertical coordinate. There must be a vertical coordinate variable indicating the extent of the layer(s). If the layers are model layers, the vertical coordinate can be model_level_number, but it is recommended to specify a physical coordinate (in a scalar or auxiliary coordinate variable) as well. 'X_area_fraction' means the fraction of horizontal area occupied by X. 'X_area' means the horizontal area occupied by X within the grid cell. Cloud area fraction is also called 'cloud amount' and 'cloud cover'. In an atmosphere model, stratiform cloud is that produced by large-scale convergence (not the convection schemes).", "dimensions": "longitude latitude alevel time", "out_name": "cls", "type": "real", @@ -202,7 +202,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "CALIPSO Percentage Total Cloud", - "comment": "", + "comment": "'X_area_fraction' means the fraction of horizontal area occupied by X. 'X_area' means the horizontal area occupied by X within the grid cell. Cloud area fraction is also called 'cloud amount' and 'cloud cover'. The cloud area fraction is for the whole atmosphere column, as seen from the surface or the top of the atmosphere. The cloud area fraction in a layer of the atmosphere has the standard name cloud_area_fraction_in_atmosphere_layer.", "dimensions": "longitude latitude time", "out_name": "cltcalipso", "type": "real", diff --git a/TestTables/CMIP6_CFsubhr.json b/TestTables/CMIP6_CFsubhr.json index 7426f3e7..23211e6a 100644 --- a/TestTables/CMIP6_CFsubhr.json +++ b/TestTables/CMIP6_CFsubhr.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table CFsubhr", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_E1hr.json b/TestTables/CMIP6_E1hr.json index 16a72a70..526f5a30 100644 --- a/TestTables/CMIP6_E1hr.json +++ b/TestTables/CMIP6_E1hr.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table E1hr", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_E1hrClimMon.json b/TestTables/CMIP6_E1hrClimMon.json index f239e850..8f00abec 100644 --- a/TestTables/CMIP6_E1hrClimMon.json +++ b/TestTables/CMIP6_E1hrClimMon.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table E1hrClimMon", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_E3hr.json b/TestTables/CMIP6_E3hr.json index 891917cb..5f0b2922 100644 --- a/TestTables/CMIP6_E3hr.json +++ b/TestTables/CMIP6_E3hr.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table E3hr", "realm": "land", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -58,7 +58,7 @@ "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Carbon Mass Flux out of Atmosphere due to Gross Primary Production on Land", - "comment": "", + "comment": "'Production of carbon' means the production of biomass expressed as the mass of carbon which it contains. Gross primary production is the rate of synthesis of biomass from inorganic precursors by autotrophs ('producers'), for example, photosynthesis in plants or phytoplankton. The producers also respire some of this biomass and the difference is 'net_primary_production'. 'Productivity' means production per unit area. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A.", "dimensions": "longitude latitude time", "out_name": "gpp", "type": "real", @@ -179,7 +179,7 @@ "ra": { "frequency": "3hr", "modeling_realm": "land", - "standard_name": "plant_respiration_carbon_flux", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -197,7 +197,7 @@ "rh": { "frequency": "3hr", "modeling_realm": "land", - "standard_name": "heterotrophic_respiration_carbon_flux", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", diff --git a/TestTables/CMIP6_E3hrPt.json b/TestTables/CMIP6_E3hrPt.json index 1a7cc29e..90dad4c0 100644 --- a/TestTables/CMIP6_E3hrPt.json +++ b/TestTables/CMIP6_E3hrPt.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table E3hrPt", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -274,7 +274,7 @@ "cell_methods": "area: mean time: point", "cell_measures": "area: areacella", "long_name": "Percentage Cloud Cover as Calculated by the MISR Simulator", - "comment": "Cloud percentage in spectral bands and layers as observed by the Multi-angle Imaging SpectroRadiometer (MISR) instrument.", + "comment": "Cloud percentage in spectral bands and layers as observed by the Multi-angle Imaging SpectroRadiometer (MISR) instrument. The first layer in each profile is reserved for a retrieval error flag.", "dimensions": "longitude latitude alt16 tau time1", "out_name": "clmisr", "type": "real", @@ -292,7 +292,7 @@ "cell_methods": "area: mean time: point", "cell_measures": "area: areacella", "long_name": "CALIPSO Total Cloud Fraction", - "comment": "", + "comment": "'X_area_fraction' means the fraction of horizontal area occupied by X. 'X_area' means the horizontal area occupied by X within the grid cell. Cloud area fraction is also called 'cloud amount' and 'cloud cover'. The cloud area fraction is for the whole atmosphere column, as seen from the surface or the top of the atmosphere. The cloud area fraction in a layer of the atmosphere has the standard name cloud_area_fraction_in_atmosphere_layer.", "dimensions": "longitude latitude time1", "out_name": "cltcalipso", "type": "real", @@ -491,7 +491,7 @@ "cell_measures": "area: areacella", "long_name": "Downwelling Clean-Clear-Sky Shortwave Radiation at each level", "comment": "Calculated in the absence of aerosols and clouds (following Ghan). This requires a double-call in the radiation code with precisely the same meteorology.", - "dimensions": "longitude latitude alevel time1", + "dimensions": "longitude latitude alevhalf time1", "out_name": "rsdcsaf", "type": "real", "positive": "down", @@ -509,7 +509,7 @@ "cell_measures": "area: areacella", "long_name": "Downwelling Clear-Sky, Aerosol-Free, Shortwave Radiation in Bands", "comment": "Calculated in the absence of aerosols and clouds (following Ghan). This requires a double-call in the radiation code with precisely the same meteorology.", - "dimensions": "longitude latitude alevel spectband time1", + "dimensions": "longitude latitude alevhalf spectband time1", "out_name": "rsdcsafbnd", "type": "real", "positive": "down", @@ -527,7 +527,7 @@ "cell_measures": "area: areacella", "long_name": "Downwelling Clear-Sky Shortwave Radiation at each level for each band", "comment": "Calculated with aerosols but without clouds. This is a standard clear-sky calculation", - "dimensions": "longitude latitude alevel spectband time1", + "dimensions": "longitude latitude alevhalf spectband time1", "out_name": "rsdcsbnd", "type": "real", "positive": "down", @@ -617,7 +617,7 @@ "cell_measures": "area: areacella", "long_name": "Upwelling Clean-Clear-Sky Shortwave Radiation at each level", "comment": "Calculated in the absence of aerosols and clouds (following Ghan). This requires a double-call in the radiation code with precisely the same meteorology.", - "dimensions": "longitude latitude alevel time1", + "dimensions": "longitude latitude alevhalf time1", "out_name": "rsucsaf", "type": "real", "positive": "up", @@ -635,7 +635,7 @@ "cell_measures": "area: areacella", "long_name": "Upwelling Clear-Sky, Aerosol-Free Shortwave Radiation in Bands", "comment": "Calculated in the absence of aerosols and clouds (following Ghan). This requires a double-call in the radiation code with precisely the same meteorology.", - "dimensions": "longitude latitude alevel spectband time1", + "dimensions": "longitude latitude alevhalf spectband time1", "out_name": "rsucsafbnd", "type": "real", "positive": "up", @@ -653,7 +653,7 @@ "cell_measures": "area: areacella", "long_name": "Upwelling Clear-Sky Shortwave Radiation at each level for each band", "comment": "Calculated with aerosols but without clouds. This is a standard clear-sky calculation", - "dimensions": "longitude latitude alevel spectband time1", + "dimensions": "longitude latitude alevhalf spectband time1", "out_name": "rsucsbnd", "type": "real", "positive": "up", @@ -723,7 +723,7 @@ "units": "W m-2", "cell_methods": "area: mean time: point", "cell_measures": "area: areacella", - "long_name": "toa outgoing clear-sky shortwave radiation", + "long_name": "TOA Outgoing Clear-Sky, Aerosol-Free Shortwave Radiation", "comment": "Flux corresponding to rsutcs resulting from aerosol-free call to radiation, following Ghan (ACP, 2013)", "dimensions": "longitude latitude time1", "out_name": "rsutcsaf", diff --git a/TestTables/CMIP6_E6hrZ.json b/TestTables/CMIP6_E6hrZ.json index 9d0fbb9c..caeca62a 100644 --- a/TestTables/CMIP6_E6hrZ.json +++ b/TestTables/CMIP6_E6hrZ.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table E6hrZ", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -35,7 +35,7 @@ "zmlwaero": { "frequency": "6hrPt", "modeling_realm": "atmos", - "standard_name": "longwave_heating_rate_due_to_volcanic_aerosols", + "standard_name": "tendency_of_air_temperature_due_to_shortwave_heating_from_volcanic_ambient_aerosol_particles", "units": "K s-1", "cell_methods": "longitude: mean time: point", "cell_measures": "", @@ -53,7 +53,7 @@ "zmswaero": { "frequency": "6hrPt", "modeling_realm": "atmos", - "standard_name": "shortwave_heating_rate_due_to_volcanic_aerosols", + "standard_name": "tendency_of_air_temperature_due_to_longwave_heating_from_volcanic_ambient_aerosol_particles", "units": "K s-1", "cell_methods": "longitude: mean time: point", "cell_measures": "", diff --git a/TestTables/CMIP6_Eday.json b/TestTables/CMIP6_Eday.json index f15f63cd..47644e46 100644 --- a/TestTables/CMIP6_Eday.json +++ b/TestTables/CMIP6_Eday.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Eday", "realm": "land", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -71,7 +71,7 @@ "aod550volso4": { "frequency": "day", "modeling_realm": "atmos", - "standard_name": "stratosphere_optical_thickness_due_to_volcanic_aerosol_particles", + "standard_name": "stratosphere_optical_thickness_due_to_volcanic_ambient_aerosol_particles", "units": "1e-09", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -467,12 +467,12 @@ "es": { "frequency": "day", "modeling_realm": "land", - "standard_name": "liquid_water_evaporation_flux_from_soil", + "standard_name": "water_evaporation_flux_from_soil", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Bare soil evaporation", - "comment": "", + "comment": "'Water' means water in all phases. Evaporation is the conversion of liquid or solid into vapor. (The conversion of solid alone into vapor is called 'sublimation'.) In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics.", "dimensions": "longitude latitude time", "out_name": "es", "type": "real", @@ -485,12 +485,12 @@ "esn": { "frequency": "day", "modeling_realm": "land", - "standard_name": "liquid_water_evaporation_flux_from_surface_snow", + "standard_name": "water_evaporation_flux", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Snow Evaporation", - "comment": "", + "comment": "Water means water in all phases. Evaporation is the conversion of liquid or solid into vapor. (The conversion of solid alone into vapor is called 'sublimation'.) In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. Unless indicated in the cell_methods attribute, a quantity is assumed to apply to the whole area of each horizontal grid box. Previously, the qualifier where_type was used to specify that the quantity applies only to the part of the grid box of the named type. Names containing the where_type qualifier are deprecated and newly created data should use the cell_methods attribute to indicate the horizontal area to which the quantity applies.", "dimensions": "longitude latitude time", "out_name": "esn", "type": "real", @@ -724,7 +724,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Specific Humidity", - "comment": "", + "comment": "'specific' means per unit mass. Specific humidity is the mass fraction of water vapor in (moist) air.", "dimensions": "longitude latitude time p850", "out_name": "hus850", "type": "real", @@ -796,7 +796,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Load of Black Carbon Aerosol", - "comment": "", + "comment": "alias::atmosphere_mass_content_of_black_carbon_dry_aerosol", "dimensions": "longitude latitude time", "out_name": "loadbc", "type": "real", @@ -814,7 +814,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Load of Dust", - "comment": "", + "comment": "alias::atmosphere_mass_content_of_dust_dry_aerosol", "dimensions": "longitude latitude time", "out_name": "loaddust", "type": "real", @@ -832,7 +832,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Load of NH4", - "comment": "", + "comment": "alias::atmosphere_mass_content_of_ammonium_dry_aerosol", "dimensions": "longitude latitude time", "out_name": "loadnh4", "type": "real", @@ -850,7 +850,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Load of NO3", - "comment": "", + "comment": "alias::atmosphere_mass_content_of_nitrate_dry_aerosol", "dimensions": "longitude latitude time", "out_name": "loadno3", "type": "real", @@ -886,7 +886,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Load of Dry Aerosol Primary Organic Matter", - "comment": "", + "comment": "alias::atmosphere_mass_content_of_primary_particulate_organic_matter_dry_aerosol", "dimensions": "longitude latitude time", "out_name": "loadpoa", "type": "real", @@ -904,7 +904,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Load of SO4", - "comment": "", + "comment": "alias::atmosphere_mass_content_of_sulfate_dry_aerosol", "dimensions": "longitude latitude time", "out_name": "loadso4", "type": "real", @@ -922,7 +922,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Load of Dry Aerosol Secondary Organic Matter", - "comment": "", + "comment": "alias::atmosphere_mass_content_of_secondary_particulate_organic_matter_dry_aerosol", "dimensions": "longitude latitude time", "out_name": "loadsoa", "type": "real", @@ -940,7 +940,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Load of Seasalt", - "comment": "", + "comment": "alias::atmosphere_mass_content_of_seasalt_dry_aerosol", "dimensions": "longitude latitude time", "out_name": "loadss", "type": "real", @@ -1498,7 +1498,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Surface Diffuse Downwelling Clear Sky Shortwave Radiation", - "comment": "", + "comment": "Downwelling radiation is radiation from above. It does not mean 'net downward'. When thought of as being incident on a surface, a radiative flux is sometimes called 'irradiance'. In addition, it is identical with the quantity measured by a cosine-collector light-meter and sometimes called 'vector irradiance'. 'Diffuse' radiation is radiation that has been scattered by particles in the atmosphere such as cloud droplets and aerosols. In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. The surface called 'surface' means the lower boundary of the atmosphere. A phrase 'assuming_condition' indicates that the named quantity is the value which would obtain if all aspects of the system were unaltered except for the assumption of the circumstances specified by the condition. 'shortwave' means shortwave radiation.", "dimensions": "longitude latitude time", "out_name": "rsdscsdiff", "type": "real", @@ -1516,7 +1516,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Surface Diffuse Downwelling Shortwave Radiation", - "comment": "", + "comment": "Downwelling radiation is radiation from above. It does not mean 'net downward'. 'Diffuse' radiation is radiation that has been scattered by particles in the atmosphere such as cloud droplets and aerosols. When thought of as being incident on a surface, a radiative flux is sometimes called 'irradiance'. In addition, it is identical with the quantity measured by a cosine-collector light-meter and sometimes called 'vector irradiance'. In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. The surface called 'surface' means the lower boundary of the atmosphere. 'shortwave' means shortwave radiation.", "dimensions": "longitude latitude time", "out_name": "rsdsdiff", "type": "real", @@ -1750,7 +1750,7 @@ "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello", "long_name": "20C isotherm depth", - "comment": "", + "comment": "This quantity, sometimes called the 'isotherm depth', is the depth (if it exists) at which the sea water potential temperature equals some specified value. This value should be specified in a scalar coordinate variable. Depth is the vertical distance below the surface. Potential temperature is the temperature a parcel of air or sea water would have if moved adiabatically to sea level pressure.", "dimensions": "longitude latitude time", "out_name": "t20d", "type": "real", @@ -1853,7 +1853,7 @@ "tau": { "frequency": "day", "modeling_realm": "atmos", - "standard_name": "surface_downward_stress", + "standard_name": "magnitude_of_surface_downward_stress", "units": "N m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -1889,7 +1889,7 @@ "tauupbl": { "frequency": "day", "modeling_realm": "atmos", - "standard_name": "surface_downward_eastward_stress_due_to_planetary_boundary_layer", + "standard_name": "surface_downward_eastward_stress_due_to_boundary_layer_mixing", "units": "Pa", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -1925,7 +1925,7 @@ "tauvpbl": { "frequency": "day", "modeling_realm": "atmos", - "standard_name": "surface_downward_northward_stress_due_to_planetary_boundary_layer", + "standard_name": "surface_downward_northward_stress_due_to_boundary_layer_mixing", "units": "Pa", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -1966,7 +1966,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "2m dewpoint temperature", - "comment": "", + "comment": "Dew point temperature is the temperature at which a parcel of air reaches saturation upon being cooled at constant pressure and specific humidity.", "dimensions": "longitude latitude time", "out_name": "tdps", "type": "real", diff --git a/TestTables/CMIP6_EdayZ.json b/TestTables/CMIP6_EdayZ.json index 5fe8f6f4..097d2587 100644 --- a/TestTables/CMIP6_EdayZ.json +++ b/TestTables/CMIP6_EdayZ.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table EdayZ", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -71,7 +71,7 @@ "psitem": { "frequency": "day", "modeling_realm": "atmos", - "standard_name": "meridional_streamfunction_transformed_eulerian_mean", + "standard_name": "atmosphere_transformed_eulerian_mean_meridional_overturning_mass_streamfunction", "units": "kg s-1", "cell_methods": "longitude: mean time: mean", "cell_measures": "", diff --git a/TestTables/CMIP6_Efx.json b/TestTables/CMIP6_Efx.json index 1fe2e7db..3ea8c59f 100644 --- a/TestTables/CMIP6_Efx.json +++ b/TestTables/CMIP6_Efx.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Efx", "realm": "land", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -95,7 +95,7 @@ "cell_measures": "", "long_name": "Downwelling Longwave Radiation", "comment": "Downwelling Longwave Radiation (includes the fluxes at the surface and TOA)", - "dimensions": "alevel spectband", + "dimensions": "alevhalf spectband", "out_name": "rld", "type": "real", "positive": "down", @@ -113,7 +113,7 @@ "cell_measures": "", "long_name": "Upwelling Longwave Radiation", "comment": "Upwelling longwave radiation (includes the fluxes at the surface and TOA)", - "dimensions": "alevel spectband", + "dimensions": "alevhalf spectband", "out_name": "rlu", "type": "real", "positive": "up", @@ -149,7 +149,7 @@ "cell_measures": "", "long_name": "Downwelling Shortwave Radiation", "comment": "Downwelling shortwave radiation (includes the fluxes at the surface and top-of-atmosphere)", - "dimensions": "alevel spectband", + "dimensions": "alevhalf spectband", "out_name": "rsd", "type": "real", "positive": "down", @@ -167,7 +167,7 @@ "cell_measures": "", "long_name": "Upwelling Shortwave Radiation", "comment": "Upwelling shortwave radiation (includes also the fluxes at the surface and top of atmosphere)", - "dimensions": "alevel spectband", + "dimensions": "alevhalf spectband", "out_name": "rsu", "type": "real", "positive": "up", diff --git a/TestTables/CMIP6_Emon.json b/TestTables/CMIP6_Emon.json index 348d479d..2c854eab 100644 --- a/TestTables/CMIP6_Emon.json +++ b/TestTables/CMIP6_Emon.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Emon", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -341,7 +341,7 @@ "cLand": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "total_land_carbon", + "standard_name": "mass_content_of_carbon_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -359,12 +359,12 @@ "cLitterCwd": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "litter_wood_debris_carbon_content", + "standard_name": "wood_debris_mass_content_of_carbon", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Carbon Mass in Coarse Woody Debris", - "comment": "", + "comment": "'Content' indicates a quantity per unit area. 'Wood debris' means dead organic matter composed of coarse wood. It is distinct from fine litter. The precise distinction between 'fine' and 'coarse' is model dependent. The sum of the quantities with standard names wood_debris_mass_content_of_nitrogen, surface_litter_mass_content_of_nitrogen and subsurface_litter_mass_content_of_nitrogen is the total nitrogen mass content of dead plant material.", "dimensions": "longitude latitude time", "out_name": "cLitterCwd", "type": "real", @@ -382,7 +382,7 @@ "cell_methods": "area: time: mean where natural_grasses (comment: mask=grassFrac)", "cell_measures": "area: areacella", "long_name": "Carbon mass in litter on grass tiles", - "comment": "'Content' indicates a quantity per unit area. 'Litter carbon' is dead inorganic material in or above the soil quantified as the mass of carbon which it contains.", + "comment": "alias::litter_carbon_content", "dimensions": "longitude latitude time", "out_name": "cLitterGrass", "type": "real", @@ -400,7 +400,7 @@ "cell_methods": "area: time: mean where shrubs (comment: mask=shrubFrac)", "cell_measures": "area: areacella", "long_name": "Carbon mass in litter on shrub tiles", - "comment": "'Content' indicates a quantity per unit area. 'Litter carbon' is dead inorganic material in or above the soil quantified as the mass of carbon which it contains.", + "comment": "alias::litter_carbon_content", "dimensions": "longitude latitude time", "out_name": "cLitterShrub", "type": "real", @@ -454,7 +454,7 @@ "cell_methods": "area: time: mean where trees (comment: mask=treeFrac)", "cell_measures": "area: areacella", "long_name": "Carbon mass in litter on tree tiles", - "comment": "'Content' indicates a quantity per unit area. 'Litter carbon' is dead inorganic material in or above the soil quantified as the mass of carbon which it contains.", + "comment": "alias::litter_carbon_content", "dimensions": "longitude latitude time", "out_name": "cLitterTree", "type": "real", @@ -485,7 +485,7 @@ "cOther": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "other_vegegtation_components_carbon_content", + "standard_name": "miscellaneous_living_matter_mass_content_of_carbon", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -544,7 +544,7 @@ "cell_methods": "area: time: mean where natural_grasses (comment: mask=grassFrac)", "cell_measures": "area: areacella", "long_name": "Carbon mass in soil on grass tiles", - "comment": "'Content' indicates a quantity per unit area. The 'soil content' of a quantity refers to the vertical integral from the surface down to the bottom of the soil model. For the content between specified levels in the soil, standard names including content_of_soil_layer are used.", + "comment": "alias::soil_carbon_content", "dimensions": "longitude latitude time", "out_name": "cSoilGrass", "type": "real", @@ -598,7 +598,7 @@ "cell_methods": "area: time: mean where shrubs (comment: mask=shrubFrac)", "cell_measures": "area: areacella", "long_name": "Carbon mass in soil on shrub tiles", - "comment": "'Content' indicates a quantity per unit area. The 'soil content' of a quantity refers to the vertical integral from the surface down to the bottom of the soil model. For the content between specified levels in the soil, standard names including content_of_soil_layer are used.", + "comment": "alias::soil_carbon_content", "dimensions": "longitude latitude time", "out_name": "cSoilShrub", "type": "real", @@ -616,7 +616,7 @@ "cell_methods": "area: time: mean where trees (comment: mask=treeFrac)", "cell_measures": "area: areacella", "long_name": "Carbon mass in soil on tree tiles", - "comment": "'Content' indicates a quantity per unit area. The 'soil content' of a quantity refers to the vertical integral from the surface down to the bottom of the soil model. For the content between specified levels in the soil, standard names including content_of_soil_layer are used.", + "comment": "alias::soil_carbon_content", "dimensions": "longitude latitude time", "out_name": "cSoilTree", "type": "real", @@ -629,7 +629,7 @@ "cStem": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "stem_carbon_content", + "standard_name": "stem_mass_content_of_carbon", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -791,12 +791,12 @@ "clcalipsoliq": { "frequency": "mon", "modeling_realm": "atmos", - "standard_name": "liquid_cloud_area_fraction_in_atmosphere_layer", + "standard_name": "liquid_water_cloud_area_fraction_in_atmosphere_layer", "units": "%", "cell_methods": "time: mean", "cell_measures": "area: areacella", "long_name": "CALIPSO liquid cloud Fraction", - "comment": "", + "comment": "'Layer' means any layer with upper and lower boundaries that have constant values in some vertical coordinate. There must be a vertical coordinate variable indicating the extent of the layer(s). If the layers are model layers, the vertical coordinate can be 'model_level_number', but it is recommended to specify a physical coordinate (in a scalar or auxiliary coordinate variable) as well. 'X_area_fraction' means the fraction of horizontal area occupied by X. Cloud area fraction is also called 'cloud amount' and 'cloud cover'. The chemical formula for water is H2O.", "dimensions": "longitude latitude alt40 time", "out_name": "clcalipsoliq", "type": "real", @@ -922,7 +922,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Percentage Cloud Cover as Calculated by the MISR Simulator", - "comment": "Cloud percentage in spectral bands and layers as observed by the Multi-angle Imaging SpectroRadiometer (MISR) instrument.", + "comment": "Cloud percentage in spectral bands and layers as observed by the Multi-angle Imaging SpectroRadiometer (MISR) instrument. The first layer in each profile is reserved for a retrieval error flag.", "dimensions": "longitude latitude alt16 tau time", "out_name": "clmisr", "type": "real", @@ -989,7 +989,7 @@ "co23D": { "frequency": "mon", "modeling_realm": "atmos", - "standard_name": "CO2_3D_tracer", + "standard_name": "mass_fraction_of_carbon_dioxide_tracer_in_air", "units": "kg kg-1", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -1066,7 +1066,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Aerosol Number Concentration", - "comment": "", + "comment": "alias::number_concentration_of_ambient_aerosol_in_air", "dimensions": "longitude latitude alevel time", "out_name": "conccn", "type": "real", @@ -1084,7 +1084,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Concentration of Dust", - "comment": "", + "comment": "alias::mass_concentration_of_dust_dry_aerosol_in_air", "dimensions": "longitude latitude alevel time", "out_name": "concdust", "type": "real", @@ -1121,7 +1121,7 @@ "cell_measures": "area: areacella", "long_name": "Percentage Cover by C3 Crops", "comment": "Percentage of entire grid cell covered by C3 crops", - "dimensions": "longitude latitude time typec3pft typecrop", + "dimensions": "longitude latitude time typec3crop", "out_name": "cropFracC3", "type": "real", "positive": "", @@ -1139,7 +1139,7 @@ "cell_measures": "area: areacella", "long_name": "Percentage Cover by C4 Crops", "comment": "Percentage of entire grid cell covered by C4 crops", - "dimensions": "longitude latitude time typec4pft typecrop", + "dimensions": "longitude latitude time typec4crop", "out_name": "cropFracC4", "type": "real", "positive": "", @@ -1186,13 +1186,13 @@ }, "dissi14c": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon14_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello volume: volcello", "long_name": "Concentration of DI14C", - "comment": "Mole concentration means number of moles per unit volume, also called 'molarity', and is used in the construction 'mole_concentration_of_X_in_Y', where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'. 'Dissolved inorganic carbon' describes a family of chemical species in solution, including carbon dioxide, carbonic acid and the carbonate and bicarbonate anions. 'Dissolved inorganic carbon' is the term used in standard names for all species belonging to the family that are represented within a given model. The list of individual species that are included in a quantity having a group chemical standard name can vary between models. Where possible, the data variable should be accompanied by a complete description of the species represented, for example, by using a comment attribute.", + "comment": "alias::mole_concentration_of_dissolved_inorganic_carbon14_in_sea_water", "dimensions": "longitude latitude olevel time", "out_name": "dissi14c", "type": "real", @@ -1211,7 +1211,7 @@ "cell_measures": "area: areacella", "long_name": "Aerosol extinction coefficient", "comment": "Aerosol Extinction at 550nm", - "dimensions": "longitude latitude alevel time1 lambda550nm", + "dimensions": "longitude latitude alevel time lambda550nm", "out_name": "ec550aer", "type": "real", "positive": "", @@ -1240,7 +1240,7 @@ }, "exparag": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1258,7 +1258,7 @@ }, "expcalc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1276,7 +1276,7 @@ }, "expfe": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1294,7 +1294,7 @@ }, "expn": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1312,7 +1312,7 @@ }, "expp": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1330,7 +1330,7 @@ }, "expsi": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1349,7 +1349,7 @@ "fAnthDisturb": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_anthrogpogenic_emission", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_anthropogenic_emission", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -1367,12 +1367,12 @@ "fBNF": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "biological_nitrogen_fixation", + "standard_name": "tendency_of_soil_and_vegetation_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fixation", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "biological nitrogen fixation", - "comment": "", + "comment": "The phrase 'tendency_of_X' means derivative of X with respect to time. 'Content' indicates a quantity per unit area. On land, 'nitrogen fixation' means the uptake of nitrogen gas directly from the atmosphere. The representation of fixed nitrogen is model dependent, with the nitrogen entering either vegetation, soil or both. 'Vegetation' means any living plants e.g. trees, shrubs, grass. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. 'Nitrogen compounds' summarizes all chemical species containing nitrogen atoms. The list of individual species that are included in this quantity can vary between models. Where possible, the data variable should be accompanied by a complete description of the species represented, for example, by using a comment attribute.", "dimensions": "longitude latitude time", "out_name": "fBNF", "type": "real", @@ -1421,7 +1421,7 @@ "fDeforestToProduct": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "deforested_biomass_into_product_pool_due_to_anthorpogenic_land_use_change", + "standard_name": "carbon_mass_flux_into_forestry_and_agricultural_products_due_to_anthropogenic_land_use_or_land_cover_change", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -1548,7 +1548,7 @@ "frequency": "mon", "modeling_realm": "land", "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_direct_to_atmosphere_due_to_anthropogenic_land_use_land_cover_change", - "units": "kg s-1", + "units": "kg m-2 s-1", "cell_methods": "area: time: mean where landuse", "cell_measures": "area: areacella", "long_name": "carbon transferred directly to atmosphere due to any land-use or land-cover change activities including deforestation or agricultural fire", @@ -1565,7 +1565,7 @@ "fLulccProductLut": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "carbon_mass_flux_into_wood_and_agricultural_product_pools_due_to_anthropogenic_land_use_or_land_cover_change", + "standard_name": "carbon_mass_flux_into_forestry_and_agricultural_products_due_to_anthropogenic_land_use_or_land_cover_change", "units": "kg m-2 s-1", "cell_methods": "area: time: mean where landuse", "cell_measures": "area: areacella", @@ -1601,7 +1601,7 @@ "fN2O": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "land_net_n2o_flux", + "standard_name": "surface_upward_mass_flux_of_nitrous_oxide_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -1637,7 +1637,7 @@ "fNLandToOcean": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "nitrogen_mass_flux_into_ocean_from_rivers", + "standard_name": "mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_into_sea_from_rivers", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -1660,7 +1660,7 @@ "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Total Nitrogen Mass Flux from Litter to Soil", - "comment": "", + "comment": "In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. 'Litter' is dead plant material in or above the soil.", "dimensions": "longitude latitude time", "out_name": "fNLitterSoil", "type": "real", @@ -1673,12 +1673,12 @@ "fNOx": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "land_net_nox_flux", + "standard_name": "surface_upward_mass_flux_of_nox_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Total land NOx flux", - "comment": "", + "comment": "The surface called 'surface' means the lower boundary of the atmosphere. 'Upward' indicates a vector component which is positive when directed upward (negative downward). In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. 'Nox' means a combination of two radical species containing nitrogen and oxygen NO+NO2. 'Vegetation' means any living plants e.g. trees, shrubs, grass. 'Litter' is dead plant material in or above the soil.", "dimensions": "longitude latitude time", "out_name": "fNOx", "type": "real", @@ -1691,7 +1691,7 @@ "fNProduct": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "nitrogen_mass_flux_to_product_pool_due_to_anthorpogenic_activity", + "standard_name": "nitrogen_mass_flux_into_forestry_and_agricultural_products_due_to_anthropogenic_land_use_or_land_cover_change", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -1709,12 +1709,12 @@ "fNVegLitter": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "litter_nitrogen_flux", + "standard_name": "nitrogen_mass_flux_into_litter_from_vegetation", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Total Nitrogen Mass Flux from Vegetation to Litter", - "comment": "", + "comment": "In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. 'Litter' is dead plant material in or above the soil. 'Vegetation' means any living plants e.g. trees, shrubs, grass.", "dimensions": "longitude latitude time", "out_name": "fNVegLitter", "type": "real", @@ -1745,12 +1745,12 @@ "fNdep": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "deposition_of_nitrogen_onto_land", + "standard_name": "tendency_of_atmosphere_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_deposition", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Dry and Wet Deposition of Reactive Nitrogen onto Land", - "comment": "", + "comment": "'Content' indicates a quantity per unit area. The 'atmosphere content' of a quantity refers to the vertical integral from the surface to the top of the atmosphere. For the content between specified levels in the atmosphere, standard names including 'content_of_atmosphere_layer' are used. 'tendency_of_X' means derivative of X with respect to time. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The specification of a physical process by the phrase 'due_to_' process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. 'Deposition' is the sum of wet and dry deposition. 'Nitrogen compounds' summarizes all chemical species containing nitrogen atoms.", "dimensions": "longitude latitude time", "out_name": "fNdep", "type": "real", @@ -1763,7 +1763,7 @@ "fNfert": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "fertiliser_of_nitrogen_onto_land", + "standard_name": "tendency_of_soil_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fertilization", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -1799,12 +1799,12 @@ "fNgasFire": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "land_nitrogen_lost_to_atmosphere_due_to_fire", + "standard_name": "surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_due_to_emission_from_fires", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Total N lost to the atmosphere (including NHx, NOx, N2O, N2) from fire.", - "comment": "", + "comment": "The surface called 'surface' means the lower boundary of the atmosphere. 'Upward' indicates a vector component which is positive when directed upward (negative downward). In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. 'Nitrogen compounds' summarizes all chemical species containing nitrogen atoms. The list of individual species that are included in this quantity can vary between models. Where possible, the data variable should be accompanied by a complete description of the species represented, for example, by using a comment attribute.", "dimensions": "longitude latitude time", "out_name": "fNgasFire", "type": "real", @@ -1817,12 +1817,12 @@ "fNgasNonFire": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "land_nitrogen_lost_to_atmosphere_not_due_to_fire", + "standard_name": "surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_due_to_all_land_processes_excluding_fires", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Total N lost to the atmosphere (including NHx, NOx, N2O, N2) from all processes except fire.", - "comment": "", + "comment": "'Upward' indicates a vector component which is positive when directed upward (negative downward). In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. 'Nitrogen compounds' summarizes all chemical species containing nitrogen atoms. The list of individual species that are included in this quantity can vary between models. Where possible, the data variable should be accompanied by a complete description of the species represented, for example, by using a comment attribute.", "dimensions": "longitude latitude time", "out_name": "fNgasNonFire", "type": "real", @@ -1835,12 +1835,12 @@ "fNleach": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "land_nitrogen_lost_to_leaching", + "standard_name": "mass_flux_of_carbon_out_of_soil_due_to_leaching_and_runoff", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Total N loss to leaching or runoff (sum of ammonium, nitrite and nitrate)", - "comment": "", + "comment": "In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. The specification of a physical process by the phrase 'due_to_' process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. 'Leaching' means the loss of water soluble chemical species from soil. Runoff is the liquid water which drains from land. If not specified, 'runoff' refers to the sum of surface runoff and subsurface drainage.", "dimensions": "longitude latitude time", "out_name": "fNleach", "type": "real", @@ -1853,7 +1853,7 @@ "fNloss": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "land_nitrogen_lost", + "standard_name": "surface_upward_mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_out_of_vegetation_and_litter_and_soil", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -1871,7 +1871,7 @@ "fNnetmin": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "net_nitrogen_mineralisation", + "standard_name": "mass_flux_of_nitrogen_compounds_expressed_as_nitrogen_out_of_litter_and_soil_due_to_immobilisation_and_remineralization", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -1889,7 +1889,7 @@ "fNup": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "plant_nitrogen_uptake", + "standard_name": "tendency_of_vegetation_mass_content_of_nitrogen_compounds_expressed_as_nitrogen_due_to_fixation", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -1907,12 +1907,12 @@ "fProductDecomp": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "Carbon_flux_out_of_storage_product_pools_into_atmos", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_forestry_and_agricultural_products", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "decomposition out of product pools to CO2 in atmos", - "comment": "", + "comment": "'tendency_of_X' means derivative of X with respect to time. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. The chemical formula for carbon dioxide is CO2. 'Content' indicates a quantity per unit area. The 'atmosphere content' of a quantity refers to the vertical integral from the surface to the top of the atmosphere. For the content between specified levels in the atmosphere, standard names including 'content_of_atmosphere_layer' are used. The specification of a physical process by the phrase 'due_to_' process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. 'Emission' means emission from a primary source located anywhere within the atmosphere, including at the lower boundary (i.e.", "dimensions": "longitude latitude time", "out_name": "fProductDecomp", "type": "real", @@ -1925,8 +1925,8 @@ "fProductDecompLut": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "tendency_of_atmospheric_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_wood_and_agricultural_product_pool", - "units": "kg s-1", + "standard_name": "tendency_of_atmosphere_mass_content_of_carbon_dioxide_expressed_as_carbon_due_to_emission_from_forestry_and_agricultural_products", + "units": "kg m-2 s-1", "cell_methods": "area: time: mean where landuse", "cell_measures": "area: areacella", "long_name": "flux from wood and agricultural product pools on land use tile into atmosphere", @@ -2048,81 +2048,9 @@ "ok_min_mean_abs": "", "ok_max_mean_abs": "" }, - "fbddtdic": { - "frequency": "mon", - "modeling_realm": "ocnBgChem", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon_due_to_biological_processes", - "units": "mol m-2 s-1", - "cell_methods": "area: mean where sea time: mean", - "cell_measures": "area: areacello volume: volcello", - "long_name": "Rate of Change of Dissolved Inorganic Carbon due to Biological Activity", - "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic carbon", - "dimensions": "longitude latitude olevel time", - "out_name": "fbddtdic", - "type": "real", - "positive": "", - "valid_min": "", - "valid_max": "", - "ok_min_mean_abs": "", - "ok_max_mean_abs": "" - }, - "fbddtdin": { - "frequency": "mon", - "modeling_realm": "ocnBgChem", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen_due_to_biological_processes", - "units": "mol m-2 s-1", - "cell_methods": "area: mean where sea time: mean", - "cell_measures": "area: areacello volume: volcello", - "long_name": "Rate of Change of Dissolved Inorganic Nitrogen due to Biological Activity", - "comment": "vertical integral of net biological terms in time rate of change of nitrogen nutrients (e.g. NO3+NH4)", - "dimensions": "longitude latitude olevel time", - "out_name": "fbddtdin", - "type": "real", - "positive": "", - "valid_min": "", - "valid_max": "", - "ok_min_mean_abs": "", - "ok_max_mean_abs": "" - }, - "fbddtdip": { - "frequency": "mon", - "modeling_realm": "ocnBgChem", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus_due_to_biological_processes", - "units": "mol m-2 s-1", - "cell_methods": "area: mean where sea time: mean", - "cell_measures": "area: areacello volume: volcello", - "long_name": "Rate of Change of Dissolved Inorganic Phosphorus due to Biological Activity", - "comment": "vertical integral of net biological terms in time rate of change of phosphate", - "dimensions": "longitude latitude olevel time", - "out_name": "fbddtdip", - "type": "real", - "positive": "", - "valid_min": "", - "valid_max": "", - "ok_min_mean_abs": "", - "ok_max_mean_abs": "" - }, - "fbddtdisi": { - "frequency": "mon", - "modeling_realm": "ocnBgChem", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon_due_to_biological_processes", - "units": "mol m-2 s-1", - "cell_methods": "area: mean where sea time: mean", - "cell_measures": "area: areacello volume: volcello", - "long_name": "Rate of Change of Dissolved Inorganic Silicon due to Biological Activity", - "comment": "vertical integral of net biological terms in time rate of change of dissolved inorganic silicate", - "dimensions": "longitude latitude olevel time", - "out_name": "fbddtdisi", - "type": "real", - "positive": "", - "valid_min": "", - "valid_max": "", - "ok_min_mean_abs": "", - "ok_max_mean_abs": "" - }, "fddtalk": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -2138,105 +2066,15 @@ "ok_min_mean_abs": "", "ok_max_mean_abs": "" }, - "fddtdic": { - "frequency": "mon", - "modeling_realm": "ocnBgChem", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon", - "units": "mol m-2 s-1", - "cell_methods": "area: mean where sea time: mean", - "cell_measures": "area: areacello volume: volcello", - "long_name": "Rate of Change of Net Dissolved Inorganic Carbon", - "comment": "'Content' indicates a quantity per unit area. 'tendency_of_X' means derivative of X with respect to time. 'Dissolved inorganic carbon' describes a family of chemical species in solution, including carbon dioxide, carbonic acid and the carbonate and bicarbonate anions. 'Dissolved inorganic carbon' isthe term used in standard names for all species belonging to the family that are represented within a given model. The list of individual species that are included in a quantity having a group chemical standard name can vary between models. Where possible, the data variable should be accompanied by a complete description of the species represented, for example, by using a comment attribute.", - "dimensions": "longitude latitude olevel time", - "out_name": "fddtdic", - "type": "real", - "positive": "", - "valid_min": "", - "valid_max": "", - "ok_min_mean_abs": "", - "ok_max_mean_abs": "" - }, - "fddtdife": { - "frequency": "mon", - "modeling_realm": "ocnBgChem", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron", - "units": "mol m-2 s-1", - "cell_methods": "area: mean where sea time: mean", - "cell_measures": "area: areacello volume: volcello", - "long_name": "Rate of Change of Net Dissolved Inorganic Iron", - "comment": "vertical integral of net time rate of change of dissolved inorganic iron", - "dimensions": "longitude latitude olevel time", - "out_name": "fddtdife", - "type": "real", - "positive": "", - "valid_min": "", - "valid_max": "", - "ok_min_mean_abs": "", - "ok_max_mean_abs": "" - }, - "fddtdin": { - "frequency": "mon", - "modeling_realm": "ocnBgChem", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen", - "units": "mol m-2 s-1", - "cell_methods": "area: mean where sea time: mean", - "cell_measures": "area: areacello volume: volcello", - "long_name": "Rate of Change of Net Dissolved Inorganic Nitrogen", - "comment": "Net time rate of change of nitrogen nutrients (e.g. NO3+NH4)", - "dimensions": "longitude latitude olevel time", - "out_name": "fddtdin", - "type": "real", - "positive": "", - "valid_min": "", - "valid_max": "", - "ok_min_mean_abs": "", - "ok_max_mean_abs": "" - }, - "fddtdip": { - "frequency": "mon", - "modeling_realm": "ocnBgChem", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus", - "units": "mol m-2 s-1", - "cell_methods": "area: mean where sea time: mean", - "cell_measures": "area: areacello volume: volcello", - "long_name": "Rate of Change of Net Dissolved Inorganic Phosphate", - "comment": "vertical integral of net time rate of change of phosphate", - "dimensions": "longitude latitude olevel time", - "out_name": "fddtdip", - "type": "real", - "positive": "", - "valid_min": "", - "valid_max": "", - "ok_min_mean_abs": "", - "ok_max_mean_abs": "" - }, - "fddtdisi": { - "frequency": "mon", - "modeling_realm": "ocnBgChem", - "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon", - "units": "mol m-2 s-1", - "cell_methods": "area: mean where sea time: mean", - "cell_measures": "area: areacello volume: volcello", - "long_name": "Rate of Change of Net Dissolved Inorganic Silicon", - "comment": "vertical integral of net time rate of change of dissolved inorganic silicate", - "dimensions": "longitude latitude olevel time", - "out_name": "fddtdisi", - "type": "real", - "positive": "", - "valid_min": "", - "valid_max": "", - "ok_min_mean_abs": "", - "ok_max_mean_abs": "" - }, "fg14co2": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon14_dioxide_abiotic_analogue_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello", "long_name": "Total air-sea flux of 14CO2", - "comment": "The surface called 'surface' means the lower boundary of the atmosphere. 'Downward' indicates a vector component which is positive when directed downward (negative upward). In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. In ocean biogeochemistry models, an 'abiotic analogue' is used to simulate the effect on a modelled variable when biological effects on ocean carbon concentration and alkalinity are ignored. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. Carbon14 is a radioactive isotope of carbon having six protons and eight neutrons, used in radiocarbon dating.", + "comment": "alias::surface_downward_mass_flux_of_carbon14_dioxide_abiotic_analogue_expressed_as_carbon", "dimensions": "longitude latitude time", "out_name": "fg14co2", "type": "real", @@ -2248,7 +2086,7 @@ }, "fg14co2abio": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon14_dioxide_abiotic_analogue_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -2266,7 +2104,7 @@ }, "fgco2abio": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_abiotic_analogue_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -2284,7 +2122,7 @@ }, "fgco2nat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_natural_analogue_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -2429,7 +2267,7 @@ "gppc13": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "gross_primary_productivity_of_c13", + "standard_name": "gross_primary_productivity_of_biomass_expressed_as_13C", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -2447,7 +2285,7 @@ "gppc14": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "gross_primary_productivity_of_c14", + "standard_name": "gross_primary_productivity_of_biomass_expressed_as_14C", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -2471,7 +2309,7 @@ "cell_measures": "area: areacella", "long_name": "C3 grass Area Percentage", "comment": "Fraction of entire grid cell covered by C3 grass.", - "dimensions": "longitude latitude time typec3pft typenatgr", + "dimensions": "longitude latitude time typec3natg", "out_name": "grassFracC3", "type": "real", "positive": "", @@ -2489,7 +2327,7 @@ "cell_measures": "area: areacella", "long_name": "C4 grass Area Percentage", "comment": "Fraction of entire grid cell covered by C4 grass.", - "dimensions": "longitude latitude time typec4pft typenatgr", + "dimensions": "longitude latitude time typec4natg", "out_name": "grassFracC4", "type": "real", "positive": "", @@ -2645,7 +2483,7 @@ "intuadse": { "frequency": "mon", "modeling_realm": "atmos", - "standard_name": "vertical_integral_eastward_wind_by_dry_static_energy", + "standard_name": "eastward_atmosphere_dry_static_energy_transport_across_unit_distance", "units": "1.e6 J m-1 s-1", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -2663,7 +2501,7 @@ "intuaw": { "frequency": "mon", "modeling_realm": "atmos", - "standard_name": "vertical_integral_eastward_wind_by_total_water", + "standard_name": "eastward_atmosphere_water_transport_across_unit_distance", "units": "kg m-1 s-1", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -2681,7 +2519,7 @@ "intvadse": { "frequency": "mon", "modeling_realm": "atmos", - "standard_name": "vertical_integral_northward_wind_by_dry_static_energy", + "standard_name": "northward_atmosphere_dry_static_energy_transport_across_unit_distance", "units": "1.e6 J m-1 s-1", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -2699,7 +2537,7 @@ "intvaw": { "frequency": "mon", "modeling_realm": "atmos", - "standard_name": "vertical_integral_northward_wind_by_total_water", + "standard_name": "northward_atmosphere_dry_static_energy_transport_across_unit_distance", "units": "kg m-1 s-1", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -2717,16 +2555,16 @@ "irrLut": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "surface_downward_water_flux_due_to_irrigation", - "units": "kg s-1", + "standard_name": "surface_downward_mass_flux_of_water_due_to_irrigation", + "units": "kg m-2 s-1", "cell_methods": "area: time: mean where landuse", "cell_measures": "area: areacella", "long_name": "Irrigation flux including any irrigation for crops, trees, pasture, or urban lawns", - "comment": "", + "comment": "'Downward' indicates a vector component which is positive when directed downward (negative upward). The surface called 'surface' means the lower boundary of the atmosphere. In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. The specification of a physical process by the phrase 'due_to_' process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. 'Irrigation' includes water used to sustain crops, trees, pastures and urban lawns.", "dimensions": "longitude latitude landUse time", "out_name": "irrLut", "type": "real", - "positive": "", + "positive": "down", "valid_min": "", "valid_max": "", "ok_min_mean_abs": "", @@ -2794,7 +2632,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Load of Dust", - "comment": "", + "comment": "alias::atmosphere_mass_content_of_dust_dry_aerosol", "dimensions": "longitude latitude time", "out_name": "loaddust", "type": "real", @@ -2812,7 +2650,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Load of SO4", - "comment": "", + "comment": "alias::atmosphere_mass_content_of_sulfate_dry_aerosol", "dimensions": "longitude latitude time", "out_name": "loadso4", "type": "real", @@ -2830,7 +2668,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Load of Seasalt", - "comment": "", + "comment": "alias::atmosphere_mass_content_of_seasalt_dry_aerosol", "dimensions": "longitude latitude time", "out_name": "loadss", "type": "real", @@ -2969,12 +2807,12 @@ "mrlso": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "soil_liquid_water_content", + "standard_name": "liquid_water_content_of_soil_layer", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Soil Liquid Water Content", - "comment": "the mass (summed over all all layers) of liquid water.", + "comment": "The mass (summed over all all layers) of liquid water.", "dimensions": "longitude latitude time", "out_name": "mrlso", "type": "real", @@ -3113,7 +2951,7 @@ "nLand": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "total_land_nitrogen", + "standard_name": "mass_content_of_nitrogen_in_vegetation_and_litter_and_soil_and_forestry_and_agricultural_products", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -3131,12 +2969,12 @@ "nLeaf": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "leaf_nitrogen_content", + "standard_name": "leaf_mass_content_of_nitrogen", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Nitrogen Mass in Leaves", - "comment": "", + "comment": "'Content' indicates a quantity per unit area.", "dimensions": "longitude latitude time", "out_name": "nLeaf", "type": "real", @@ -3149,7 +2987,7 @@ "nLitter": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "litter_nitrogen_content", + "standard_name": "litter_mass_content_of_nitrogen", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -3167,12 +3005,12 @@ "nLitterCwd": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "litter_wood_debris_nitrogen_content", + "standard_name": "wood_debris_mass_content_of_nitrogen", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Nitrogen Mass in Coarse Woody Debris", - "comment": "", + "comment": "'Content' indicates a quantity per unit area. 'Wood debris' means dead organic matter composed of coarse wood. It is distinct from fine litter. The precise distinction between 'fine' and 'coarse' is model dependent. The sum of the quantities with standard names wood_debris_mass_content_of_nitrogen, surface_litter_mass_content_of_nitrogen and subsurface_litter_mass_content_of_nitrogen is the total nitrogen mass content of dead plant material.", "dimensions": "longitude latitude time", "out_name": "nLitterCwd", "type": "real", @@ -3185,12 +3023,12 @@ "nLitterSubSurf": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "subsurface_litter_nitrogen_content", + "standard_name": "subsurface_litter_mass_content_of_nitrogen", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Nitrogen Mass in below ground litter (non CWD)", - "comment": "", + "comment": "'Content' indicates a quantity per unit area. 'Litter' is dead plant material in or above the soil. It is distinct from coarse wood debris. The precise distinction between 'fine' and 'coarse' is model dependent. 'Subsurface litter' means the part of the litter mixed within the soil below the surface. The sum of the quantities with standard names wood_debris_mass_content_of_nitrogen, surface_litter_mass_content_of_nitrogen and subsurface_litter_mass_content_of_nitrogen is the total nitrogen mass content of dead plant material.", "dimensions": "longitude latitude time", "out_name": "nLitterSubSurf", "type": "real", @@ -3203,12 +3041,12 @@ "nLitterSurf": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "surface_litter_nitrogen_content", + "standard_name": "surface_litter_mass_content_of_nitrogen", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Nitrogen Mass in above ground litter (non CWD)", - "comment": "", + "comment": "'Content' indicates a quantity per unit area. 'Litter' is dead plant material in or above the soil. It is distinct from coarse wood debris. The precise distinction between 'fine' and 'coarse' is model dependent. 'Surface litter' means the part of the litter resting above the soil surface. The sum of the quantities with standard names wood_debris_mass_content_of_nitrogen, surface_litter_mass_content_of_nitrogen and subsurface_litter_mass_content_of_nitrogen is the total nitrogen mass content of dead plant material.", "dimensions": "longitude latitude time", "out_name": "nLitterSurf", "type": "real", @@ -3275,7 +3113,7 @@ "nOther": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "other_vegegtation_components_nitrogen_content", + "standard_name": "miscellaneous_living_matter_mass_content_of_nitrogen", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -3293,7 +3131,7 @@ "nProduct": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "nitrogen_content_of_products_of_anthropogenic_land_use_change", + "standard_name": "nitrogen_content_of_forestry_and_agricultural_products", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -3311,7 +3149,7 @@ "nRoot": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "root_nitrogen_content", + "standard_name": "root_mass_content_of_nitrogen", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -3347,7 +3185,7 @@ "nStem": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "stem_nitrogen_content", + "standard_name": "stem_mass_content_of_nitrogen", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -3365,7 +3203,7 @@ "nVeg": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "vegetation_nitrogen_content", + "standard_name": "vegetation_mass_content_of_nitrogen", "units": "kg m-2", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -3419,7 +3257,7 @@ "netAtmosLandC13Flux": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "net_atmos_to_land_C13_flux", + "standard_name": "surface_net_downward_mass_flux_of_13C_dioxide_expressed_as_13C_due_to_all_land_processes", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -3437,7 +3275,7 @@ "netAtmosLandC14Flux": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "net_atmos_to_land_C14_flux", + "standard_name": "surface_net_downward_mass_flux_of_14C_dioxide_expressed_as_14C_due_to_all_land_processes", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -3509,7 +3347,7 @@ "nppOther": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "net_primary_production_allocated_to_other", + "standard_name": "net_primary_productivity_of_biomass_expressed_as_carbon_accumulated_in_miscellaneous_living_matter", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -4054,7 +3892,7 @@ "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello volume: volcello", "long_name": "Sea Water Added Conservative Temperature", - "comment": "", + "comment": "The quantity with standard name sea_water_added_conservative_temperature is a passive tracer in an ocean model whose surface flux does not come from the atmosphere but is imposed externally upon the simulated climate system. The surface flux is expressed as a heat flux and converted to a passive tracer increment as if it were a heat flux being added to conservative temperature. The passive tracer is transported within the ocean as if it were conservative temperature. The passive tracer is zero in the control climate of the model. The passive tracer records added heat, as described for the CMIP6 FAFMIP experiment (doi:10.5194/gmd-9-3993-2016), following earlier ideas. Conservative Temperature is defined as part of the Thermodynamic Equation of Seawater 2010 (TEOS-10) which was adopted in 2010 by the International Oceanographic Commission (IOC).", "dimensions": "longitude latitude olevel time", "out_name": "pabigthetao", "type": "real", @@ -4091,7 +3929,7 @@ "cell_measures": "area: areacella", "long_name": "C3 Pasture Area Percentage", "comment": "Percentage of entire grid cell covered by C3 pasture", - "dimensions": "longitude latitude time typec3pft typepasture", + "dimensions": "longitude latitude time typec3pastures", "out_name": "pastureFracC3", "type": "real", "positive": "", @@ -4109,7 +3947,7 @@ "cell_measures": "area: areacella", "long_name": "C4 Pasture Area Percentage", "comment": "Percentage of entire grid cell covered by C4 pasture", - "dimensions": "longitude latitude time typec4pft typepasture", + "dimensions": "longitude latitude time typec4pastures", "out_name": "pastureFracC4", "type": "real", "positive": "", @@ -4121,12 +3959,12 @@ "pathetao": { "frequency": "mon", "modeling_realm": "ocean", - "standard_name": "sea_water_additional_potential_temperature", + "standard_name": "sea_water_added_potential_temperature", "units": "degC", "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello volume: volcello", - "long_name": "__unset__", - "comment": "", + "long_name": "Sea Water Additional Potential Temperature", + "comment": "The quantity with standard name sea_water_added_potential_temperature is a passive tracer in an ocean model whose surface flux does not come from the atmosphere but is imposed externally upon the simulated climate system. The surface flux is expressed as a heat flux and converted to a passive tracer increment as if it were a heat flux being added to potential temperature. The passive tracer is transported within the ocean as if it were potential temperature. The passive tracer is zero in the control climate of the model. The passive tracer records added heat, as described for the CMIP6 FAFMIP experiment (doi:10.5194/gmd-9-3993-2016), following earlier ideas. Potential temperature is the temperature a parcel of air or sea water would have if moved adiabatically to sea level pressure.", "dimensions": "longitude latitude olevel time", "out_name": "pathetao", "type": "real", @@ -4138,7 +3976,7 @@ }, "ppcalc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_calcareous_phytoplankton", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -4156,7 +3994,7 @@ }, "ppdiat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diatoms", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -4174,7 +4012,7 @@ }, "ppdiaz": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diazotrophs", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -4192,7 +4030,7 @@ }, "ppmisc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_miscellaneous_phytoplankton", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -4210,7 +4048,7 @@ }, "pppico": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_picophytoplankton", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -4252,7 +4090,7 @@ "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello volume: volcello", "long_name": "Sea Water Redistributed Conservative Temperature", - "comment": "", + "comment": "The quantity with standard name sea_water_redistributed_conservative_temperature is a passive tracer in an ocean model which is subject to an externally imposed perturbative surface heat flux. The passive tracer is initialised to the conservative temperature in the control climate before the perturbation is imposed. Its surface flux is the heat flux from the atmosphere, not including the imposed perturbation, and is converted to a passive tracer increment as if it were being added to conservative temperature. The passive tracer is transported within the ocean as if it were conservative temperature. The passive tracer records redistributed heat, as described for the CMIP6 FAFMIP experiment (doi:10.5194/gmd-9-3993-2016), following earlier ideas. Conservative Temperature is defined as part of the Thermodynamic Equation of Seawater 2010 (TEOS-10) which was adopted in 2010 by the International Oceanographic Commission (IOC).", "dimensions": "longitude latitude olevel time", "out_name": "prbigthetao", "type": "real", @@ -4287,8 +4125,8 @@ "units": "degC", "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello volume: volcello", - "long_name": "__unset__", - "comment": "", + "long_name": "Sea Water Resdistributed Potential Temperature", + "comment": "The quantity with standard name sea_water_redistributed_potential_temperature is a passive tracer in an ocean model which is subject to an externally imposed perturbative surface heat flux. The passive tracer is initialised to the potential temperature in the control climate before the perturbation is imposed. Its surface flux is the heat flux from the atmosphere, not including the imposed perturbation, and is converted to a passive tracer increment as if it were being added to potential temperature. The passive tracer is transported within the ocean as if it were potential temperature. The passive tracer records redistributed heat, as described for the CMIP6 FAFMIP experiment (doi:10.5194/gmd-9-3993-2016), following earlier ideas. Potential temperature is the temperature a parcel of air or sea water would have if moved adiabatically to sea level pressure.", "dimensions": "longitude latitude olevel time", "out_name": "prthetao", "type": "real", @@ -4337,7 +4175,7 @@ "raLeaf": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "autotrophic_respiration_from_leaves", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_leaves", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -4360,7 +4198,7 @@ "cell_methods": "area: time: mean where landuse", "cell_measures": "area: areacella", "long_name": "plant respiration on land use tile", - "comment": "'Respiration carbon' refers to the rate at which biomass is respired expressed as the mass of carbon which it contains. Plant respiration is the sum of respiration by parts of plants both above and below the soil. Plants which photosynthesise are autotrophs i.e. 'producers' of the biomass which they respire from inorganic precursors using sunlight for energy. In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics.", + "comment": "alias::plant_respiration_carbon_flux", "dimensions": "longitude latitude landUse time", "out_name": "raLut", "type": "real", @@ -4373,7 +4211,7 @@ "raOther": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "autotrophic_respiration", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_miscellaneous_living_matter", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -4391,7 +4229,7 @@ "raRoot": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "autotrophic_respiration_from_roots", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_roots", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -4427,7 +4265,7 @@ "raStem": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "autotrophic_respiration_from_stem", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration_in_stems", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -4607,7 +4445,7 @@ "rhLitter": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "heterotrophic_respiration_carbon_flux_from_litter", + "standard_name": "surface_upward_mass_flux_of_carbon_due_to_heterotrophic_respiration_in_litter", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -4630,7 +4468,7 @@ "cell_methods": "area: time: mean where landuse", "cell_measures": "area: areacella", "long_name": "soil heterotrophic respiration on land use tile", - "comment": "'Respiration carbon' refers to the rate at which biomass is respired expressed as the mass of carbon which it contains. Heterotrophic respiration is respiration by heterotrophs ('consumers'), which are organisms (including animals and decomposers) that consume other organisms or dead organic material, rather than synthesising organic material from inorganic precursors using energy from the environment (especially sunlight) as autotrophs ('producers') do. Heterotrophic respiration goes on both above and within the soil. In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics.", + "comment": "alias::heterotrophic_respiration_carbon_flux", "dimensions": "longitude latitude landUse time", "out_name": "rhLut", "type": "real", @@ -4661,7 +4499,7 @@ "rhSoil": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "heterotrophic_respiration_carbon_flux_from_soil", + "standard_name": "surface_upward_mass_flux_of_carbon_due_to_heterotrophic_respiration_in_soil", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -4697,7 +4535,7 @@ "rhc13": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "heterotrophic_respiration_c13_flux", + "standard_name": "surface_upward_mass_flux_of_13C_dioxide_expressed_as_13C_due_to_heterotrophic_respiration", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -4715,7 +4553,7 @@ "rhc14": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "heterotrophic_respiration_c14_flux", + "standard_name": "surface_upward_mass_flux_of_14C_dioxide_expressed_as_14C_due_to_heterotrophic_respiration", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -4792,7 +4630,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Surface Diffuse Downwelling Clear Sky Shortwave Radiation", - "comment": "", + "comment": "Downwelling radiation is radiation from above. It does not mean 'net downward'. When thought of as being incident on a surface, a radiative flux is sometimes called 'irradiance'. In addition, it is identical with the quantity measured by a cosine-collector light-meter and sometimes called 'vector irradiance'. 'Diffuse' radiation is radiation that has been scattered by particles in the atmosphere such as cloud droplets and aerosols. In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. The surface called 'surface' means the lower boundary of the atmosphere. A phrase 'assuming_condition' indicates that the named quantity is the value which would obtain if all aspects of the system were unaltered except for the assumption of the circumstances specified by the condition. 'shortwave' means shortwave radiation.", "dimensions": "longitude latitude time", "out_name": "rsdscsdiff", "type": "real", @@ -4810,7 +4648,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Surface Diffuse Downwelling Shortwave Radiation", - "comment": "", + "comment": "Downwelling radiation is radiation from above. It does not mean 'net downward'. 'Diffuse' radiation is radiation that has been scattered by particles in the atmosphere such as cloud droplets and aerosols. When thought of as being incident on a surface, a radiative flux is sometimes called 'irradiance'. In addition, it is identical with the quantity measured by a cosine-collector light-meter and sometimes called 'vector irradiance'. In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. The surface called 'surface' means the lower boundary of the atmosphere. 'shortwave' means shortwave radiation.", "dimensions": "longitude latitude time", "out_name": "rsdsdiff", "type": "real", @@ -4985,12 +4823,12 @@ "sweLut": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "snow_amount_expressed_as_liquid_water_depth", + "standard_name": "lwe_thickness_of_surface_snow_amount", "units": "m", "cell_methods": "area: time: mean where landuse", "cell_measures": "area: areacella", "long_name": "snow water equivalent on land use tile", - "comment": "", + "comment": "The surface called 'surface' means the lower boundary of the atmosphere. 'lwe' means liquid water equivalent. 'Amount' means mass per unit area. The construction lwe_thickness_of_X_amount or _content means the vertical extent of a layer of liquid water having the same mass per unit area. Surface amount refers to the amount on the ground, excluding that on the plant or vegetation canopy.", "dimensions": "longitude latitude landUse time", "out_name": "sweLut", "type": "real", @@ -5098,7 +4936,7 @@ "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello", "long_name": "20C isotherm depth", - "comment": "", + "comment": "This quantity, sometimes called the 'isotherm depth', is the depth (if it exists) at which the sea water potential temperature equals some specified value. This value should be specified in a scalar coordinate variable. Depth is the vertical distance below the surface. Potential temperature is the temperature a parcel of air or sea water would have if moved adiabatically to sea level pressure.", "dimensions": "longitude latitude time", "out_name": "t20d", "type": "real", @@ -5111,7 +4949,7 @@ "tSoilPools": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "soil_carbon_turnover_rate_by_pool", + "standard_name": "soil_pool_carbon_decay_rate", "units": "s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -5206,7 +5044,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "2m dewpoint temperature", - "comment": "", + "comment": "Dew point temperature is the temperature at which a parcel of air reaches saturation upon being cooled at constant pressure and specific humidity.", "dimensions": "longitude latitude time", "out_name": "tdps", "type": "real", @@ -5314,7 +5152,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Tendency of Specific Humidity Due to Stratiform Clouds and Precipitation", - "comment": "", + "comment": "The phrase 'tendency_of_X' means derivative of X with respect to time. 'Specific' means per unit mass. Specific humidity is the mass fraction of water vapor in (moist) air. The specification of a physical process by the phrase 'due_to_' process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. A variable with the standard name of tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation should contain the effects of all processes which convert stratiform clouds and precipitation to or from water vapor. In an atmosphere model, stratiform cloud is that produced by large-scale convergence (not the convection schemes).", "dimensions": "longitude latitude alevel time", "out_name": "tnhusscp", "type": "real", @@ -5327,7 +5165,7 @@ "tntd": { "frequency": "mon", "modeling_realm": "atmos", - "standard_name": "tendency_of_air_temperature_due_to_numerical_diffusion", + "standard_name": "tendency_of_air_temperature_due_to_diffusion", "units": "K s-1", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -5458,7 +5296,7 @@ "cell_methods": "area: time: mean", "cell_measures": "area: areacella", "long_name": "Tendency of Air Temperature Due to Stratiform Clouds and Precipitation", - "comment": "", + "comment": "The phrase 'tendency_of_X' means derivative of X with respect to time. Air temperature is the bulk temperature of the air, not the surface (skin) temperature. The specification of a physical process by the phrase 'due_to_' process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. A variable with the standard name tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation should contain net latent heating effects of all processes which convert stratiform clouds and precipitation between water vapour, liquid or ice phases. In an atmosphere model, stratiform cloud is that produced by large-scale convergence (not the convection schemes).", "dimensions": "longitude latitude alevel time", "out_name": "tntscp", "type": "real", @@ -6088,7 +5926,7 @@ "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Grid averaged methane production (methanogenesis) from wetlands", - "comment": "", + "comment": "The surface called 'surface' means the lower boundary of the atmosphere. 'Upward' indicates a vector component which is positive when directed upward (negative downward). In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. The chemical formula for methane is CH4. The mass is the total mass of the molecules. The phrase 'tendency_of_X' means derivative of X with respect to time. The specification of a physical process by the phrase 'due_to_' process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. 'Emission' means emission from a primary source located anywhere within the atmosphere, including at the lower boundary (i.e. the surface of the earth). 'Emission' is a process entirely distinct from 're-emission' which is used in some standard names.", "dimensions": "longitude latitude time", "out_name": "wetlandCH4prod", "type": "real", @@ -6101,7 +5939,7 @@ "wetlandFrac": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "wetland_fraction", + "standard_name": "area_fraction", "units": "%", "cell_methods": "area: mean where land over all_area_types time: mean", "cell_measures": "area: areacella", diff --git a/TestTables/CMIP6_EmonZ.json b/TestTables/CMIP6_EmonZ.json index 9ce754b0..b402ad08 100644 --- a/TestTables/CMIP6_EmonZ.json +++ b/TestTables/CMIP6_EmonZ.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table EmonZ", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -148,7 +148,7 @@ "cell_methods": "longitude: mean (basin) time: mean", "cell_measures": "", "long_name": "Atlantic Northward Ocean Salt Transport", - "comment": "", + "comment": "'Northward' indicates a vector component which is positive when directed northward (negative southward). Ocean transport means transport by all processes, both sea water and sea ice.", "dimensions": "latitude basin time", "out_name": "sltnortha", "type": "real", @@ -197,7 +197,7 @@ "tntnogw": { "frequency": "mon", "modeling_realm": "atmos", - "standard_name": "temperature_tendency_due_to_dissipation_nonorographic_gravity_wave_drag", + "standard_name": "tendency_of_air_temperature_due_to_dissipation_of_nonorographic_gravity_waves", "units": "K s-1", "cell_methods": "longitude: mean time: mean", "cell_measures": "", @@ -215,7 +215,7 @@ "tntogw": { "frequency": "mon", "modeling_realm": "atmos", - "standard_name": "temperature_tendency_due_to_dissipation_orographic_gravity_wave_drag", + "standard_name": "tendency_of_air_temperature_due_to_dissipation_of_orographic_gravity_waves", "units": "K s-1", "cell_methods": "longitude: mean time: mean", "cell_measures": "", @@ -310,7 +310,7 @@ "cell_methods": "longitude: mean time: mean", "cell_measures": "", "long_name": "Tendency of Air Temperature Due to Stratiform Clouds and Precipitation", - "comment": "", + "comment": "The phrase 'tendency_of_X' means derivative of X with respect to time. Air temperature is the bulk temperature of the air, not the surface (skin) temperature. The specification of a physical process by the phrase 'due_to_' process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. A variable with the standard name tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation should contain net latent heating effects of all processes which convert stratiform clouds and precipitation between water vapour, liquid or ice phases. In an atmosphere model, stratiform cloud is that produced by large-scale convergence (not the convection schemes).", "dimensions": "latitude plev39 time", "out_name": "tntscp", "type": "real", diff --git a/TestTables/CMIP6_Esubhr.json b/TestTables/CMIP6_Esubhr.json index b3442f16..0f650e7e 100644 --- a/TestTables/CMIP6_Esubhr.json +++ b/TestTables/CMIP6_Esubhr.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Esubhr", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -400,7 +400,7 @@ "cell_methods": "area: point time: point", "cell_measures": "", "long_name": "Tendency of Specific Humidity Due to Stratiform Clouds and Precipitation", - "comment": "", + "comment": "The phrase 'tendency_of_X' means derivative of X with respect to time. 'Specific' means per unit mass. Specific humidity is the mass fraction of water vapor in (moist) air. The specification of a physical process by the phrase 'due_to_' process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. A variable with the standard name of tendency_of_specific_humidity_due_to_stratiform_cloud_and_precipitation should contain the effects of all processes which convert stratiform clouds and precipitation to or from water vapor. In an atmosphere model, stratiform cloud is that produced by large-scale convergence (not the convection schemes).", "dimensions": "alevel site time1", "out_name": "tnhusscp", "type": "real", @@ -431,7 +431,7 @@ "tntd": { "frequency": "subhrPt", "modeling_realm": "atmos", - "standard_name": "tendency_of_air_temperature_due_to_numerical_diffusion", + "standard_name": "tendency_of_air_temperature_due_to_diffusion", "units": "K s-1", "cell_methods": "area: point time: point", "cell_measures": "", @@ -544,7 +544,7 @@ "cell_methods": "area: point time: point", "cell_measures": "", "long_name": "Tendency of Air Temperature Due to Stratiform Clouds and Precipitation", - "comment": "", + "comment": "The phrase 'tendency_of_X' means derivative of X with respect to time. Air temperature is the bulk temperature of the air, not the surface (skin) temperature. The specification of a physical process by the phrase 'due_to_' process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. A variable with the standard name tendency_of_air_temperature_due_to_stratiform_cloud_and_precipitation should contain net latent heating effects of all processes which convert stratiform clouds and precipitation between water vapour, liquid or ice phases. In an atmosphere model, stratiform cloud is that produced by large-scale convergence (not the convection schemes).", "dimensions": "alevel site time1", "out_name": "tntscp", "type": "real", diff --git a/TestTables/CMIP6_Eyr.json b/TestTables/CMIP6_Eyr.json index 9d0da476..518c3727 100644 --- a/TestTables/CMIP6_Eyr.json +++ b/TestTables/CMIP6_Eyr.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Eyr", "realm": "land", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -40,7 +40,7 @@ "cell_methods": "area: mean where land time: point", "cell_measures": "area: areacella", "long_name": "Carbon Mass in Litter Pool", - "comment": "", + "comment": "alias::litter_carbon_content", "dimensions": "longitude latitude time1", "out_name": "cLitter", "type": "real", @@ -89,7 +89,7 @@ "cProductLut": { "frequency": "yrPt", "modeling_realm": "land", - "standard_name": "carbon_content_of_products_of_anthropogenic_land_use_change", + "standard_name": "carbon_content_of_forestry_and_agricultural_products", "units": "kg m-2", "cell_methods": "area: mean where landuse time: point", "cell_measures": "area: areacella", diff --git a/TestTables/CMIP6_IfxAnt.json b/TestTables/CMIP6_IfxAnt.json index a37ab8de..edecfb22 100644 --- a/TestTables/CMIP6_IfxAnt.json +++ b/TestTables/CMIP6_IfxAnt.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table IfxAnt", "realm": "landIce", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_IfxGre.json b/TestTables/CMIP6_IfxGre.json index e34e2624..3d782052 100644 --- a/TestTables/CMIP6_IfxGre.json +++ b/TestTables/CMIP6_IfxGre.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table IfxGre", "realm": "landIce", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_ImonAnt.json b/TestTables/CMIP6_ImonAnt.json index a416a607..ab34b299 100644 --- a/TestTables/CMIP6_ImonAnt.json +++ b/TestTables/CMIP6_ImonAnt.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table ImonAnt", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_ImonGre.json b/TestTables/CMIP6_ImonGre.json index cb75a75c..46df93cb 100644 --- a/TestTables/CMIP6_ImonGre.json +++ b/TestTables/CMIP6_ImonGre.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table ImonGre", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_IyrAnt.json b/TestTables/CMIP6_IyrAnt.json index 58a97a63..1934d0b9 100644 --- a/TestTables/CMIP6_IyrAnt.json +++ b/TestTables/CMIP6_IyrAnt.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table IyrAnt", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -377,7 +377,7 @@ "strbasemag": { "frequency": "yr", "modeling_realm": "landIce", - "standard_name": "magnitude_of_land_ice_basal_drag", + "standard_name": "land_ice_basal_drag", "units": "Pa", "cell_methods": "area: time: mean where ice_sheet", "cell_measures": "area: areacellg", diff --git a/TestTables/CMIP6_IyrGre.json b/TestTables/CMIP6_IyrGre.json index ca507fc7..9657d182 100644 --- a/TestTables/CMIP6_IyrGre.json +++ b/TestTables/CMIP6_IyrGre.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table IyrGre", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -377,7 +377,7 @@ "strbasemag": { "frequency": "yr", "modeling_realm": "landIce", - "standard_name": "magnitude_of_land_ice_basal_drag", + "standard_name": "land_ice_basal_drag", "units": "Pa", "cell_methods": "area: time: mean where ice_sheet", "cell_measures": "area: areacellg", diff --git a/TestTables/CMIP6_LImon.json b/TestTables/CMIP6_LImon.json index ae8c325f..beb17fc0 100644 --- a/TestTables/CMIP6_LImon.json +++ b/TestTables/CMIP6_LImon.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table LImon", "realm": "landIce land", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_Lmon.json b/TestTables/CMIP6_Lmon.json index cb547c76..123a2c53 100644 --- a/TestTables/CMIP6_Lmon.json +++ b/TestTables/CMIP6_Lmon.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Lmon", "realm": "land", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -130,7 +130,7 @@ "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Carbon Mass in Litter Pool", - "comment": "", + "comment": "alias::litter_carbon_content", "dimensions": "longitude latitude time", "out_name": "cLitter", "type": "real", @@ -148,7 +148,7 @@ "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Carbon Mass in Above-Ground Litter", - "comment": "", + "comment": "alias::surface_litter_carbon_content", "dimensions": "longitude latitude time", "out_name": "cLitterAbove", "type": "real", @@ -166,7 +166,7 @@ "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Carbon Mass in Below-Ground Litter", - "comment": "", + "comment": "alias::subsurface_litter_carbon_content", "dimensions": "longitude latitude time", "out_name": "cLitterBelow", "type": "real", @@ -418,7 +418,7 @@ "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Total Carbon Mass Flux from Vegetation to Litter", - "comment": "", + "comment": "alias::litter_carbon_flux", "dimensions": "longitude latitude time", "out_name": "fVegLitter", "type": "real", @@ -454,7 +454,7 @@ "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Carbon Mass Flux out of Atmosphere due to Gross Primary Production on Land", - "comment": "", + "comment": "'Production of carbon' means the production of biomass expressed as the mass of carbon which it contains. Gross primary production is the rate of synthesis of biomass from inorganic precursors by autotrophs ('producers'), for example, photosynthesis in plants or phytoplankton. The producers also respire some of this biomass and the difference is 'net_primary_production'. 'Productivity' means production per unit area. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A.", "dimensions": "longitude latitude time", "out_name": "gpp", "type": "real", @@ -634,7 +634,7 @@ "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Carbon Mass Flux out of Atmosphere due to Net Primary Production on Land", - "comment": "", + "comment": "'Production of carbon' means the production of biomass expressed as the mass of carbon which it contains. Net primary production is the excess of gross primary production (rate of synthesis of biomass from inorganic precursors) by autotrophs ('producers'), for example, photosynthesis in plants or phytoplankton, over the rate at which the autotrophs themselves respire some of this biomass. 'Productivity' means production per unit area. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A.", "dimensions": "longitude latitude time", "out_name": "npp", "type": "real", @@ -742,7 +742,7 @@ "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Carbon Mass Flux into Atmosphere due to Growth Autotrophic Respiration on Land", - "comment": "", + "comment": "alias::surface_upward_carbon_mass_flux_due_to_plant_respiration_for_biomass_growth", "dimensions": "longitude latitude time", "out_name": "rGrowth", "type": "real", @@ -760,7 +760,7 @@ "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", "long_name": "Carbon Mass Flux into Atmosphere due to Maintenance Autotrophic Respiration on Land", - "comment": "", + "comment": "alias::surface_upward_carbon_mass_flux_due_to_plant_respiration_for_biomass_maintenance", "dimensions": "longitude latitude time", "out_name": "rMaint", "type": "real", @@ -773,7 +773,7 @@ "ra": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "plant_respiration_carbon_flux", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_plant_respiration", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", @@ -809,7 +809,7 @@ "rh": { "frequency": "mon", "modeling_realm": "land", - "standard_name": "heterotrophic_respiration_carbon_flux", + "standard_name": "surface_upward_mass_flux_of_carbon_dioxide_expressed_as_carbon_due_to_heterotrophic_respiration", "units": "kg m-2 s-1", "cell_methods": "area: mean where land time: mean", "cell_measures": "area: areacella", diff --git a/TestTables/CMIP6_Oclim.json b/TestTables/CMIP6_Oclim.json index b18dad68..9a8ca329 100644 --- a/TestTables/CMIP6_Oclim.json +++ b/TestTables/CMIP6_Oclim.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Oclim", "realm": "ocean", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -94,7 +94,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Ocean Tracer Bolus Biharmonic Diffusivity", - "comment": "", + "comment": "alias::ocean_tracer_bolus_biharmonic_diffusivity", "dimensions": "longitude latitude olevel time2", "out_name": "diftrbbo", "type": "real", @@ -112,7 +112,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello", "long_name": "Ocean Tracer Bolus Biharmonic Diffusivity", - "comment": "", + "comment": "alias::ocean_tracer_bolus_biharmonic_diffusivity", "dimensions": "longitude latitude time2", "out_name": "diftrbbo", "type": "real", @@ -166,7 +166,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Ocean Tracer Epineutral Biharmonic Diffusivity", - "comment": "", + "comment": "Diffusivity is also sometimes known as the coefficient of diffusion. Diffusion occurs as a result of a gradient in the spatial distribution of mass concentration, temperature or momentum. The diffusivity may be very different in the vertical and horizontal directions. 'epineutral diffusivity' means a lateral diffusivity along a either a neutral or isopycnal density surface due to motion which is not resolved on the grid scale of an ocean model. The type of density surface is dependent on the model formulation. 'biharmonic diffusivity' means diffusivity for use with a biharmonic diffusion operator.", "dimensions": "longitude latitude olevel time2", "out_name": "diftrebo", "type": "real", @@ -184,7 +184,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello", "long_name": "Ocean Tracer Epineutral Biharmonic Diffusivity", - "comment": "", + "comment": "Diffusivity is also sometimes known as the coefficient of diffusion. Diffusion occurs as a result of a gradient in the spatial distribution of mass concentration, temperature or momentum. The diffusivity may be very different in the vertical and horizontal directions. 'epineutral diffusivity' means a lateral diffusivity along a either a neutral or isopycnal density surface due to motion which is not resolved on the grid scale of an ocean model. The type of density surface is dependent on the model formulation. 'biharmonic diffusivity' means diffusivity for use with a biharmonic diffusion operator.", "dimensions": "longitude latitude time2", "out_name": "diftrebo", "type": "real", @@ -238,7 +238,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Ocean Tracer XY Biharmonic Diffusivity", - "comment": "", + "comment": "Diffusivity is also sometimes known as the coefficient of diffusion. Diffusion occurs as a result of a gradient in the spatial distribution of mass concentration, temperature or momentum. The diffusivity may be very different in the vertical and horizontal directions. 'xy diffusivity' means the lateral along_coordinate component of diffusivity due to motion which is not resolved on the grid scale of the model. xy diffusivities are used in some ocean models to counteract the numerical instabilities inherent in certain implementations of rotated neutral diffusion. 'biharmonic diffusivity' means diffusivity for use with a biharmonic diffusion operator.", "dimensions": "longitude latitude olevel time2", "out_name": "diftrxybo", "type": "real", @@ -256,7 +256,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello", "long_name": "Ocean Tracer XY Biharmonic Diffusivity", - "comment": "", + "comment": "Diffusivity is also sometimes known as the coefficient of diffusion. Diffusion occurs as a result of a gradient in the spatial distribution of mass concentration, temperature or momentum. The diffusivity may be very different in the vertical and horizontal directions. 'xy diffusivity' means the lateral along_coordinate component of diffusivity due to motion which is not resolved on the grid scale of the model. xy diffusivities are used in some ocean models to counteract the numerical instabilities inherent in certain implementations of rotated neutral diffusion. 'biharmonic diffusivity' means diffusivity for use with a biharmonic diffusion operator.", "dimensions": "longitude latitude time2", "out_name": "diftrxybo", "type": "real", @@ -274,7 +274,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Ocean Tracer XY Laplacian Diffusivity", - "comment": "", + "comment": "Diffusivity is also sometimes known as the coefficient of diffusion. Diffusion occurs as a result of a gradient in the spatial distribution of mass concentration, temperature or momentum. The diffusivity may be very different in the vertical and horizontal directions. 'xy diffusivity' means the lateral along_coordinate component of diffusivity due to motion which is not resolved on the grid scale of the model. xy diffusivities are used in some ocean models to counteract the numerical instabilities inherent in certain implementations of rotated neutral diffusion. 'laplacian diffusivity' means diffusivity for use with a Laplacian diffusion operator.", "dimensions": "longitude latitude olevel time2", "out_name": "diftrxylo", "type": "real", @@ -292,7 +292,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello", "long_name": "Ocean Tracer XY Laplacian Diffusivity", - "comment": "", + "comment": "Diffusivity is also sometimes known as the coefficient of diffusion. Diffusion occurs as a result of a gradient in the spatial distribution of mass concentration, temperature or momentum. The diffusivity may be very different in the vertical and horizontal directions. 'xy diffusivity' means the lateral along_coordinate component of diffusivity due to motion which is not resolved on the grid scale of the model. xy diffusivities are used in some ocean models to counteract the numerical instabilities inherent in certain implementations of rotated neutral diffusion. 'laplacian diffusivity' means diffusivity for use with a Laplacian diffusion operator.", "dimensions": "longitude latitude time2", "out_name": "diftrxylo", "type": "real", @@ -328,7 +328,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Ocean Vertical Momentum Diffusivity due to Background", - "comment": "", + "comment": "Diffusivity is also sometimes known as the coefficient of diffusion. Diffusion occurs as a result of a gradient in the spatial distribution of mass concentration, temperature or momentum. The diffusivity may be very different in the vertical and horizontal directions. The construction vertical_X_diffusivity means the vertical component of thediffusivity of X due to motion which is not resolved on the grid scale of the model. 'Due to background' means caused by a time invariant imposed field which may be eitherconstant over the globe or spatially varying, depending on the ocean model used. The specification of a physical process by the phrase due_to_process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase.", "dimensions": "longitude latitude olevel time2", "out_name": "difvmbo", "type": "real", @@ -346,7 +346,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Ocean Vertical Momentum Diffusivity due to Form Drag", - "comment": "", + "comment": "Diffusivity is also sometimes known as the coefficient of diffusion. Diffusion occurs as a result of a gradient in the spatial distribution of mass concentration, temperature or momentum. The diffusivity may be very different in the vertical and horizontal directions. The construction vertical_X_diffusivity means the vertical component of thediffusivity of X due to motion which is not resolved on the grid scale of the model. 'Due to form drag' refers to a vertical diffusivity resulting from a model scheme representing mesoscale eddy-induced form drag. The specification of a physical process by the phrase due_to_process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase.", "dimensions": "longitude latitude olevel time2", "out_name": "difvmfdo", "type": "real", @@ -364,7 +364,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Ocean Vertical Momentum Diffusivity", - "comment": "", + "comment": "'Vertical momentum diffusivity' means the vertical component of the diffusivity of momentum due to motion which is not resolved on the grid scale of the model.", "dimensions": "longitude latitude olevel time2", "out_name": "difvmo", "type": "real", @@ -382,7 +382,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Ocean Vertical Momentum Diffusivity due to Tides", - "comment": "", + "comment": "Diffusivity is also sometimes known as the coefficient of diffusion. Diffusion occurs as a result of a gradient in the spatial distribution of mass concentration, temperature or momentum. The diffusivity may be very different in the vertical and horizontal directions. The construction vertical_X_diffusivity means the vertical component of thediffusivity of X due to motion which is not resolved on the grid scale of the model. 'Due to tides' means due to all astronomical gravity changes which manifest as tides.No distinction is made between different tidal components. The specification of a physicalprocess by the phrase due_to_process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase.", "dimensions": "longitude latitude olevel time2", "out_name": "difvmto", "type": "real", @@ -418,7 +418,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Ocean Vertical Tracer Diffusivity due to Background", - "comment": "", + "comment": "Diffusivity is also sometimes known as the coefficient of diffusion. Diffusion occurs as a result of a gradient in the spatial distribution of mass concentration, temperature or momentum. The diffusivity may be very different in the vertical and horizontal directions. The construction vertical_X_diffusivity means the vertical component of thediffusivity of X due to motion which is not resolved on the grid scale of the model. 'Due to background' means caused by a time invariant imposed field which may be eitherconstant over the globe or spatially varying, depending on the ocean model used. The specification of a physical process by the phrase due_to_process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase.", "dimensions": "longitude latitude olevel time2", "out_name": "difvtrbo", "type": "real", @@ -436,7 +436,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Ocean Vertical Tracer Diffusivity due to Tides", - "comment": "", + "comment": "Diffusivity is also sometimes known as the coefficient of diffusion. Diffusion occurs as a result of a gradient in the spatial distribution of mass concentration, temperature or momentum. The diffusivity may be very different in the vertical and horizontal directions. The construction vertical_X_diffusivity means the vertical component of thediffusivity of X due to motion which is not resolved on the grid scale of the model. 'Due to tides' means due to all astronomical gravity changes which manifest as tides.No distinction is made between different tidal components. The specification of a physicalprocess by the phrase due_to_process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase.", "dimensions": "longitude latitude olevel time2", "out_name": "difvtrto", "type": "real", @@ -454,7 +454,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Ocean Kinetic Energy Dissipation Per Unit Area due to Vertical Friction", - "comment": "", + "comment": "Friction, leading to the dissipation of kinetic energy, arises in ocean models as a result of the viscosity of sea water. Generally, the lateral (xy) viscosity is given a large value to maintain the numerical stability of the model. In contrast, the vertical viscosity is usually much smaller. The specification of a physical process by the phrase due_to_process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase.", "dimensions": "longitude latitude olevel time2", "out_name": "dispkevfo", "type": "real", @@ -562,7 +562,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Tendency of Ocean Potential Energy Content due to Tides", - "comment": "", + "comment": "'Content' indicates a quantity per unit area. Potential energy is the sum of the gravitational potential energy relative to the geoid and the centripetal potential energy. (The geopotential is the specific potential energy.) 'Due to tides' means due to all astronomical gravity changes which manifest as tides. No distinction is made between different tidal components. The specification of a physical process by the phrase due_to_process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. 'tendency_of_X' means derivative of X with respect to time.", "dimensions": "longitude latitude olevel time2", "out_name": "tnpeot", "type": "real", @@ -580,7 +580,7 @@ "cell_methods": "area: mean time: mean within years time: mean over years", "cell_measures": "area: areacello volume: volcello", "long_name": "Tendency of Ocean Potential Energy Content due to Background", - "comment": "", + "comment": "'Content' indicates a quantity per unit area. Potential energy is the sum of the gravitational potential energy relative to the geoid and the centripetal potential energy. (The geopotential is the specific potential energy.) 'Due to background' means caused by a time invariant imposed field which may be either constant over the globe or spatially varying, depending on the ocean model used. The specification of a physical process by the phrase due_to_process means that the quantity named is a single term in a sum of terms which together compose the general quantity named by omitting the phrase. 'tendency_of_X' means derivative of X with respect to time.", "dimensions": "longitude latitude olevel time2", "out_name": "tnpeotb", "type": "real", diff --git a/TestTables/CMIP6_Oday.json b/TestTables/CMIP6_Oday.json index 47b6a570..c0e4c6f5 100644 --- a/TestTables/CMIP6_Oday.json +++ b/TestTables/CMIP6_Oday.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Oday", - "realm": "ocnBgChem", - "table_date": "21 March 2018", + "realm": "ocnBgchem", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -16,7 +16,7 @@ "variable_entry": { "chlos": { "frequency": "day", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -40,7 +40,7 @@ "cell_methods": "area: mean time: maximum", "cell_measures": "area: areacello", "long_name": "Daily Maximum Ocean Mixed Layer Thickness Defined by Mixing Scheme", - "comment": "", + "comment": "The ocean mixed layer is the upper part of the ocean, regarded as being well-mixed. The base of the mixed layer defined by the mixing scheme is a diagnostic of ocean models.", "dimensions": "longitude latitude time", "out_name": "omldamax", "type": "real", @@ -52,7 +52,7 @@ }, "phycos": { "frequency": "day", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -94,7 +94,7 @@ "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello", "long_name": "Square of Sea Surface Salinity", - "comment": "", + "comment": "The phrase 'square_of_X' means X*X. Sea surface salinity is the salt concentration of sea water close to the sea surface, often on the Practical Salinity Scale of 1978. However, the unqualified term 'salinity' is generic and does not necessarily imply any particular method of calculation. The units of salinity are dimensionless and the units attribute should normally be given as 1e-3 or 0.001 i.e. parts per thousand. Sea surface salinity is often abbreviated as 'SSS'. For the salinity of sea water at a particular depth or layer, a data variable of 'sea_water_salinity' or one of the more precisely defined salinities should be used with a vertical coordinate axis.", "dimensions": "longitude latitude time", "out_name": "sossq", "type": "real", diff --git a/TestTables/CMIP6_Odec.json b/TestTables/CMIP6_Odec.json index cbf8195d..33dbb1d4 100644 --- a/TestTables/CMIP6_Odec.json +++ b/TestTables/CMIP6_Odec.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Odec", "realm": "ocean", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -185,7 +185,7 @@ "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", + "dimensions": "grid_latitude rho basin time", "out_name": "msftyrho", "type": "real", "positive": "", @@ -203,7 +203,7 @@ "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", + "dimensions": "grid_latitude olevel basin time", "out_name": "msftyz", "type": "real", "positive": "", diff --git a/TestTables/CMIP6_Ofx.json b/TestTables/CMIP6_Ofx.json index bbe0ba84..94ae4202 100644 --- a/TestTables/CMIP6_Ofx.json +++ b/TestTables/CMIP6_Ofx.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Ofx", "realm": "ocean", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_Omon.json b/TestTables/CMIP6_Omon.json index 5e9df0be..94dd4815 100644 --- a/TestTables/CMIP6_Omon.json +++ b/TestTables/CMIP6_Omon.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Omon", - "realm": "ocnBgChem", - "table_date": "21 March 2018", + "realm": "ocnBgchem", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -34,7 +34,7 @@ }, "arag": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -52,7 +52,7 @@ }, "bacc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_bacteria_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -70,7 +70,7 @@ }, "bfe": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -88,7 +88,7 @@ }, "bfeos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -142,7 +142,7 @@ }, "bsi": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -160,7 +160,7 @@ }, "bsios": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_silicon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -178,7 +178,7 @@ }, "calc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_calcite_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -232,7 +232,7 @@ }, "chl": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -250,7 +250,7 @@ }, "chlcalc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -268,7 +268,7 @@ }, "chlcalcos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -286,7 +286,7 @@ }, "chldiat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -304,7 +304,7 @@ }, "chldiatos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -322,7 +322,7 @@ }, "chldiaz": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -340,7 +340,7 @@ }, "chldiazos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -358,7 +358,7 @@ }, "chlmisc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -376,7 +376,7 @@ }, "chlmiscos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -394,7 +394,7 @@ }, "chlos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -412,7 +412,7 @@ }, "chlpico": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -430,7 +430,7 @@ }, "chlpicoos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -448,7 +448,7 @@ }, "co3": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -466,7 +466,7 @@ }, "co3abio": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_carbonate_abiotic_analogue_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -484,7 +484,7 @@ }, "co3nat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_carbonate_natural_analogue_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -502,7 +502,7 @@ }, "co3satarag": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_aragonite_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -520,7 +520,7 @@ }, "co3satcalc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_carbonate_expressed_as_carbon_at_equilibrium_with_pure_calcite_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -538,7 +538,7 @@ }, "detoc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_organic_detritus_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -556,7 +556,7 @@ }, "dfe": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -574,7 +574,7 @@ }, "dfeos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -592,7 +592,7 @@ }, "dissi13c": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon13_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -610,7 +610,7 @@ }, "dissi13cos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon13_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -628,7 +628,7 @@ }, "dissi14cabio": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon14_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -646,7 +646,7 @@ }, "dissi14cabioos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon14_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -664,7 +664,7 @@ }, "dissic": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -682,7 +682,7 @@ }, "dissicabio": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_abiotic_analogue_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -700,7 +700,7 @@ }, "dissicabioos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_abiotic_analogue_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -718,7 +718,7 @@ }, "dissicnat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_natural_analogue_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -736,7 +736,7 @@ }, "dissicnatos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_natural_analogue_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -754,7 +754,7 @@ }, "dissoc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_organic_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -772,7 +772,7 @@ }, "dmso": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dimethyl_sulfide_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -790,7 +790,7 @@ }, "dmsos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dimethyl_sulfide_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -808,7 +808,7 @@ }, "dpco2": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_carbon_dioxide_partial_pressure_difference_between_sea_water_and_air", "units": "Pa", "cell_methods": "area: mean where sea time: mean", @@ -826,7 +826,7 @@ }, "dpco2abio": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_carbon_dioxide_abiotic_analogue_partial_pressure_difference_between_sea_water_and_air", "units": "Pa", "cell_methods": "area: mean where sea time: mean", @@ -844,7 +844,7 @@ }, "dpco2nat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_carbon_dioxide_natural_analogue_partial_pressure_difference_between_sea_water_and_air", "units": "Pa", "cell_methods": "area: mean where sea time: mean", @@ -862,7 +862,7 @@ }, "dpo2": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_molecular_oxygen_partial_pressure_difference_between_sea_water_and_air", "units": "Pa", "cell_methods": "area: mean where sea time: mean", @@ -880,7 +880,7 @@ }, "eparag100": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -898,7 +898,7 @@ }, "epc100": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -916,7 +916,7 @@ }, "epcalc100": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -934,7 +934,7 @@ }, "epfe100": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -952,7 +952,7 @@ }, "epn100": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -970,7 +970,7 @@ }, "epp100": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -988,7 +988,7 @@ }, "epsi100": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1024,7 +1024,7 @@ }, "expc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1042,7 +1042,7 @@ }, "fbddtalk": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1060,7 +1060,7 @@ }, "fbddtdic": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon_due_to_biological_processes", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1078,7 +1078,7 @@ }, "fbddtdife": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron_due_to_biological_processes", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1096,7 +1096,7 @@ }, "fbddtdin": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen_due_to_biological_processes", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1114,7 +1114,7 @@ }, "fbddtdip": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus_due_to_biological_processes", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1132,7 +1132,7 @@ }, "fbddtdisi": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon_due_to_biological_processes", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1150,7 +1150,7 @@ }, "fddtalk": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "integral_wrt_depth_of_tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1168,7 +1168,7 @@ }, "fddtdic": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_carbon", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1186,7 +1186,7 @@ }, "fddtdife": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_iron", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1204,7 +1204,7 @@ }, "fddtdin": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_nitrogen", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1222,7 +1222,7 @@ }, "fddtdip": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_phosphorus", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1240,7 +1240,7 @@ }, "fddtdisi": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_dissolved_inorganic_silicon", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea (top 100m only) time: mean", @@ -1258,13 +1258,13 @@ }, "fg13co2": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon13_dioxide_abiotic_analogue_expressed_as_carbon13", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello", "long_name": "Surface Downward Flux of Abiotic 13CO2", - "comment": "The surface called 'surface' means the lower boundary of the atmosphere. 'Downward' indicates a vector component which is positive when directed downward (negative upward). In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. In ocean biogeochemistry models, an 'abiotic analogue' is used to simulate the effect on a modelled variable when biological effects on ocean carbon concentration and alkalinity are ignored. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. Carbon13 is a stable isotope of carbon having six protons and seven neutrons.", + "comment": "alias::surface_downward_mass_flux_of_carbon13_dioxide_abiotic_analogue_expressed_as_carbon13", "dimensions": "longitude latitude time depth0m", "out_name": "fg13co2", "type": "real", @@ -1276,7 +1276,7 @@ }, "fg14co2abio": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon14_dioxide_abiotic_analogue_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1330,7 +1330,7 @@ }, "fgco2": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1348,7 +1348,7 @@ }, "fgco2abio": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_abiotic_analogue_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1366,7 +1366,7 @@ }, "fgco2nat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_natural_analogue_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1384,7 +1384,7 @@ }, "fgdms": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_upward_mole_flux_of_dimethyl_sulfide", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1402,7 +1402,7 @@ }, "fgo2": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mole_flux_of_molecular_oxygen", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1474,7 +1474,7 @@ }, "frfe": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_sedimentation", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1492,7 +1492,7 @@ }, "fric": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_sedimentation", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1528,7 +1528,7 @@ }, "frn": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_denitrification_and_sedimentation", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1546,7 +1546,7 @@ }, "froc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_sedimentation", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1564,7 +1564,7 @@ }, "fsfe": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_deposition_and_runoff_and_sediment_dissolution", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1600,7 +1600,7 @@ }, "fsn": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_deposition_and_fixation_and_runoff", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1618,7 +1618,7 @@ }, "graz": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -2068,7 +2068,7 @@ }, "icfriver": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_inorganic_carbon_due_to_runoff_and_sediment_dissolution", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -2086,7 +2086,7 @@ }, "intdic": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "ocean_mass_content_of_dissolved_inorganic_carbon", "units": "kg m-2", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2104,7 +2104,7 @@ }, "intdoc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "ocean_mass_content_of_dissolved_organic_carbon", "units": "kg m-2", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2122,7 +2122,7 @@ }, "intparag": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_aragonite_expressed_as_carbon_due_to_biological_production", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2140,7 +2140,7 @@ }, "intpbfe": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_iron_due_to_biological_production", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2158,7 +2158,7 @@ }, "intpbn": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_nitrogen_due_to_biological_production", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2176,7 +2176,7 @@ }, "intpbp": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_phosphorus_due_to_biological_production", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2194,7 +2194,7 @@ }, "intpbsi": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_silicon_due_to_biological_production", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2212,7 +2212,7 @@ }, "intpcalcite": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_calcite_expressed_as_carbon_due_to_biological_production", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2230,7 +2230,7 @@ }, "intpn2": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_elemental_nitrogen_due_to_fixation", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2248,7 +2248,7 @@ }, "intpoc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "ocean_mass_content_of_particulate_organic_matter_expressed_as_carbon", "units": "kg m-2", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2266,7 +2266,7 @@ }, "intpp": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_phytoplankton", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2284,7 +2284,7 @@ }, "intppcalc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_calcareous_phytoplankton", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2302,7 +2302,7 @@ }, "intppdiat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_diatoms", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2320,7 +2320,7 @@ }, "intppdiaz": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_diazotrophs", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2338,7 +2338,7 @@ }, "intppmisc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_miscellaneous_phytoplankton", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2356,7 +2356,7 @@ }, "intppnitrate": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_due_to_nitrate_utilization", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2374,7 +2374,7 @@ }, "intpppico": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "net_primary_mole_productivity_of_biomass_expressed_as_carbon_by_picophytoplankton", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea depth: sum where sea time: mean", @@ -2392,7 +2392,7 @@ }, "limfecalc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "iron_growth_limitation_of_calcareous_phytoplankton", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2410,7 +2410,7 @@ }, "limfediat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "iron_growth_limitation_of_diatoms", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2428,7 +2428,7 @@ }, "limfediaz": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "iron_growth_limitation_of_diazotrophs", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2446,7 +2446,7 @@ }, "limfemisc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "iron_growth_limitation_of_miscellaneous_phytoplankton", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2464,7 +2464,7 @@ }, "limfepico": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "iron_growth_limitation_of_picophytoplankton", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2482,7 +2482,7 @@ }, "limirrcalc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "growth_limitation_of_calcareous_phytoplankton_due_to_solar_irradiance", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2500,7 +2500,7 @@ }, "limirrdiat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "growth_limitation_of_diatoms_due_to_solar_irradiance", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2518,7 +2518,7 @@ }, "limirrdiaz": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "growth_limitation_of_diazotrophs_due_to_solar_irradiance", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2536,7 +2536,7 @@ }, "limirrmisc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "growth_limitation_of_miscellaneous_phytoplankton_due_to_solar_irradiance", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2554,7 +2554,7 @@ }, "limirrpico": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "growth_limitation_of_picophytoplankton_due_to_solar_irradiance", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2572,7 +2572,7 @@ }, "limncalc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "nitrogen_growth_limitation_of_calcareous_phytoplankton", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2590,7 +2590,7 @@ }, "limndiat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "nitrogen_growth_limitation_of_diatoms", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2608,7 +2608,7 @@ }, "limndiaz": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "nitrogen_growth_limitation_of_diazotrophs", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2626,7 +2626,7 @@ }, "limnmisc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "nitrogen_growth_limitation_of_miscellaneous_phytoplankton", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2644,7 +2644,7 @@ }, "limnpico": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "nitrogen_growth_limitation_of_picophytoplankton", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -2903,7 +2903,7 @@ "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", + "dimensions": "grid_latitude rho basin time", "out_name": "msftyrho", "type": "real", "positive": "", @@ -2921,7 +2921,7 @@ "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", + "dimensions": "grid_latitude rho basin time", "out_name": "msftyrhompa", "type": "real", "positive": "", @@ -2939,7 +2939,7 @@ "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", + "dimensions": "grid_latitude olevel basin time", "out_name": "msftyz", "type": "real", "positive": "", @@ -2957,7 +2957,7 @@ "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", + "dimensions": "grid_latitude olevel basin time", "out_name": "msftyzmpa", "type": "real", "positive": "", @@ -2986,7 +2986,7 @@ }, "nh4": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_ammonium_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3004,7 +3004,7 @@ }, "no3": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_nitrate_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3022,7 +3022,7 @@ }, "no3os": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_nitrate_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3040,7 +3040,7 @@ }, "o2": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3058,7 +3058,7 @@ }, "o2min": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_shallowest_local_minimum_in_vertical_profile", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3076,7 +3076,7 @@ }, "o2os": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3094,7 +3094,7 @@ }, "o2sat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3112,7 +3112,7 @@ }, "o2satos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3148,7 +3148,7 @@ }, "ocfriver": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_ocean_mole_content_of_organic_carbon_due_to_runoff_and_sediment_dissolution", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -3184,7 +3184,7 @@ }, "ph": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sea_water_ph_reported_on_total_scale", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -3202,7 +3202,7 @@ }, "phabio": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sea_water_ph_abiotic_analogue_reported_on_total_scale", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -3220,7 +3220,7 @@ }, "phabioos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sea_water_ph_abiotic_analogue_reported_on_total_scale", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -3238,7 +3238,7 @@ }, "phnat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sea_water_ph_natural_analogue_reported_on_total_scale", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -3256,7 +3256,7 @@ }, "phnatos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sea_water_ph_natural_analogue_reported_on_total_scale", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -3274,7 +3274,7 @@ }, "phyc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3292,7 +3292,7 @@ }, "phycalc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_calcareous_phytoplankton_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3310,7 +3310,7 @@ }, "phycos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3328,7 +3328,7 @@ }, "phydiat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_diatoms_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3346,7 +3346,7 @@ }, "phydiaz": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_diazotrophs_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3364,7 +3364,7 @@ }, "phyfe": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3382,7 +3382,7 @@ }, "phyfeos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3400,7 +3400,7 @@ }, "phymisc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_miscellaneous_phytoplankton_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3418,7 +3418,7 @@ }, "phyn": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3436,7 +3436,7 @@ }, "phynos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3454,7 +3454,7 @@ }, "phyp": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3472,7 +3472,7 @@ }, "phypico": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_picophytoplankton_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3490,7 +3490,7 @@ }, "phypos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3508,7 +3508,7 @@ }, "physi": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3526,7 +3526,7 @@ }, "physios": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3544,7 +3544,7 @@ }, "po4": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3562,7 +3562,7 @@ }, "pon": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3580,7 +3580,7 @@ }, "ponos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3598,7 +3598,7 @@ }, "pop": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3616,7 +3616,7 @@ }, "popos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3634,7 +3634,7 @@ }, "pp": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -3814,7 +3814,7 @@ }, "si": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3832,7 +3832,7 @@ }, "sios": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -3982,7 +3982,7 @@ "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello", "long_name": "Square of Sea Surface Salinity", - "comment": "", + "comment": "The phrase 'square_of_X' means X*X. Sea surface salinity is the salt concentration of sea water close to the sea surface, often on the Practical Salinity Scale of 1978. However, the unqualified term 'salinity' is generic and does not necessarily imply any particular method of calculation. The units of salinity are dimensionless and the units attribute should normally be given as 1e-3 or 0.001 i.e. parts per thousand. Sea surface salinity is often abbreviated as 'SSS'. For the salinity of sea water at a particular depth or layer, a data variable of 'sea_water_salinity' or one of the more precisely defined salinities should be used with a vertical coordinate axis.", "dimensions": "longitude latitude time", "out_name": "sossq", "type": "real", @@ -3994,7 +3994,7 @@ }, "spco2": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_partial_pressure_of_carbon_dioxide_in_sea_water", "units": "Pa", "cell_methods": "area: mean where sea time: mean", @@ -4012,7 +4012,7 @@ }, "spco2abio": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_carbon_dioxide_abiotic_analogue_partial_pressure_difference_between_sea_water_and_air", "units": "Pa", "cell_methods": "area: mean where sea time: mean", @@ -4030,7 +4030,7 @@ }, "spco2nat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_carbon_dioxide_natural_analogue_partial_pressure_difference_between_sea_water_and_air", "units": "Pa", "cell_methods": "area: mean where sea time: mean", @@ -4048,7 +4048,7 @@ }, "talk": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sea_water_alkalinity_expressed_as_mole_equivalent", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -4066,7 +4066,7 @@ }, "talknat": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sea_water_alkalinity_natural_analogue_expressed_as_mole_equivalent", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -4084,7 +4084,7 @@ }, "talknatos": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sea_water_alkalinity_natural_analogue_expressed_as_mole_equivalent", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -4642,7 +4642,7 @@ }, "zmeso": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_mesozooplankton_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -4660,7 +4660,7 @@ }, "zmicro": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_microzooplankton_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -4678,7 +4678,7 @@ }, "zmisc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_miscellaneous_zooplankton_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -4696,7 +4696,7 @@ }, "zo2min": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "depth_at_shallowest_local_minimum_in_vertical_profile_of_mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", "units": "m", "cell_methods": "area: mean where sea time: mean", @@ -4714,7 +4714,7 @@ }, "zooc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_zooplankton_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -4786,7 +4786,7 @@ }, "zsatarag": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "minimum_depth_of_aragonite_undersaturation_in_sea_water", "units": "m", "cell_methods": "area: mean where sea time: mean", @@ -4804,7 +4804,7 @@ }, "zsatcalc": { "frequency": "mon", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "minimum_depth_of_calcite_undersaturation_in_sea_water", "units": "m", "cell_methods": "area: mean where sea time: mean", diff --git a/TestTables/CMIP6_Oyr.json b/TestTables/CMIP6_Oyr.json index 3744ca48..0d8cbc05 100644 --- a/TestTables/CMIP6_Oyr.json +++ b/TestTables/CMIP6_Oyr.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table Oyr", - "realm": "ocnBgChem", - "table_date": "21 March 2018", + "realm": "ocnBgchem", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -16,7 +16,7 @@ "variable_entry": { "bddtalk": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_sea_water_alkalinity_expressed_as_mole_equivalent_due_to_biological_processes", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -34,7 +34,7 @@ }, "bddtdic": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_carbon_in_sea_water_due_to_biological_processes", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -52,7 +52,7 @@ }, "bddtdife": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_iron_in_sea_water_due_to_biological_processes", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -70,7 +70,7 @@ }, "bddtdin": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_nitrogen_in_sea_water_due_to_biological_processes", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -88,7 +88,7 @@ }, "bddtdip": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_phosphorus_in_sea_water_due_to_biological_processes", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -106,7 +106,7 @@ }, "bddtdisi": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_dissolved_inorganic_silicon_in_sea_water_due_to_biological_processes", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -124,7 +124,7 @@ }, "bfe": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_iron_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -142,7 +142,7 @@ }, "bsi": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_matter_expressed_as_silicon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -196,7 +196,7 @@ }, "chl": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_phytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -214,7 +214,7 @@ }, "chlcalc": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_calcareous_phytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -232,7 +232,7 @@ }, "chldiat": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_diatoms_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -250,7 +250,7 @@ }, "chldiaz": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_diazotrophs_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -268,7 +268,7 @@ }, "chlmisc": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_miscellaneous_phytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -286,7 +286,7 @@ }, "chlpico": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mass_concentration_of_picophytoplankton_expressed_as_chlorophyll_in_sea_water", "units": "kg m-3", "cell_methods": "area: mean where sea time: mean", @@ -304,7 +304,7 @@ }, "darag": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_dissolution", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -322,7 +322,7 @@ }, "dcalc": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_dissolution", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -340,7 +340,7 @@ }, "dfe": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_iron_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -484,7 +484,7 @@ }, "dissi13c": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon13_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -502,7 +502,7 @@ }, "dissi14cabio": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon14_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -520,7 +520,7 @@ }, "dissicabio": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_abiotic_analogue_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -538,7 +538,7 @@ }, "dissicnat": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_carbon_natural_analogue_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -556,7 +556,7 @@ }, "dmso": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dimethyl_sulfide_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -574,7 +574,7 @@ }, "exparag": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_aragonite_expressed_as_carbon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -592,7 +592,7 @@ }, "expc": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_organic_matter_expressed_as_carbon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -610,7 +610,7 @@ }, "expcalc": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_calcite_expressed_as_carbon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -628,7 +628,7 @@ }, "expfe": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_iron_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -646,7 +646,7 @@ }, "expn": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_organic_nitrogen_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -664,7 +664,7 @@ }, "expp": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_organic_phosphorus_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -682,7 +682,7 @@ }, "expsi": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sinking_mole_flux_of_particulate_silicon_in_sea_water", "units": "mol m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -700,7 +700,7 @@ }, "fediss": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_dissolution_from_inorganic_particles", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -718,7 +718,7 @@ }, "fescav": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_dissolved_iron_in_sea_water_due_to_scavenging_by_inorganic_particles", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -736,13 +736,13 @@ }, "fg13co2": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon13_dioxide_abiotic_analogue_expressed_as_carbon13", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", "cell_measures": "area: areacello", "long_name": "Surface Downward Flux of Abiotic 13CO2", - "comment": "The surface called 'surface' means the lower boundary of the atmosphere. 'Downward' indicates a vector component which is positive when directed downward (negative upward). In accordance with common usage in geophysical disciplines, 'flux' implies per unit area, called 'flux density' in physics. In ocean biogeochemistry models, an 'abiotic analogue' is used to simulate the effect on a modelled variable when biological effects on ocean carbon concentration and alkalinity are ignored. The phrase 'expressed_as' is used in the construction A_expressed_as_B, where B is a chemical constituent of A. It means that the quantity indicated by the standard name is calculated solely with respect to the B contained in A, neglecting all other chemical constituents of A. Carbon13 is a stable isotope of carbon having six protons and seven neutrons.", + "comment": "alias::surface_downward_mass_flux_of_carbon13_dioxide_abiotic_analogue_expressed_as_carbon13", "dimensions": "longitude latitude time", "out_name": "fg13co2", "type": "real", @@ -754,7 +754,7 @@ }, "fg14co2abio": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon14_dioxide_abiotic_analogue_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -772,7 +772,7 @@ }, "fgco2": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -790,7 +790,7 @@ }, "fgco2abio": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_abiotic_analogue_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -808,7 +808,7 @@ }, "fgco2nat": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "surface_downward_mass_flux_of_carbon_dioxide_natural_analogue_expressed_as_carbon", "units": "kg m-2 s-1", "cell_methods": "area: mean where sea time: mean", @@ -826,7 +826,7 @@ }, "graz": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_grazing_of_phytoplankton", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -844,7 +844,7 @@ }, "no3": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_nitrate_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -862,7 +862,7 @@ }, "o2": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -880,7 +880,7 @@ }, "o2sat": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_molecular_oxygen_in_sea_water_at_saturation", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -1258,7 +1258,7 @@ }, "parag": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_aragonite_expressed_as_carbon_in_sea_water_due_to_biological_production", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1276,7 +1276,7 @@ }, "pbfe": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_iron_in_sea_water_due_to_biological_production", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1294,7 +1294,7 @@ }, "pbsi": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_silicon_in_sea_water_due_to_biological_production", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1312,7 +1312,7 @@ }, "pcalc": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_calcite_expressed_as_carbon_in_sea_water_due_to_biological_production", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1330,7 +1330,7 @@ }, "phabio": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sea_water_ph_abiotic_analogue_reported_on_total_scale", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -1348,7 +1348,7 @@ }, "phnat": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sea_water_ph_natural_analogue_reported_on_total_scale", "units": "1", "cell_methods": "area: mean where sea time: mean", @@ -1366,7 +1366,7 @@ }, "phyc": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_carbon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -1384,7 +1384,7 @@ }, "phyfe": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_iron_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -1402,7 +1402,7 @@ }, "phyn": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_nitrogen_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -1420,7 +1420,7 @@ }, "phyp": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_phosphorus_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -1438,7 +1438,7 @@ }, "physi": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_phytoplankton_expressed_as_silicon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -1456,7 +1456,7 @@ }, "pnitrate": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_nitrate_utilization", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1474,7 +1474,7 @@ }, "pon": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_nitrogen_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -1492,7 +1492,7 @@ }, "pop": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_particulate_organic_matter_expressed_as_phosphorus_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -1510,7 +1510,7 @@ }, "pp": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1528,7 +1528,7 @@ }, "ppcalc": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_calcareous_phytoplankton", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1546,7 +1546,7 @@ }, "ppdiat": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diatoms", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1564,7 +1564,7 @@ }, "ppdiaz": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_diazotrophs", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1582,7 +1582,7 @@ }, "ppmisc": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_miscellaneous_phytoplankton", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1600,7 +1600,7 @@ }, "pppico": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_net_primary_production_by_picophytoplankton", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1618,7 +1618,7 @@ }, "remoc": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "tendency_of_mole_concentration_of_particulate_organic_matter_expressed_as_carbon_in_sea_water_due_to_remineralization", "units": "mol m-3 s-1", "cell_methods": "area: mean where sea time: mean", @@ -1672,7 +1672,7 @@ }, "si": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "mole_concentration_of_dissolved_inorganic_silicon_in_sea_water", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", @@ -1708,7 +1708,7 @@ }, "talknat": { "frequency": "yr", - "modeling_realm": "ocnBgChem", + "modeling_realm": "ocnBgchem", "standard_name": "sea_water_alkalinity_natural_analogue_expressed_as_mole_equivalent", "units": "mol m-3", "cell_methods": "area: mean where sea time: mean", diff --git a/TestTables/CMIP6_SIday.json b/TestTables/CMIP6_SIday.json index 8199ef8f..60fd5a01 100644 --- a/TestTables/CMIP6_SIday.json +++ b/TestTables/CMIP6_SIday.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table SIday", "realm": "seaIce", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_SImon.json b/TestTables/CMIP6_SImon.json index c07e4249..c1002b75 100644 --- a/TestTables/CMIP6_SImon.json +++ b/TestTables/CMIP6_SImon.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table SImon", "realm": "seaIce", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", @@ -269,7 +269,7 @@ "sidmassgrowthwat": { "frequency": "mon", "modeling_realm": "seaIce", - "standard_name": "tendency_of_sea_ice_amount_due_to_freezing_in_open_water", + "standard_name": "tendency_of_sea_ice_amount_due_to_frazil_ice_accumulation_in_leads", "units": "kg m-2 s-1", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -521,7 +521,7 @@ "siflcondtop": { "frequency": "mon", "modeling_realm": "seaIce", - "standard_name": "conductive_heat_flux_at_sea_ice_surface", + "standard_name": "surface_downward_sensible_heat_flux", "units": "W m-2", "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)", "cell_measures": "area: areacello OR areacella", @@ -539,7 +539,7 @@ "siflfwbot": { "frequency": "mon", "modeling_realm": "seaIce", - "standard_name": "water_flux_into_sea_water_from_sea_ice", + "standard_name": "water_flux_into_sea_water_due_to_sea_ice_thermodynamics", "units": "kg m-2 s-1", "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc or siconca)", "cell_measures": "area: areacello OR areacella", @@ -845,7 +845,7 @@ "siitdconc": { "frequency": "mon", "modeling_realm": "seaIce", - "standard_name": "sea_ice_area_fraction_over_categories", + "standard_name": "sea_ice_area_fraction", "units": "%", "cell_methods": "area: time: mean where sea_ice (comment: mask=siconc)", "cell_measures": "area: areacella", @@ -863,7 +863,7 @@ "siitdsnconc": { "frequency": "mon", "modeling_realm": "seaIce", - "standard_name": "snow_area_fraction_over_categories", + "standard_name": "surface_snow_area_fraction", "units": "%", "cell_methods": "area: time: mean where sea_ice (comment: mask=siitdconc)", "cell_measures": "area: areacella", @@ -881,7 +881,7 @@ "siitdsnthick": { "frequency": "mon", "modeling_realm": "seaIce", - "standard_name": "snow_thickness_over_categories", + "standard_name": "surface_snow_thickness", "units": "m", "cell_methods": "area: time: mean where sea_ice (comment: mask=siitdconc)", "cell_measures": "area: areacella", @@ -899,7 +899,7 @@ "siitdthick": { "frequency": "mon", "modeling_realm": "seaIce", - "standard_name": "sea_ice_thickness_over_categories", + "standard_name": "sea_ice_thickness", "units": "m", "cell_methods": "area: time: mean where sea_ice (comment: mask=siitdconc)", "cell_measures": "area: areacella", @@ -1097,7 +1097,7 @@ "sishevel": { "frequency": "monPt", "modeling_realm": "seaIce", - "standard_name": "maximum_shear_of_sea_ice_velocity", + "standard_name": "sea_ice_second_invariant_of_horizontal_strain_tensor_expressed_as_effective_stress", "units": "s-1", "cell_methods": "area: mean where sea_ice (comment: mask=siconc) time: point", "cell_measures": "area: areacello", @@ -1205,7 +1205,7 @@ "sistremax": { "frequency": "monPt", "modeling_realm": "seaIce", - "standard_name": "maximum_shear_stress", + "standard_name": "sea_ice_second_invariant_of_horizontal_stress_tensor_expressed_as_effective_stress", "units": "N m-1", "cell_methods": "area: mean where sea_ice (comment: mask=siconc) time: point", "cell_measures": "area: areacello", @@ -1223,7 +1223,7 @@ "sistresave": { "frequency": "monPt", "modeling_realm": "seaIce", - "standard_name": "average_normal_stress", + "standard_name": "sea_ice_trace_of_horizontal_stress_tensor", "units": "N m-1", "cell_methods": "area: mean where sea_ice (comment: mask=siconc) time: point", "cell_measures": "area: areacello", @@ -1565,7 +1565,7 @@ "sndmasssubl": { "frequency": "mon", "modeling_realm": "seaIce", - "standard_name": "surface_snow_sublimation_flux", + "standard_name": "surface_snow_and_ice_sublimation_flux", "units": "kg m-2 s-1", "cell_methods": "area: time: mean", "cell_measures": "area: areacella", @@ -1601,7 +1601,7 @@ "snmassacrossline": { "frequency": "mon", "modeling_realm": "seaIce", - "standard_name": "snow_mass_transport_across_line", + "standard_name": "snow_transport_across_line_due_to_sea_ice_dynamics", "units": "kg s-1", "cell_methods": "time: mean", "cell_measures": "", diff --git a/TestTables/CMIP6_coordinate.json b/TestTables/CMIP6_coordinate.json index 689272c7..e73c256e 100644 --- a/TestTables/CMIP6_coordinate.json +++ b/TestTables/CMIP6_coordinate.json @@ -20,7 +20,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "alt16": { "standard_name": "altitude", @@ -92,7 +93,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "alt40": { "standard_name": "altitude", @@ -236,7 +238,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "alternate_hybrid_sigma": { "standard_name": "atmosphere_hybrid_sigma_pressure_coordinate", @@ -258,7 +261,31 @@ "value": "", "z_bounds_factors": "ap: ap_bnds b: b_bnds ps: ps", "z_factors": "ap: ap b: b ps: ps", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "alevel" + }, + "alternate_hybrid_sigma_half": { + "standard_name": "atmosphere_hybrid_sigma_pressure_coordinate", + "units": "1", + "axis": "Z", + "long_name": "hybrid sigma pressure coordinate", + "climatology": "", + "formula": "p = ap + b*ps", + "must_have_bounds": "no", + "out_name": "lev", + "positive": "down", + "requested": "", + "requested_bounds": "", + "stored_direction": "decreasing", + "tolerance": "", + "type": "", + "valid_max": "1.0", + "valid_min": "0.0", + "value": "", + "z_bounds_factors": "ap: ap_bnds b: b_bnds ps: ps", + "z_factors": "ap: ap b: b ps: ps", + "bounds_values": "", + "generic_level_name": "alevhalf" }, "basin": { "standard_name": "region", @@ -284,7 +311,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "dbze": { "standard_name": "equivalent_reflectivity_factor", @@ -353,7 +381,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "depth0m": { "standard_name": "depth", @@ -375,7 +404,8 @@ "value": "0.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "depth100m": { "standard_name": "depth", @@ -397,7 +427,8 @@ "value": "100.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "depth2000m": { "standard_name": "depth", @@ -419,7 +450,8 @@ "value": "2000", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "depth300m": { "standard_name": "depth", @@ -441,7 +473,8 @@ "value": "300", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "depth700m": { "standard_name": "depth", @@ -463,7 +496,8 @@ "value": "700", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "depth_coord": { "standard_name": "depth", @@ -485,7 +519,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "olevel" }, "effectRadIc": { "standard_name": "", @@ -527,7 +562,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "effectRadLi": { "standard_name": "", @@ -569,7 +605,31 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" + }, + "grid_latitude": { + "standard_name": "grid_latitude", + "units": "degrees", + "axis": "Y", + "long_name": "Grid Latitude", + "climatology": "", + "formula": "", + "must_have_bounds": "yes", + "out_name": "rlat", + "positive": "", + "requested": "", + "requested_bounds": "", + "stored_direction": "increasing", + "tolerance": "", + "type": "double", + "valid_max": "90.0", + "valid_min": "-90.0", + "value": "", + "z_bounds_factors": "", + "z_factors": "", + "bounds_values": "", + "generic_level_name": "" }, "height100m": { "standard_name": "height", @@ -591,7 +651,8 @@ "value": "100.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "height10m": { "standard_name": "height", @@ -613,7 +674,8 @@ "value": "10.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "height2m": { "standard_name": "height", @@ -635,7 +697,8 @@ "value": "2.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "hybrid_height": { "standard_name": "atmosphere_hybrid_height_coordinate", @@ -657,7 +720,31 @@ "value": "", "z_bounds_factors": "a: lev_bnds b: b_bnds orog: orog", "z_factors": "a: lev b: b orog: orog", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "alevel" + }, + "hybrid_height_half": { + "standard_name": "atmosphere_hybrid_height_coordinate", + "units": "m", + "axis": "Z", + "long_name": "hybrid height coordinate", + "climatology": "", + "formula": "z = a + b*orog", + "must_have_bounds": "no", + "out_name": "lev", + "positive": "up", + "requested": "", + "requested_bounds": "", + "stored_direction": "increasing", + "tolerance": "", + "type": "", + "valid_max": "", + "valid_min": "0.0", + "value": "", + "z_bounds_factors": "a: lev_bnds b: b_bnds orog: orog", + "z_factors": "a: lev b: b orog: orog", + "bounds_values": "", + "generic_level_name": "alevhalf" }, "iceband": { "standard_name": "sea_ice_thickness", @@ -679,7 +766,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "lambda550nm": { "standard_name": "radiation_wavelength", @@ -701,7 +789,8 @@ "value": "550.0", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "landUse": { "standard_name": "area_type", @@ -728,7 +817,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "latitude": { "standard_name": "latitude", @@ -750,7 +840,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "location": { "standard_name": "", @@ -772,13 +863,14 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "longitude": { "standard_name": "longitude", "units": "degrees_east", "axis": "X", - "long_name": "longitude", + "long_name": "Radiation Wavelength 550 nanometers", "climatology": "", "formula": "", "must_have_bounds": "yes", @@ -794,7 +886,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "natural_log_pressure": { "standard_name": "atmosphere_ln_pressure_coordinate", @@ -816,7 +909,31 @@ "value": "", "z_bounds_factors": "p0: p0 lev: lev_bnds", "z_factors": "p0: p0 lev: lev", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "alevel" + }, + "natural_log_pressure_half": { + "standard_name": "atmosphere_ln_pressure_coordinate", + "units": "", + "axis": "Z", + "long_name": "atmosphere natural log pressure coordinate", + "climatology": "", + "formula": "p = p0 * exp(-lev)", + "must_have_bounds": "no", + "out_name": "lev", + "positive": "down", + "requested": "", + "requested_bounds": "", + "stored_direction": "decreasing", + "tolerance": "", + "type": "", + "valid_max": "20.0", + "valid_min": "-1.0", + "value": "", + "z_bounds_factors": "p0: p0 lev: lev_bnds", + "z_factors": "p0: p0 lev: lev", + "bounds_values": "", + "generic_level_name": "alevhalf" }, "ocean_double_sigma": { "standard_name": "ocean_double_sigma", @@ -838,7 +955,8 @@ "value": "", "z_bounds_factors": "sigma: sigma_bnds depth: depth z1: z1 z2: z2 a: a href: href k_c: k_c", "z_factors": "sigma: sigma depth: depth z1: z1 z2: z2 a: a_coeff href: href k_c: k_c", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "olevel" }, "ocean_s": { "standard_name": "ocean_s_coordinate", @@ -860,7 +978,8 @@ "value": "", "z_bounds_factors": "s: lev_bnds eta: eta depth: depth a: a b: b depth_c: depth_c", "z_factors": "s: lev eta: eta depth: depth a: a_coeff b: b_coeff depth_c: depth_c", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "olevel" }, "ocean_sigma": { "standard_name": "ocean_sigma_coordinate", @@ -882,7 +1001,8 @@ "value": "", "z_bounds_factors": "sigma: lev_bnds eta: eta depth: depth", "z_factors": "sigma: lev eta: eta depth: depth", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "olevel" }, "ocean_sigma_z": { "standard_name": "ocean_sigma_z", @@ -904,7 +1024,8 @@ "value": "", "z_bounds_factors": "sigma: sigma_bnds eta: eta depth: depth depth_c: depth_c nsigma: nsigma zlev: zlev_bnds", "z_factors": "sigma: sigma eta: eta depth: depth depth_c: depth_c nsigma: nsigma zlev: zlev", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "olevel" }, "olayer100m": { "standard_name": "depth", @@ -926,7 +1047,8 @@ "value": "50.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "0.0 100.0" + "bounds_values": "0.0 100.0", + "generic_level_name": "" }, "oline": { "standard_name": "region", @@ -964,7 +1086,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "p10": { "standard_name": "air_pressure", @@ -986,7 +1109,8 @@ "value": "1000.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "p100": { "standard_name": "air_pressure", @@ -1008,7 +1132,8 @@ "value": "10000.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "p1000": { "standard_name": "air_pressure", @@ -1030,7 +1155,8 @@ "value": "100000.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "p200": { "standard_name": "air_pressure", @@ -1052,7 +1178,8 @@ "value": "20000.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "p220": { "standard_name": "air_pressure", @@ -1074,7 +1201,8 @@ "value": "22000.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "44000.0 0.0" + "bounds_values": "44000.0 0.0", + "generic_level_name": "" }, "p500": { "standard_name": "air_pressure", @@ -1096,7 +1224,8 @@ "value": "50000.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "p560": { "standard_name": "air_pressure", @@ -1118,7 +1247,8 @@ "value": "56000.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "68000.0 44000.0" + "bounds_values": "68000.0 44000.0", + "generic_level_name": "" }, "p700": { "standard_name": "air_pressure", @@ -1140,7 +1270,8 @@ "value": "70000.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "p840": { "standard_name": "air_pressure", @@ -1162,7 +1293,8 @@ "value": "84000.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "100000.0 68000.0" + "bounds_values": "100000.0 68000.0", + "generic_level_name": "" }, "p850": { "standard_name": "air_pressure", @@ -1184,7 +1316,8 @@ "value": "85000.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "pl700": { "standard_name": "air_pressure", @@ -1206,40 +1339,8 @@ "value": "70000.", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "85000.0 60000.0" - }, - "plev10": { - "standard_name": "air_pressure", - "units": "Pa", - "axis": "Z", - "long_name": "pressure", - "climatology": "", - "formula": "", - "must_have_bounds": "no", - "out_name": "plev", - "positive": "down", - "requested": [ - "100000.", - "85000.", - "70000.", - "50000.", - "25000.", - "15000.", - "10000.", - "7000.", - "5000.", - "1000." - ], - "requested_bounds": "", - "stored_direction": "decreasing", - "tolerance": "", - "type": "double", - "valid_max": "", - "valid_min": "", - "value": "", - "z_bounds_factors": "", - "z_factors": "", - "bounds_values": "" + "bounds_values": "85000.0 60000.0", + "generic_level_name": "" }, "plev19": { "standard_name": "air_pressure", @@ -1281,7 +1382,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "plev23": { "standard_name": "air_pressure", @@ -1327,7 +1429,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "plev27": { "standard_name": "air_pressure", @@ -1377,7 +1480,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "plev3": { "standard_name": "air_pressure", @@ -1403,7 +1507,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "plev39": { "standard_name": "air_pressure", @@ -1465,7 +1570,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "plev3h": { "standard_name": "air_pressure", @@ -1491,7 +1597,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "plev4": { "standard_name": "air_pressure", @@ -1518,7 +1625,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "plev7": { "standard_name": "air_pressure", @@ -1563,7 +1671,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "plev7c": { "standard_name": "air_pressure", @@ -1608,7 +1717,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "plev7h": { "standard_name": "air_pressure", @@ -1638,7 +1748,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "plev8": { "standard_name": "air_pressure", @@ -1669,7 +1780,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "rho": { "standard_name": "sea_water_potential_density", @@ -1691,7 +1803,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "scatratio": { "standard_name": "backscattering_ratio", @@ -1760,7 +1873,31 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" + }, + "scatter180": { + "standard_name": "scattering_angle", + "units": "degree", + "axis": "", + "long_name": "Scattering Angle", + "climatology": "", + "formula": "", + "must_have_bounds": "no", + "out_name": "scatangle", + "positive": "", + "requested": "", + "requested_bounds": "", + "stored_direction": "", + "tolerance": "", + "type": "double", + "valid_max": "", + "valid_min": "", + "value": "180.0", + "z_bounds_factors": "", + "z_factors": "", + "bounds_values": "", + "generic_level_name": "" }, "sdepth": { "standard_name": "depth", @@ -1782,7 +1919,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "sdepth1": { "standard_name": "depth", @@ -1804,7 +1942,8 @@ "value": "0.05", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "0.0 0.1" + "bounds_values": "0.0 0.1", + "generic_level_name": "" }, "sdepth10": { "standard_name": "depth", @@ -1826,7 +1965,8 @@ "value": "0.5", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "0.0 1.0" + "bounds_values": "0.0 1.0", + "generic_level_name": "" }, "siline": { "standard_name": "region", @@ -1853,7 +1993,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "site": { "standard_name": "", @@ -1875,7 +2016,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "smooth_level": { "standard_name": "atmosphere_sleve_coordinate", @@ -1897,7 +2039,31 @@ "value": "", "z_bounds_factors": "a: a_bnds b1: b1_bnds b2: b2_bnds ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2", "z_factors": "a: a b1: b1 b2: b2 ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "alevel" + }, + "smooth_level_half": { + "standard_name": "atmosphere_sleve_coordinate", + "units": "m", + "axis": "Z", + "long_name": "atmosphere smooth level vertical (SLEVE) coordinate", + "climatology": "", + "formula": "z = a*ztop + b1*zsurf1 + b2*zsurf2", + "must_have_bounds": "no", + "out_name": "lev", + "positive": "up", + "requested": "", + "requested_bounds": "", + "stored_direction": "increasing", + "tolerance": "", + "type": "", + "valid_max": "800000.0", + "valid_min": "-200.0", + "value": "", + "z_bounds_factors": "a: a_bnds b1: b1_bnds b2: b2_bnds ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2", + "z_factors": "a: a b1: b1 b2: b2 ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2", + "bounds_values": "", + "generic_level_name": "alevhalf" }, "snowband": { "standard_name": "surface_snow_thickness", @@ -1919,7 +2085,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "snowdepth": { "standard_name": "depth", @@ -1941,7 +2108,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "soilpools": { "standard_name": "", @@ -1951,7 +2119,7 @@ "climatology": "", "formula": "", "must_have_bounds": "no", - "out_name": "soilpools", + "out_name": "type", "positive": "", "requested": "", "requested_bounds": "", @@ -1963,7 +2131,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "spectband": { "standard_name": "sensor_band_central_radiation_wavenumber", @@ -1985,7 +2154,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "standard_hybrid_sigma": { "standard_name": "atmosphere_hybrid_sigma_pressure_coordinate", @@ -2007,7 +2177,31 @@ "value": "", "z_bounds_factors": "p0: p0 a: a_bnds b: b_bnds ps: ps", "z_factors": "p0: p0 a: a b: b ps: ps", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "alevel" + }, + "standard_hybrid_sigma_half": { + "standard_name": "atmosphere_hybrid_sigma_pressure_coordinate", + "units": "1", + "axis": "Z", + "long_name": "hybrid sigma pressure coordinate", + "climatology": "", + "formula": "p = a*p0 + b*ps", + "must_have_bounds": "no", + "out_name": "lev", + "positive": "down", + "requested": "", + "requested_bounds": "", + "stored_direction": "decreasing", + "tolerance": "", + "type": "", + "valid_max": "1.0", + "valid_min": "0.0", + "value": "", + "z_bounds_factors": "p0: p0 a: a_bnds b: b_bnds ps: ps", + "z_factors": "p0: p0 a: a b: b ps: ps", + "bounds_values": "", + "generic_level_name": "alevhalf" }, "standard_sigma": { "standard_name": "atmosphere_sigma_coordinate", @@ -2029,7 +2223,31 @@ "value": "", "z_bounds_factors": "ptop: ptop sigma: lev_bnds ps: ps", "z_factors": "ptop: ptop sigma: lev ps: ps", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "alevel" + }, + "standard_sigma_half": { + "standard_name": "atmosphere_sigma_coordinate", + "units": "", + "axis": "Z", + "long_name": "sigma coordinate", + "climatology": "", + "formula": "p = ptop + sigma*(ps - ptop)", + "must_have_bounds": "no", + "out_name": "lev", + "positive": "down", + "requested": "", + "requested_bounds": "", + "stored_direction": "decreasing", + "tolerance": "", + "type": "", + "valid_max": "1.0", + "valid_min": "0.0", + "value": "", + "z_bounds_factors": "ptop: ptop sigma: lev_bnds ps: ps", + "z_factors": "ptop: ptop sigma: lev ps: ps", + "bounds_values": "", + "generic_level_name": "alevhalf" }, "sza5": { "standard_name": "solar_zenith_angle", @@ -2057,7 +2275,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "tau": { "standard_name": "atmosphere_optical_thickness_due_to_cloud", @@ -2102,7 +2321,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "time": { "standard_name": "time", @@ -2124,7 +2344,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "time1": { "standard_name": "time", @@ -2146,7 +2367,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typebare": { "standard_name": "area_type", @@ -2168,7 +2390,8 @@ "value": "bare_ground", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typeburnt": { "standard_name": "area_type", @@ -2190,7 +2413,77 @@ "value": "burnt_vegetation", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" + }, + "typec3crop": { + "standard_name": "area_type", + "units": "", + "axis": "", + "long_name": "surface type", + "climatology": "", + "formula": "", + "must_have_bounds": "no", + "out_name": "type", + "positive": "", + "requested": "", + "requested_bounds": "", + "stored_direction": "", + "tolerance": "", + "type": "character", + "valid_max": "", + "valid_min": "", + "value": "crops_of_c3_plant_functional_types", + "z_bounds_factors": "", + "z_factors": "", + "bounds_values": "", + "generic_level_name": "" + }, + "typec3natg": { + "standard_name": "area_type", + "units": "", + "axis": "", + "long_name": "C3 Natural grass area type", + "climatology": "", + "formula": "", + "must_have_bounds": "no", + "out_name": "type", + "positive": "", + "requested": "", + "requested_bounds": "", + "stored_direction": "", + "tolerance": "", + "type": "character", + "valid_max": "", + "valid_min": "", + "value": "natural_grasses_of_c3_plant_functional_types", + "z_bounds_factors": "", + "z_factors": "", + "bounds_values": "", + "generic_level_name": "" + }, + "typec3pastures": { + "standard_name": "area_type", + "units": "", + "axis": "", + "long_name": "C3 Pastures area type", + "climatology": "", + "formula": "", + "must_have_bounds": "no", + "out_name": "type", + "positive": "", + "requested": "", + "requested_bounds": "", + "stored_direction": "", + "tolerance": "", + "type": "character", + "valid_max": "", + "valid_min": "", + "value": "pastures_of_c3_plant_functional_types", + "z_bounds_factors": "", + "z_factors": "", + "bounds_values": "", + "generic_level_name": "" }, "typec3pft": { "standard_name": "area_type", @@ -2212,7 +2505,77 @@ "value": "c3_plant_functional_types", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" + }, + "typec4crop": { + "standard_name": "area_type", + "units": "", + "axis": "", + "long_name": "surface type", + "climatology": "", + "formula": "", + "must_have_bounds": "no", + "out_name": "type", + "positive": "", + "requested": "", + "requested_bounds": "", + "stored_direction": "", + "tolerance": "", + "type": "character", + "valid_max": "", + "valid_min": "", + "value": "crops_of_c4_plant_functional_types", + "z_bounds_factors": "", + "z_factors": "", + "bounds_values": "", + "generic_level_name": "" + }, + "typec4natg": { + "standard_name": "area_type", + "units": "", + "axis": "", + "long_name": "C4 Natural grass area type", + "climatology": "", + "formula": "", + "must_have_bounds": "no", + "out_name": "type", + "positive": "", + "requested": "", + "requested_bounds": "", + "stored_direction": "", + "tolerance": "", + "type": "character", + "valid_max": "", + "valid_min": "", + "value": "natural_grasses_of_c4_plant_functional_types", + "z_bounds_factors": "", + "z_factors": "", + "bounds_values": "", + "generic_level_name": "" + }, + "typec4pastures": { + "standard_name": "area_type", + "units": "", + "axis": "", + "long_name": "C4 Pastures area type", + "climatology": "", + "formula": "", + "must_have_bounds": "no", + "out_name": "type", + "positive": "", + "requested": "", + "requested_bounds": "", + "stored_direction": "", + "tolerance": "", + "type": "character", + "valid_max": "", + "valid_min": "", + "value": "pastures_of_c4_plant_functional_types", + "z_bounds_factors": "", + "z_factors": "", + "bounds_values": "", + "generic_level_name": "" }, "typec4pft": { "standard_name": "area_type", @@ -2234,7 +2597,8 @@ "value": "c4_plant_functional_types", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typecloud": { "standard_name": "area_type", @@ -2256,7 +2620,8 @@ "value": "cloud", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typecrop": { "standard_name": "area_type", @@ -2278,7 +2643,8 @@ "value": "crops", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typefis": { "standard_name": "area_type", @@ -2300,7 +2666,8 @@ "value": "floating_ice_shelf", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typegis": { "standard_name": "area_type", @@ -2322,7 +2689,8 @@ "value": "grounded_ice_sheet", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typeland": { "standard_name": "area_type", @@ -2344,7 +2712,8 @@ "value": "land", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typeli": { "standard_name": "area_type", @@ -2366,7 +2735,8 @@ "value": "land_ice", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typemp": { "standard_name": "area_type", @@ -2388,7 +2758,8 @@ "value": "sea_ice_melt_pond", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typenatgr": { "standard_name": "area_type", @@ -2410,7 +2781,8 @@ "value": "natural_grasses", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typenwd": { "standard_name": "area_type", @@ -2432,7 +2804,8 @@ "value": "non_woody_vegetation", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typepasture": { "standard_name": "area_type", @@ -2454,7 +2827,8 @@ "value": "pastures", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typepdec": { "standard_name": "area_type", @@ -2476,7 +2850,8 @@ "value": "primary_deciduous_trees", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typepever": { "standard_name": "area_type", @@ -2498,7 +2873,8 @@ "value": "primary_evergreen_trees", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typeresidual": { "standard_name": "", @@ -2520,7 +2896,8 @@ "value": "residual", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typesdec": { "standard_name": "area_type", @@ -2542,7 +2919,8 @@ "value": "secondary_decidous_trees", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typesea": { "standard_name": "area_type", @@ -2564,7 +2942,8 @@ "value": "sea", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typesever": { "standard_name": "area_type", @@ -2586,7 +2965,8 @@ "value": "secondary_evergreen_trees", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typeshrub": { "standard_name": "area_type", @@ -2608,7 +2988,8 @@ "value": "shrubs", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typesi": { "standard_name": "area_type", @@ -2630,7 +3011,8 @@ "value": "sea_ice", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typetree": { "standard_name": "area_type", @@ -2652,7 +3034,8 @@ "value": "trees", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typetreebd": { "standard_name": "area_type", @@ -2674,7 +3057,8 @@ "value": "trees", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typetreebe": { "standard_name": "area_type", @@ -2696,7 +3080,8 @@ "value": "trees", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typetreend": { "standard_name": "area_type", @@ -2718,7 +3103,8 @@ "value": "trees", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typetreene": { "standard_name": "area_type", @@ -2740,7 +3126,8 @@ "value": "trees", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typeveg": { "standard_name": "area_type", @@ -2762,7 +3149,8 @@ "value": "vegetation", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "typewetla": { "standard_name": "", @@ -2781,10 +3169,11 @@ "type": "character", "valid_max": "", "valid_min": "", - "value": "wetlands", + "value": "wetland", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "vegtype": { "standard_name": "", @@ -2806,7 +3195,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "xant": { "standard_name": "projection_x_coordinate", @@ -2828,7 +3218,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "xgre": { "standard_name": "projection_x_coordinate", @@ -2850,7 +3241,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "yant": { "standard_name": "projection_y_coordinate", @@ -2872,7 +3264,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "ygre": { "standard_name": "projection_y_coordinate", @@ -2894,7 +3287,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "time2": { "standard_name": "time", @@ -2916,7 +3310,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" }, "time3": { "standard_name": "time", @@ -2938,7 +3333,8 @@ "value": "", "z_bounds_factors": "", "z_factors": "", - "bounds_values": "" + "bounds_values": "", + "generic_level_name": "" } } } diff --git a/TestTables/CMIP6_day.json b/TestTables/CMIP6_day.json index 766fbec0..5e91c2a5 100644 --- a/TestTables/CMIP6_day.json +++ b/TestTables/CMIP6_day.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table day", "realm": "atmos", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_formula_terms.json b/TestTables/CMIP6_formula_terms.json index e8ebe7cd..93ec01fb 100644 --- a/TestTables/CMIP6_formula_terms.json +++ b/TestTables/CMIP6_formula_terms.json @@ -181,6 +181,76 @@ "dimensions": "longitude latitude time2", "out_name": "eta", "type": "real" + }, + "b_half_bnds": { + "long_name": "vertical coordinate formula term: b(k+1/2)", + "units": "", + "dimensions": "alevhalf", + "out_name": "b_bnds", + "type": "double" + }, + "ap_half": { + "long_name": "vertical coordinate formula term: ap(k)", + "units": "Pa", + "dimensions": "alevhalf", + "out_name": "ap", + "type": "double" + }, + "b2_half": { + "long_name": "vertical coordinate formula term: b2(k)", + "units": "", + "dimensions": "alevhalf", + "out_name": "b2", + "type": "double" + }, + "b1_half": { + "long_name": "vertical coordinate formula term: b1(k)", + "units": "", + "dimensions": "alevhalf", + "out_name": "b1", + "type": "double" + }, + "b2": { + "long_name": "vertical coordinate formula term: b2(k)", + "units": "", + "dimensions": "alevel", + "out_name": "b2", + "type": "double" + }, + "a_half": { + "long_name": "vertical coordinate formula term: a(k)", + "units": "", + "dimensions": "alevhalf", + "out_name": "a", + "type": "double" + }, + "ap_half_bnds": { + "long_name": "vertical coordinate formula term: ap(k+1/2)", + "units": "Pa", + "dimensions": "alevel", + "out_name": "ap_bnds", + "type": "double" + }, + "b_half": { + "long_name": "vertical coordinate formula term: b(k)", + "units": "", + "dimensions": "alevhalf", + "out_name": "b", + "type": "double" + }, + "a_half_bnds": { + "long_name": "vertical coordinate formula term: a(k+1/2)", + "units": "", + "dimensions": "alevhalf", + "out_name": "a_bnds", + "type": "double" + }, + "b1": { + "long_name": "vertical coordinate formula term: b1(k)", + "units": "", + "dimensions": "alevel", + "out_name": "b1", + "type": "double" } } } diff --git a/TestTables/CMIP6_fx.json b/TestTables/CMIP6_fx.json index f65e47b5..1cb6cff7 100644 --- a/TestTables/CMIP6_fx.json +++ b/TestTables/CMIP6_fx.json @@ -1,10 +1,10 @@ { "Header": { - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "cmor_version": "3.3", "table_id": "Table fx", "realm": "land", - "table_date": "21 March 2018", + "table_date": "13 June 2018", "missing_value": "1e20", "int_missing_value": "-999", "product": "model-output", diff --git a/TestTables/CMIP6_grids.json b/TestTables/CMIP6_grids.json index 029d3cab..fddaefe2 100644 --- a/TestTables/CMIP6_grids.json +++ b/TestTables/CMIP6_grids.json @@ -4,9 +4,9 @@ "cmor_version": "3.3", "Conventions": "CF-1.7 CMIP-6.2", "table_id": "Table grids", - "data_specs_version": "01.00.23", + "data_specs_version": "01.00.24", "missing_value": "1e20", - "table_date": "21 March 2018" + "table_date": "13 June 2018" }, "mapping_entry": { "sample_user_mapping": { @@ -17,11 +17,11 @@ }, "axis_entry": { "grid_latitude": { - "long_name": "latitude in rotated pole grid", + "long_name": "Grid Latitude", "standard_name": "grid_latitude", "out_name": "rlat", "units": "degrees", - "type": "", + "type": "double", "axis": "Y" }, "y_deg": { diff --git a/configure b/configure index 212baa4f..4c720472 100755 --- a/configure +++ b/configure @@ -1,8 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for cmor 3.3.2. +# Generated by GNU Autoconf 2.69 for cmor 3.3.3. # -# Report bugs to . +# Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -266,11 +266,11 @@ fi $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf@gnu.org and nadeau1@llnl.gov -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: have one." + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: doutriaux1@llnl.gov about your system, including any +$0: error possibly output before this message. Then install +$0: a modern shell, or manually run the script under such a +$0: shell if you do have one." fi exit 1 fi @@ -580,9 +580,9 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='cmor' PACKAGE_TARNAME='cmor' -PACKAGE_VERSION='3.3.2' -PACKAGE_STRING='cmor 3.3.2' -PACKAGE_BUGREPORT='nadeau1@llnl.gov' +PACKAGE_VERSION='3.3.3' +PACKAGE_STRING='cmor 3.3.3' +PACKAGE_BUGREPORT='doutriaux1@llnl.gov' PACKAGE_URL='' ac_default_prefix=/usr/local/cmor @@ -667,7 +667,6 @@ infodir docdir oldincludedir includedir -runstatedir localstatedir sharedstatedir sysconfdir @@ -749,7 +748,6 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1002,15 +1000,6 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1148,7 +1137,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir + libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1261,7 +1250,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.3.2 to adapt to many kinds of systems. +\`configure' configures cmor 3.3.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1301,7 +1290,6 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1328,7 +1316,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of cmor 3.3.2:";; + short | recursive ) echo "Configuration of cmor 3.3.3:";; esac cat <<\_ACEOF @@ -1367,7 +1355,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF ac_status=$? fi @@ -1430,7 +1418,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -cmor configure 3.3.2 +cmor configure 3.3.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1648,7 +1636,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.3.2, which was +It was created by cmor $as_me 3.3.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4979,7 +4967,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.3.2, which was +This file was extended by cmor $as_me 3.3.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5026,13 +5014,13 @@ Usage: $0 [OPTION]... [TAG]... Configuration files: $config_files -Report bugs to ." +Report bugs to ." _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.3.2 +cmor config.status 3.3.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 73cc8f26..5f342b9f 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.3.2, nadeau1@llnl.gov) +AC_INIT(cmor, 3.3.3, doutriaux1@llnl.gov) GIT_TAG=`cd $srcdir ; ./get_git_version.sh` diff --git a/include/cmor.h b/include/cmor.h index b54c2c59..1d29645f 100644 --- a/include/cmor.h +++ b/include/cmor.h @@ -69,6 +69,7 @@ #define AXIS_ATT_UNITS "units" #define AXIS_ATT_STOREDDIRECTION "stored_direction" #define AXIS_ATT_POSITIVE "positive" +#define AXIS_ATT_GEN_LEVEL_NAME "generic_level_name" #define AXIS_ATT_AXIS "axis" #define AXIS_ATT_INDEXONLY "index_only" #define AXIS_ATT_MUSTBOUNDS "must_have_bounds" @@ -250,6 +251,7 @@ #define DIMENSION_LATITUDE "latitude" #define DIMENSION_LONGITUDE "longitude" #define DIMENSION_ALEVEL "alevel" +#define DIMENSION_ALEVEL_HALF "alevhalf" #define DIMENSION_ZLEVEL "zlevel" #define DIMENSION_OLEVEL "olevel" @@ -339,6 +341,7 @@ typedef struct cmor_axis_def_ { char index_only; int must_have_bounds; int must_call_cmor_grid; + char generic_level_name[CMOR_MAX_STRING]; } cmor_axis_def_t; enum CV_type { @@ -417,6 +420,7 @@ typedef struct cmor_variable_def_ { char realm[CMOR_MAX_STRING]; char frequency[CMOR_MAX_STRING]; char out_name[CMOR_MAX_STRING]; + char generic_level_name[CMOR_MAX_STRING]; } cmor_var_def_t; typedef struct cmor_var_ { diff --git a/include/cmor_locale.h b/include/cmor_locale.h index f9d3eeae..292acc5d 100644 --- a/include/cmor_locale.h +++ b/include/cmor_locale.h @@ -1,4 +1,4 @@ #ifndef _CMOR_LOCALE #define _CMOR_LOCALE -#define CMOR_PREFIX "/Users/doutriaux1/anaconda2/envs/cmor" +#define CMOR_PREFIX "/Users/doutriaux1/anaconda2/envs/cmor_py2" #endif diff --git a/setup.py.in b/setup.py.in index 27901ded..03dbe998 100755 --- a/setup.py.in +++ b/setup.py.in @@ -53,7 +53,7 @@ print 'src:',srcfiles print 'macros:',macros setup (name = "CMOR", - version='3.3', + version='3.3.3', author='Denis Nadeau, AIMS', description = "Python Interface to CMOR output library", url = "http://cmor.llnl.gov/",