Bug #390
openchecksums of non-main non-auxiliary variable
0%
Description
I re-ran QC on a dataset I had QC'ed a few months ago, INM's 1pctCO2 experiment, and saw a new error.
Here is a sample error file, qc_error_so_Omon_inmcm4_1pctCO2_r1i1p1_209001-209412.txt
:
@QC::checkProjectTableAuxiliary() Conflict for auxiliary between file and table. File: /cmip5/data/cmip5/output1/INM/inmcm4/1pctCO2/mon/ocean/Omon/r1i1p1/so/1/so_Omon_inmcm4_1pctCO2_r1i1p1_209001-209412.nc Project table project_standard_output_12May2010.csv Variable: eta checksum: table: 1042463503 ncfile: 3660952389@
When I looked at the project table, I saw that both checksums (1042463503 and 3660952389) belong to an auxiliary variable lev_bnds, allegedly associated with a variable eta. The project table has two entries for eta. Other than the duplicate entry, eta appears in the project table the same way as any other variable which represents a physical quantity.
What is eta? It is not what I would call a "main variable" - there is no directory named eta and no filename 'eta_*.nc'. But, if you look at the definition of QC::addAuxToProjectTable(...)
you will see that the term "auxiliary variable" is defined so that eta cannot be classed as an auxiliary variable either - an 'auxiliary variable' cannot be time-dependent, but eta is time-dependent. You find eta in files belonging to other variables.
It seems to me that 'eta' gets treated sometimes as an auxiliary and sometimes as a main variable, confusing the whole process of computing checksums and writing and reading them from the project table.
Here is a sample header for a file involved in this problem:
@bash-3.2$ ncdump -h so_Omon_inmcm4_1pctCO2_r1i1p1_209001-209412.nc netcdf so_Omon_inmcm4_1pctCO2_r1i1p1_209001-209412 { dimensions: time = UNLIMITED ; // (60 currently) lev = 40 ; rlat = 340 ; rlon = 360 ; bnds = 2 ; vertices = 4 ; variables: double time(time) ; time:bounds = "time_bnds" ; time:units = "days since 2090-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:axis = "Z" ; lev:positive = "up" ; lev:long_name = "ocean sigma coordinate" ; lev:standard_name = "ocean_sigma_coordinate" ; lev:formula = "z(n,k,j,i) = eta(n,j,i) + sigma(k)*(depth(j,i)+eta(n,j,i))" ; lev:formula_terms = "sigma: lev eta: eta depth: depth" ; double lev_bnds(lev, bnds) ; lev_bnds:formula = "z(n,k,j,i) = eta(n,j,i) + sigma(k)*(depth(j,i)+eta(n,j,i))" ; lev_bnds:standard_name = "ocean_sigma_coordinate" ; lev_bnds:units = "" ; lev_bnds:formula_terms = "sigma: lev_bnds eta: eta depth: depth" ; float eta(time, rlat, rlon) ; eta:long_name = "Sea Surface Height" ; eta:units = "m" ; eta:cell_methods = "time: mean" ; float depth(rlat, rlon) ; depth:long_name = "Sea Floor Depth" ; depth:comment = "Ocean bathymetry." ; depth:units = "m" ; double rlat(rlat) ; rlat:units = "degrees" ; rlat:axis = "Y" ; rlat:long_name = "latitude in rotated pole grid" ; rlat:standard_name = "grid_latitude" ; double rlon(rlon) ; rlon:units = "degrees" ; rlon:axis = "X" ; rlon:long_name = "longitude in rotated pole grid" ; rlon:standard_name = "grid_longitude" ; int rotated_latitude_longitude ; rotated_latitude_longitude:grid_mapping_name = "rotated_latitude_longitude" ; rotated_latitude_longitude:grid_north_pole_latitude = 70. ; rotated_latitude_longitude:grid_north_pole_longitude = 100. ; rotated_latitude_longitude:north_pole_grid_longitude = -80. ; float lat(rlat, rlon) ; lat:standard_name = "latitude" ; lat:long_name = "latitude coordinate" ; lat:units = "degrees_north" ; lat:bounds = "lat_vertices" ; float lon(rlat, rlon) ; lon:standard_name = "longitude" ; lon:long_name = "longitude coordinate" ; lon:units = "degrees_east" ; lon:bounds = "lon_vertices" ; float lat_vertices(rlat, rlon, vertices) ; lat_vertices:units = "degrees_north" ; float lon_vertices(rlat, rlon, vertices) ; lon_vertices:units = "degrees_east" ; float so(time, lev, rlat, rlon) ; so:standard_name = "sea_water_salinity" ; so:long_name = "Sea Water Salinity" ; so:units = "psu" ; so:original_name = "so" ; so:cell_methods = "time: mean (interval: 1 month)" ; so:cell_measures = "area: areacello volume: volcello" ; so:history = "2010-06-21T10:09:16Z altered by CMOR: Reordered dimensions, original order: time rlat rlon lev." ; so:missing_value = 1.e+20f ; so:_FillValue = 1.e+20f ; so:associated_files = "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_fx_inmcm4_1pctCO2_r0i0p0.nc areacello: areacello_fx_inmcm4_1pctCO2_r0i0p0.nc volcello: volcello_fx_inmcm4_1pctCO2_r0i0p0.nc" ; so:grid_mapping = "rotated_latitude_longitude" ; so:coordinates = "lat lon" ; // global attributes: :institution = "INM (Institute for Numerical Mathematics, Moscow, Russia)" ; :institute_id = "INM" ; :experiment_id = "1pctCO2" ; :source = "inmcm4 (2009)" ; :model_id = "inmcm4" ; :forcing = "N/A" ; :parent_experiment_id = "piControl" ; :branch_time = 87600. ; :contact = "Evgeny Volodin, volodin@inm.ras.ru,INM RAS, Gubkina 8, Moscow, 119333 Russia,+7-495-9383904" ; :history = "Output from /data5/volodin/4CO2A 2010-06-21T10:09:17Z CMOR rewrote data to comply with CF standards and CMIP5 requirements." ; :comment = "no comments" ; :references = "Volodin, Diansky, Gusev 2010. Climate model INMCM4.0. Izvestia RAS. Atmospheric and oceanic physics, V.46, N4, in print." ; :initialization_method = 1 ; :physics_version = 1 ; :tracking_id = "14381571-9a89-40fe-b04b-2dd039f03d10" ; :product = "output" ; :experiment = "1 percent per year CO2" ; :frequency = "mon" ; :creation_date = "2010-06-21T10:11:14Z" ; :Conventions = "CF-1.4" ; :project_id = "CMIP5" ; :table_id = "Table Omon (12 May 2010) f2afe576fb73a3a11aaa3cc8f2e62cf3" ; :title = "inmcm4 model output prepared for CMIP5 1 percent per year CO2" ; :parent_experiment = "pre-industrial control" ; :modeling_realm = "ocean" ; :realization = 1 ; :cmor_version = "2.0.0" ; } @
Updated by Anonymous over 13 years ago
- Status changed from New to Resolved
- Assignee set to Anonymous
see bug-fix report: #2011-07-26
sent via QC-mailing-list.