Hi All,

I have run a file through the CF-checker version 3.1.0 at 
http://pumatest.nerc.ac.uk/cgi-bin/cf-checker.pl and it returns some errors & 
warnings (see below).  As I understand it, the error (4.3.3) is raised because 
the checker has not yet been updated to be fully able to handle CF-1.7 (in 
particular it says: "Note:This version currently does not include the new cell 
boundary cross checks detailed in CF section 7.1 which will follow in due 
course.").  I hope someone will tell me if my understanding is incorrect about 
this.

The 3rd warning below indicates that "Data for variable lev lies outside cell 
boundaries", but my ncdump of the file suggests that all "lev" values lie 
between the corresponding "lev_bnd" values.  (See 2nd dump below.).  Could 
someone please tell me if there is an explanation for this warning other than 
it is incorrect?

thanks and best regards,
Karl


------------------------------------------


Output of CF-Checker follows...

----------------------------------------------------------------------------

/home/ros/software/cf-checker/lib/python2.7/site-packages/cfchecker-3.1.0-py2.7.egg/cfchecker/cfchecks.py:1768:
 FutureWarning: Conversion of the second argument of issubdtype from `int` to 
`np.signedinteger` is deprecated. In future, it will be treated as `np.int64 == 
np.dtype(int).type`.
  elif numpy.issubdtype(attrType, numpy.int) or numpy.issubdtype(attrType, 
numpy.float):
/home/ros/software/cf-checker/lib/python2.7/site-packages/cfchecker-3.1.0-py2.7.egg/cfchecker/cfchecks.py:1768:
 FutureWarning: Conversion of the second argument of issubdtype from `float` to 
`np.floating` is deprecated. In future, it will be treated as `np.float64 == 
np.dtype(float).type`.
  elif numpy.issubdtype(attrType, numpy.int) or numpy.issubdtype(attrType, 
numpy.float):
CHECKING NetCDF FILE: /tmp/9066.nc
=====================
Using CF Checker Version 3.1.0
Checking against CF Version CF-1.7
Using Standard Name Table Version 65 (2019-04-09T13:32:32Z)
Using Area Type Table Version 9 (07 August 2018)
Using Standardized Region Name Table Version 4 (18 December 2018)

WARN: (7.1): Boundary var lev_bnds should not have attribute units
WARN: (7.1): Boundary var lev_bnds should not have attribute standard_name
WARN: (7.1): Data for variable lev lies outside cell boundaries

------------------
Checking variable: time
------------------

------------------
Checking variable: time_bnds
------------------

------------------
Checking variable: lev
------------------

------------------
Checking variable: lev_bnds
------------------
INFO: attribute formula_terms is being used in a non-standard way
ERROR: (4.3.3): formula_terms attribute only allowed on coordinate variables

------------------
Checking variable: p0
------------------

------------------
Checking variable: a
------------------
INFO: (3.1): No units attribute set.  Please consider adding a units attribute 
for completeness.

------------------
Checking variable: b
------------------
INFO: (3.1): No units attribute set.  Please consider adding a units attribute 
for completeness.

------------------
Checking variable: ps
------------------

------------------
Checking variable: a_bnds
------------------
INFO: (3.1): No units attribute set.  Please consider adding a units attribute 
for completeness.

------------------
Checking variable: b_bnds
------------------
INFO: (3.1): No units attribute set.  Please consider adding a units attribute 
for completeness.

------------------
Checking variable: lat
------------------

------------------
Checking variable: lat_bnds
------------------

------------------
Checking variable: lon
------------------

------------------
Checking variable: lon_bnds
------------------

------------------
Checking variable: cl
------------------
INFO: attribute history is being used in a non-standard way

ERRORS detected: 1
WARNINGS given: 3
INFORMATION messages: 6

------------------------------------------
ncdump of file  ............
--------------------------------------------

netcdf cl_Amon_INM-CM5-0_historical_r1i1p1f1_gr1_203001-203002 {
dimensions:
        time = UNLIMITED ; // (2 currently)
        lev = 5 ;
        lat = 3 ;
        lon = 4 ;
        bnds = 2 ;
variables:
        double time(time) ;
                time:bounds = "time_bnds" ;
                time:units = "days since 2030-1-1" ;
                time:calendar = "365_day" ;
                time:axis = "T" ;
                time:long_name = "time" ;
                time:standard_name = "time" ;
        double time_bnds(time, bnds) ;
        double lev(lev) ;
                lev:bounds = "lev_bnds" ;
                lev:units = "1" ;
                lev:axis = "Z" ;
                lev:positive = "down" ;
                lev:long_name = "hybrid sigma pressure coordinate" ;
                lev:standard_name = 
"atmosphere_hybrid_sigma_pressure_coordinate" ;
                lev:formula = "p = a*p0 + b*ps" ;
                lev:formula_terms = "p0: p0 a: a b: b ps: ps" ;
        double lev_bnds(lev, bnds) ;
                lev_bnds:formula = "p = a*p0 + b*ps" ;
                lev_bnds:standard_name = 
"atmosphere_hybrid_sigma_pressure_coordinate" ;
                lev_bnds:units = "1" ;
                lev_bnds:formula_terms = "p0: p0 a: a_bnds b: b_bnds ps: ps" ;
        double p0 ;
                p0:long_name = "vertical coordinate formula term: reference 
pressure" ;
                p0:units = "Pa" ;
        double a(lev) ;
                a:long_name = "vertical coordinate formula term: a(k)" ;
        double b(lev) ;
                b:long_name = "vertical coordinate formula term: b(k)" ;
        float ps(time, lat, lon) ;
                ps:long_name = "Surface Air Pressure" ;
                ps:units = "Pa" ;
        double a_bnds(lev, bnds) ;
                a_bnds:long_name = "vertical coordinate formula term: a(k+1/2)" 
;
        double b_bnds(lev, bnds) ;
                b_bnds:long_name = "vertical coordinate formula term: b(k+1/2)" 
;
        double lat(lat) ;
                lat:bounds = "lat_bnds" ;
                lat:units = "degrees_north" ;
                lat:axis = "Y" ;
                lat:long_name = "latitude" ;
                lat:standard_name = "latitude" ;
        double lat_bnds(lat, bnds) ;
        double lon(lon) ;
                lon:bounds = "lon_bnds" ;
                lon:units = "degrees_east" ;
                lon:axis = "X" ;
                lon:long_name = "Longitude" ;
                lon:standard_name = "longitude" ;
        double lon_bnds(lon, bnds) ;
        float cl(time, lev, lat, lon) ;
                cl:standard_name = "cloud_area_fraction_in_atmosphere_layer" ;
                cl:long_name = "Cloud Area Fraction" ;
                cl:comment = "Percentage cloud cover, including both 
large-scale and convective cloud." ;
                cl:units = "%" ;
                cl:original_name = "CLOUD" ;
                cl:cell_methods = "area: time: mean (interval: 20 minutes)" ;
                cl:cell_measures = "area: areacella" ;
                cl:history = "2019-04-12T14:28:43Z altered by CMOR: replaced 
missing value flag (1e+28) with standard missing value (1e+20). 
2019-04-12T14:28:43Z altered by CMOR: Inverted axis: lev. 2019-04-12T14:28:43Z 
altered by CMOR: Inverted axis: lat." ;
                cl:missing_value = 1.e+20f ;
                cl:_FillValue = 1.e+20f ;

// global attributes:
                :Conventions = "CF-1.7 CMIP-6.2" ;
                :activity_id = "CMIP" ;
                :branch_method = "standard" ;
                :branch_time_in_child = 0. ;
                :branch_time_in_parent = 90885. ;
                :contact = "Evgeny Volodin 
([email protected]<mailto:[email protected]>)" ;
                :creation_date = "2019-04-12T14:28:43Z" ;
                :data_specs_version = "01.00.27" ;
                :experiment = "all-forcing simulation of the recent past" ;
                :experiment_id = "historical" ;
                :external_variables = "areacella" ;
                :forcing_index = 1 ;
                :frequency = "mon" ;
                :further_info_url = 
"https://furtherinfo.es-doc.org/CMIP6.INM.INM-CM5-0.historical.none.r1i1p1f1";<https://furtherinfo.es-doc.org/CMIP6.INM.INM-CM5-0.historical.none.r1i1p1f1>
 ;
                :grid = "gs2x1.5" ;
                :grid_label = "gr1" ;
                :history = "2019-04-12T14:28:43Z ;rewrote data to be consistent 
with CMIP for variable cl found in table Amon." ;
                :initialization_index = 1 ;
                :institution = "Institute for Numerical Mathematics, Russian 
Academy of Science, Moscow 119991, Russia" ;
                :institution_id = "INM" ;
                :mip_era = "CMIP6" ;
                :nominal_resolution = "100 km" ;
                :parent_activity_id = "CMIP" ;
                :parent_experiment_id = "piControl" ;
                :parent_mip_era = "CMIP6" ;
                :parent_source_id = "INM-CM5-0" ;
                :parent_time_units = "days since 1850-01-01" ;
                :parent_variant_label = "r1i1p1f1" ;
                :physics_index = 1 ;
                :product = "model-output" ;
                :realization_index = 1 ;
                :realm = "atmos" ;
                :references = "Clim. Dyn., 2017, 3715-3734)\'" ;
                :run_variant = "standard" ;
                :source = "INM-CM5-0 (2016): \n",
                        "aerosol: INM-AER1\n",
                        "atmos: INM-AM5-0 (2x1.5; 180 x 120 longitude/latitude; 
73 levels; top level sigma = 0.0002)\n",
                        "atmosChem: none\n",
                        "land: INM-LND1\n",
                        "landIce: none\n",
                        "ocean: INM-OM5 (North Pole shifted to 60N, 90E. 
0.5x0.25; 720 x 720 longitude/latitude; 40 levels; vertical sigma 
coordinate)\n",
                        "ocnBgchem: none\n",
                        "seaIce: INM-ICE1" ;
                :source_id = "INM-CM5-0" ;
                :source_type = "AOGCM AER" ;
                :sub_experiment = "none" ;
                :sub_experiment_id = "none" ;
                :table_id = "Amon" ;
                :table_info = "Creation Date:(30 July 2018) 
MD5:fa9bc503f57fb067bf398cab2c4ba77e" ;
                :title = "INM-CM5-0 output prepared for CMIP6" ;
                :tracking_id = 
"hdl:21.14100/8645a6fa-b7f3-4ece-ad8e-4541cee008ea" ;
                :variable_id = "cl" ;
                :variant_label = "r1i1p1f1" ;
                :license = "CMIP6 model data produced by Lawrence Livermore 
PCMDI is licensed under a Creative Commons Attribution ShareAlike 4.0 
International License (https://creativecommons.org/licenses). Consult 
https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 
output, including citation requirements and proper acknowledgment. Further 
information about this data, including some limitations, can be found via the 
further_info_url (recorded as a global attribute in this file) and at 
https:///pcmdi.llnl.gov/. 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." ;
                :cmor_version = "3.3.2" ;
data:

 time = 15, 45 ;

 time_bnds =
  0, 30,
  30, 60 ;

 lev = 0.899999976158142, 0.699999988079071, 0.550000011920929,
    0.300000011920929, 0.100000001490116 ;

 lev_bnds =
  1, 0.800000011920929,
  0.800000011920929, 0.620000004768372,
  0.620000004768372, 0.419999986886978,
  0.419999986886978, 0.200000002980232,
  0.200000002980232, 0 ;

 p0 = 100000 ;

 a = 0.100000001490116, 0.219999998807907, 0.300000011920929,
    0.200000002980232, 0.100000001490116 ;

 b = 0.800000011920929, 0.5, 0.200000002980232, 0.100000001490116, 0 ;

 ps =
  94100, 94500, 94900, 95300,
  95700, 96100, 96500, 96900,
  97300, 97700, 98100, 98500,
  94200, 94600, 95000, 95400,
  95800, 96200, 96600, 97000,
  97400, 97800, 98200, 98600 ;

 a_bnds =
  0, 0.159999996423721,
  0.159999996423721, 0.25,
  0.25, 0.25,
  0.25, 0.150000005960464,
  0.150000005960464, 0 ;

 b_bnds =
  1, 0.649999976158142,
  0.649999976158142, 0.349999994039536,
  0.349999994039536, 0.150000005960464,
  0.150000005960464, 0.0500000007450581,
  0.0500000007450581, 0 ;

 lat = 10, 20, 30 ;

 lat_bnds =
  5, 15,
  15, 25,
  25, 35 ;

 lon = 0, 90, 180, 270 ;

 lon_bnds =
  -45, 45,
  45, 135,
  135, 225,
  225, 315 ;

 cl =
  25.78, 25.86, 25.94, 26.02,
  25.46, 25.54, 25.62, 25.7,
  25.14, 25.22, 25.3, 25.38,
  24.5, 24.58, 24.66, 24.74,
  24.18, 24.26, 24.34, 24.42,
  23.86, 23.94, 24.02, 24.1,
  23.22, 23.3, 23.38, 23.46,
  22.9, 22.98, 23.06, 23.14,
  22.58, 22.66, 22.74, 22.82,
  21.94, 22.02, 22.1, 22.18,
  21.62, 21.7, 21.78, 21.86,
  21.3, 21.38, 21.46, 21.54,
  20.66, 20.74, 20.82, 20.9,
  20.34, 20.42, 20.5, 20.58,
  20.02, 20.1, 20.18, 20.26,
  25.8, 25.88, 25.96, 26.04,
  25.48, 25.56, 25.64, 25.72,
  25.16, 25.24, 25.32, 25.4,
  24.52, 24.6, 24.68, 24.76,
  24.2, 24.28, 24.36, 24.44,
  23.88, 23.96, 24.04, 24.12,
  23.24, 23.32, 23.4, 23.48,
  22.92, 23, 23.08, 23.16,
  22.6, 22.68, 22.76, 22.84,
  21.96, 22.04, 22.12, 22.2,
  21.64, 21.72, 21.8, 21.88,
  21.32, 21.4, 21.48, 21.56,
  20.68, 20.76, 20.84, 20.92,
  20.36, 20.44, 20.52, 20.6,
  20.04, 20.12, 20.2, 20.28 ;
}

_______________________________________________
CF-metadata mailing list
[email protected]
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata

Reply via email to