Changeset 299 for IO_handling


Ignore:
Timestamp:
23/11/04 15:20:04 (15 years ago)
Author:
spascoe
Message:

Added pa.pp test file.
Edited test/README to discuss issues with hybrid pressure coordinates and
CF-compliance.

Location:
IO_handling/trunk/ppio/cu2netcdf/test
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • IO_handling/trunk/ppio/cu2netcdf/test/README

    r296 r299  
    1414                generated using xconv. 
    1515 
     165. pa.pp      - A CPDN ouput file including a hybrid pressure coordinate. 
     17 
     18 
    1619Test procedure 
    1720-------------- 
     
    2326--------------- 
    2427 
    25 Results depends on whether and how the dmalloc debugging library used. 
     28*.nc and pe.pp are converted fine.  pa.pp is converted properly with 
     29 the nvdims>0 error check included in the source (see CF-Compliance). 
    2630 
    27 Without dmalloc, trivial.nc is processed successfully but all other 
    28 input files cause a segmentation fault.  With dmalloc linked in 
    29 nc_put_var_double() raises a "Variable not found" error for trivial.nc. 
     31CF-Compliance 
     32------------- 
    3033 
    31 When you also include the dmalloc.h header file (which according to 
    32 the dmalloc documentation is optional) all input files are converted 
    33 successfully. 
     34The output from pa.pp and pe.pp have been passed through the 
     35CF-Conformance checker.  Results are in *.cf_check.  The following 
     36issues are highlighted: 
    3437 
    35 Changing the netcdf API from version 3 to version 2 does not affect the result. 
     381. pressure dimensions such as z1_level, z2_toa and z0_surface have an 
     39   axis attribute but no units.  I'm not sure whether these dimensions 
     40   should have units or whether the CF-checker doesn't realise they 
     41   are dimensionless.  
    3642 
     432. Several problems with dimensionless hybrid pressure coordinates. 
     44    
     45   (i) p0 is defined as having NO DIMENSIONS by cdunifpp.  This causes 
     46   core dump if passed to nc_put_var* so the case if filtered out and 
     47   p0 isn't written to the netcdf file.  Looking at the ppio source, 
     48   ndims is clearly set to 0 (cdunifpp_process.c:715) which doesn't 
     49   look legal to me.  Surely we need to create a variable with 1 
     50   dimension of length 1? 
    3751 
     52   (ii) ps isn't defined in pa.pp so there isn't a pressure field for 
     53   the formula_terms attribute to reference.  This is probably a 
     54   problem with CPDN since we create several pp files, one of which 
     55   defines ps.  However, pa.nc isn't valid CF without the ps field. 
    3856 
     57   (iii) I am a little confused about the correct form of 
     58   formula_terms.  CF-1.0 defines 
     59   "atmosphere_hybrid_sigma_pressure_coordinate" as: 
    3960 
     61     p(n,k,j,i) = a(k)*p0 + b(k)*ps(n,j,i) 
     62    
     63        or  
     64 
     65     p(n,k,j,i) = ap(k) + b(k)*ps(n,j,i) 
     66 
     67   It's then a little wooly about what form formula_terms should take 
     68   in the two cases.  Surely the second case doesn't need p0?  CF-1.0 
     69   just says: 
     70    
     71     formula_terms = "a: var1 b: var2 ps: var3 p0: var4"  
     72       where a is replaced by ap if appropriate. 
     73 
     74   It doesn't say anything about missing out "p0: var4". 
     75   cdunifpp defines it as: 
     76 
     77     formula_terms = "ap: z1_acoeff b: z1_bcoeff ps: ps p0: p0" 
     78 
     79   but as explained above there are problems with ps and p0. 
     80 
     81   (iv) Less seriously the parameter variables z1_acoeff and z1_bcoeff 
     82   aren't given a long_name or standard_name.  This results in a warning.  
Note: See TracChangeset for help on using the changeset viewer.