Skip to content

Dataset problem: Issues with hybrid pressure coordinate in CESM2 and CESM2-FV2 (CMIP6) #538

Description

@schlunma

Describe the dataset issue
The necessary attributes formula_terms and standard_name for the hybrid pressure coordinate are missing, so iris cannot read it. The necessary attributes formula_terms and standard_name for the hybrid pressure coordinate are missing, so iris cannot read it. Order of vertical coordinate is reversed, i.e. the derived air_pressure is increasing instead of decreasing. Points and bounds of lev do not match: points: -3.643466 to -992.5561 hPa; bounds : 1-0.9851122 to 0.005031692-0.00225524 hPa. Points and bounds of a and b do not match, one of them is flipped (e.g. b ranges from 1 to 0, while b_bnds ranges from 0 to 1).

  • Data file has been changed by you in any way
  • Project (CMIP5/CMIP6/OBS/obs4mips/etc): CMIP6
  • Full dataset description (fill out as many as you know, please):
    • dataset: CESM2, CESM2-FV2
    • experiment: historical
    • mip: Amon
    • grid: gn
    • version: v20190308
    • variable used: cl, cli, clw
  • Pointer to existing copy of data on ESGF node (it would be very useful if you could provide a physical fullpath to the file(s) that are causing the problem, e.g. on CEDA Jasmin or DKRZ):
    /mnt/lustre02/work/bd0854/DATA/ESMValTool2/CMIP6_DKRZ/CMIP/NCAR/CESM2/historical/r1i1p1f1/Amon/cl/gn/v20190308/cl_Amon_CESM2_historical_r1i1p1f1_gn_185001-201412.nc

ncdump (without global attributes):

netcdf cl_Amon_CESM2_historical_r1i1p1f1_gn_185001-201412 {
dimensions:
        lat = 192 ;
        nbnd = 2 ;
        lon = 288 ;
        lev = 32 ;
        time = UNLIMITED ; // (1980 currently)
variables:
        float cl(time, lev, lat, lon) ;
                cl:_FillValue = 1.e+20f ;
                cl:cell_measures = "area: areacella" ;
                cl:cell_methods = "area: time: mean" ;
                cl:comment = "Includes both large-scale and convective cloud." ;
                cl:coordinates = "time lev lat lon" ;
                cl:description = "Includes both large-scale and convective cloud." ;
                cl:frequency = "mon" ;
                cl:id = "cl" ;
                cl:long_name = "Percentage Cloud Cover" ;
                cl:mipTable = "Amon" ;
                cl:missing_value = 1.e+20 ;
                cl:out_name = "cl" ;
                cl:prov = "Amon ((isd.003))" ;
                cl:realm = "atmos" ;
                cl:standard_name = "cloud_area_fraction_in_atmosphere_layer" ;
                cl:time = "time" ;
                cl:time_label = "time-mean" ;
                cl:time_title = "Temporal mean" ;
                cl:title = "Percentage Cloud Cover" ;
                cl:type = "real" ;
                cl:units = "%" ;
                cl:variable_id = "cl" ;
        float ps(time, lat, lon) ;
                ps:long_name = "surface_air_pressure" ;
                ps:units = "Pa" ;
        float p0 ;
                p0:long_name = "vertical coordinate formula term: reference pressure" ;
                p0:units = "Pa" ;
        double a(lev) ;
                a:bounds = "a_bnds" ;
                a:long_name = "vertical coordinate formula term: a(k)" ;
        double b(lev) ;
                b:bounds = "b_bnds" ;
                b:long_name = "vertical coordinate formula term: b(k)" ;
        double lat(lat) ;
                lat:axis = "Y" ;
                lat:bounds = "lat_bnds" ;
                lat:standard_name = "latitude" ;
                lat:title = "Latitude" ;
                lat:type = "double" ;
                lat:units = "degrees_north" ;
                lat:valid_max = 90. ;
                lat:valid_min = -90. ;
        double lev(lev) ;
                lev:axis = "Z" ;
                lev:bounds = "lev_bnds" ;
                lev:positive = "up" ;
                lev:standard_name = "alevel" ;
                lev:title = "atmospheric model level" ;
                lev:type = "double" ;
                lev:units = "hPa" ;
        double lon(lon) ;
                lon:axis = "X" ;
                lon:bounds = "lon_bnds" ;
                lon:standard_name = "longitude" ;
                lon:title = "Longitude" ;
                lon:type = "double" ;
                lon:units = "degrees_east" ;
                lon:valid_max = 360. ;
                lon:valid_min = 0. ;
        double time(time) ;
                time:axis = "T" ;
                time:bounds = "time_bnds" ;
                time:standard_name = "time" ;
                time:title = "time" ;
                time:type = "double" ;
                time:units = "days since 0001-01-01 00:00:00" ;
                time:calendar = "noleap" ;
        double time_bnds(time, nbnd) ;
                time_bnds:calendar = "noleap" ;
                time_bnds:units = "days since 0001-01-01 00:00:00" ;
        double b_bnds(lev, nbnd) ;
                b_bnds:long_name = "vertical coordinate formula term: b(k+1/2)" ;
        double lat_bnds(lat, nbnd) ;
                lat_bnds:units = "degrees_north" ;
        double lon_bnds(lon, nbnd) ;
                lon_bnds:units = "degrees_east" ;
        double lev_bnds(lev, nbnd) ;
                lev_bnds:formula = "p = a*p0 + b*ps" ;
                lev_bnds:formula_terms = "p0: p0 a: a_bnds b: b_bnds ps: ps" ;
                lev_bnds:standard_name = "atmosphere_hybrid_sigma_pressure_coordinate" ;
                lev_bnds:units = "hPa" ;
        double a_bnds(lev, nbnd) ;
                a_bnds:long_name = "vertical coordinate formula term: a(k+1/2)" ;

Fix provided in #559.

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions