[cmor] 34/190: Small patch to be able to read 'generic_levels' global attribute on tables and understand any level listed there as a generic level just like alevel and olevel

Alastair McKinstry mckinstry at moszumanska.debian.org
Tue Jul 21 12:54:34 UTC 2015


This is an automated email from the git hooks/post-receive script.

mckinstry pushed a commit to branch debian/master
in repository cmor.

commit 29d36713a64eb1da95dcb8b6a704941a7c7f0d53
Author: Charles Doutriaux <doutriaux1 at llnl.gov>
Date:   Thu Jul 8 17:45:13 2010 -0700

    Small patch to be able to read 'generic_levels' global attribute on tables and understand any level listed there as a generic level just like alevel and olevel
---
 Doc/cmor_users_guide.doc              | Bin 357376 -> 356864 bytes
 Doc/cmor_users_guide.htm              | 265 +++++++++++++++++-----------------
 Doc/cmor_users_guide.pdf              | Bin 551781 -> 551787 bytes
 Doc/cmor_users_guide_files/header.htm |   2 +-
 Lib/check_CMOR_compliant.py           |   2 +-
 Src/cmor_tables.c                     |  16 ++
 Src/cmor_variables.c                  |  14 +-
 include/cmor.h                        |   3 +-
 8 files changed, 166 insertions(+), 136 deletions(-)

diff --git a/Doc/cmor_users_guide.doc b/Doc/cmor_users_guide.doc
index b495bc0..a88ac04 100644
Binary files a/Doc/cmor_users_guide.doc and b/Doc/cmor_users_guide.doc differ
diff --git a/Doc/cmor_users_guide.htm b/Doc/cmor_users_guide.htm
index 00d9d99..2ffc846 100644
--- a/Doc/cmor_users_guide.htm
+++ b/Doc/cmor_users_guide.htm
@@ -19,17 +19,17 @@ xmlns:css="http://macVmlSchemaUri" xmlns="http://www.w3.org/TR/REC-html40">
   <o:Template>Normal.dotm</o:Template>
   <o:LastAuthor>Default</o:LastAuthor>
   <o:Revision>2</o:Revision>
-  <o:TotalTime>1</o:TotalTime>
-  <o:LastPrinted>2010-06-14T19:47:00Z</o:LastPrinted>
-  <o:Created>2010-06-14T19:48:00Z</o:Created>
-  <o:LastSaved>2010-06-14T19:48:00Z</o:LastSaved>
-  <o:Pages>14</o:Pages>
-  <o:Words>23762</o:Words>
-  <o:Characters>135445</o:Characters>
+  <o:TotalTime>0</o:TotalTime>
+  <o:LastPrinted>2010-07-08T21:50:00Z</o:LastPrinted>
+  <o:Created>2010-07-08T21:50:00Z</o:Created>
+  <o:LastSaved>2010-07-08T21:50:00Z</o:LastSaved>
+  <o:Pages>4</o:Pages>
+  <o:Words>23765</o:Words>
+  <o:Characters>135465</o:Characters>
   <o:Company>PCMDI</o:Company>
   <o:Lines>1128</o:Lines>
   <o:Paragraphs>270</o:Paragraphs>
-  <o:CharactersWithSpaces>166335</o:CharactersWithSpaces>
+  <o:CharactersWithSpaces>166360</o:CharactersWithSpaces>
   <o:Version>12.0</o:Version>
  </o:DocumentProperties>
  <o:OfficeDocumentSettings>
@@ -1390,7 +1390,7 @@ style='font-size:14.0pt'>Charles Doutriaux, Karl E. Taylor<o:p></o:p></span></p>
 style='font-size:14.0pt'><span style='mso-element:field-begin'></span><span
 style="mso-spacerun: yes"> </span>TIME \@ "MMMM d, yyyy" <span
 style='mso-element:field-separator'></span></span><![endif]--><span
-style='font-size:14.0pt'><span style='mso-no-proof:yes'>June 14, 2010</span></span><!--[if supportFields]><span
+style='font-size:14.0pt'><span style='mso-no-proof:yes'>July 8, 2010</span></span><!--[if supportFields]><span
 style='font-size:14.0pt'><span style='mso-element:field-end'></span></span><![endif]--><span
 style='font-size:14.0pt'><o:p></o:p></span></p>
 
@@ -5627,7 +5627,8 @@ temporary array to write<o:p></o:p></span></p>
 style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>83.<span
 style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
 style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Invalid absolute mean for
-data written (lower or greater than what the MIP table allows)<o:p></o:p></span></p>
+data written (lower or greater by one order of magintudethan what the MIP table
+allows)<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
 style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>84.<span
@@ -6043,8 +6044,8 @@ style="mso-spacerun: yes">       </span>alons(i)
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes">     </span>bnds_lon(1,i) = (i -
+style="mso-spacerun: yes"> </span><span style="mso-spacerun:
+yes">      </span>bnds_lon(1,i) = (i -
 1.5)*360./SIZE(alons)<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
@@ -6317,8 +6318,8 @@ j=1,SIZE(field, 2)<o:p></o:p></span></p>
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun:
-yes">          </span>DO
-i=1,SIZE(field, 1)<o:p></o:p></span></p>
+yes">          </span>DO i=1,SIZE(field,
+1)<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -6369,8 +6370,8 @@ style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes">  </span>INTEGER, INTENT(IN) :: it<o:p></o:p></span></p>
+style="mso-spacerun: yes"> </span><span style="mso-spacerun:
+yes">   </span>INTEGER, INTENT(IN) :: it<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -6874,9 +6875,9 @@ style="mso-spacerun: yes">  </span>CHARACTER (LEN=5), DIMENSION(n3d) ::
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun:
-yes">                  
+yes">                 
 </span><span style="mso-spacerun:
-yes">               </span>units3d=(/
+yes">                </span>units3d=(/
 '%<span style="mso-spacerun: yes">    </span>', 'm s-1',<span
 style="mso-spacerun: yes">   </span>'K<span style="mso-spacerun:
 yes">    </span>'<span style="mso-spacerun: yes"> 
@@ -6934,8 +6935,8 @@ style="mso-spacerun: yes">   </span>CHARACTER (LEN=6), DIMENSION(n2d)
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes"> </span><span style="mso-spacerun:
-yes">                        
+style="mso-spacerun:
+yes">                         
 </span>units2d=(/ 'W m-2 ', 'K<span style="mso-spacerun: yes">    
 </span>', 'kg m-2', 'Pa<span style="mso-spacerun: yes">   
 </span>' /)<o:p></o:p></span></p>
@@ -6998,7 +6999,8 @@ style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier N
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER :: error_flag<o:p></o:p></span></p>
+style="mso-spacerun: yes"> </span><span style="mso-spacerun:
+yes"> </span>INTEGER :: error_flag<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -7218,8 +7220,8 @@ style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>call read_coords(alats, alons, plevs,
-bnds_lat, bnds_lon)<o:p></o:p></span></p>
+style="mso-spacerun: yes">  </span>call read_coords(alats, alons, plevs, bnds_lat,
+bnds_lon)<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -7379,9 +7381,9 @@ which data were output starting with nominal '// &<o:p></o:p></span></p>
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun: yes">       </span>'date of
 January 2030',<span style="mso-spacerun:
-yes">               
+yes">              
 </span><span style="mso-spacerun:
-yes">                 </span>&<o:p></o:p></span></p>
+yes">                  </span>&<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -7633,9 +7635,8 @@ style="mso-spacerun: yes">        </span><o:p
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes"> </span><span style="mso-spacerun:
-yes"> </span>ipres = cmor_axis(<span style="mso-spacerun: yes"> 
-</span>&<o:p></o:p></span></p>
+style="mso-spacerun: yes">  </span>ipres = cmor_axis(<span
+style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -7711,8 +7712,8 @@ yes">           </span>&<o
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun: yes">      
-</span>units='days since 2030-1-1',<span style="mso-spacerun: yes"> 
-</span>&<o:p></o:p></span></p>
+</span>units='days since 2030-1-1', <span style="mso-spacerun:
+yes"> </span>&<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -7758,8 +7759,8 @@ yes">            &nb
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span><span
-style="mso-spacerun: yes">  </span>interval='20 minutes')<o:p></o:p></span></p>
+style="mso-spacerun: yes">    </span><span style="mso-spacerun:
+yes">   </span>interval='20 minutes')<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -7909,8 +7910,9 @@ style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun: yes">      
 </span>zaxis_id=ilev,<span style="mso-spacerun:
-yes">                  
-</span><span style="mso-spacerun: yes">    </span>& <o:p></o:p></span></p>
+yes">                 
+</span><span style="mso-spacerun:
+yes">     </span>& <o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -7951,9 +7953,9 @@ style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun: yes">      
 </span>zaxis_id=ilev,<span style="mso-spacerun:
-yes">                
+yes">               
 </span><span style="mso-spacerun:
-yes">      </span>&<o:p></o:p></span></p>
+yes">       </span>&<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -7993,9 +7995,9 @@ style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun: yes">      
 </span>zaxis_id=ilev,<span style="mso-spacerun:
-yes">                
+yes">               
 </span><span style="mso-spacerun:
-yes">        </span>&<o:p></o:p></span></p>
+yes">         </span>&<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -8202,8 +8204,8 @@ ilon, ilat, itim /), &<o:p></o:p></span></p>
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun:
 yes">         
-</span>missing_value=1.0e28,<span style="mso-spacerun: yes">   
-</span><span style="mso-spacerun: yes">   </span>&<o:p></o:p></span></p>
+</span>missing_value=1.0e28,<span style="mso-spacerun: yes">  
+</span><span style="mso-spacerun: yes">    </span>&<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -8323,8 +8325,8 @@ write these to netCDF files (with <o:p></o:p></span></p>
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">       </span>one field per file, but all
-months included in the loop).<o:p></o:p></span></p>
+yes">      </span><span style="mso-spacerun:
+yes"> </span>one field per file, but all months included in the loop).<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -8456,8 +8458,8 @@ yes">            &nb
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun: yes">        
-</span>time_vals <span style="mso-spacerun:
-yes">    </span>= time,<span style="mso-spacerun:
+</span>time_vals<span style="mso-spacerun: yes">    
+</span>= time,<span style="mso-spacerun:
 yes">                               
 </span>&<o:p></o:p></span></p>
 
@@ -8559,7 +8561,8 @@ style="mso-spacerun: yes">    </span>DO m=2,n3d<o:p></o:p></span>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span><o:p></o:p></span></p>
+style="mso-spacerun: yes">       </span><span
+style="mso-spacerun: yes"> </span><o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -8810,9 +8813,9 @@ style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier N
 style="mso-spacerun:
 yes">            
 </span>ntimes_passed = 1,<span style="mso-spacerun:
-yes">         </span><span
+yes">        </span><span
 style="mso-spacerun:
-yes">                          </span>&<o:p></o:p></span></p>
+yes">                           </span>&<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -8887,7 +8890,8 @@ style="mso-spacerun: yes">     </span><o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>END DO time_loop<o:p></o:p></span></p>
+style="mso-spacerun: yes"> </span><span style="mso-spacerun:
+yes"> </span>END DO time_loop<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -9368,8 +9372,7 @@ style="mso-spacerun: yes">  </span>double y[lat];<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes"> </span><span style="mso-spacerun:
-yes"> </span>double lon_coords[lon*lat];<o:p></o:p></span></p>
+style="mso-spacerun: yes">  </span>double lon_coords[lon*lat];<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -9503,8 +9506,7 @@ style="mso-spacerun: yes">  </span>int exit_mode;<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes"> </span><span style="mso-spacerun:
-yes"> </span>/* first construct grid lon/lat */<o:p></o:p></span></p>
+style="mso-spacerun: yes">  </span>/* first construct grid lon/lat */<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -9588,8 +9590,9 @@ style="mso-spacerun: yes">     
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>lat_vertices[i*4+j*lon*4+3]
-= lat_coords[i+j*lon]+delta_lat;<o:p></o:p></span></p>
+style="mso-spacerun: yes">     </span><span
+style="mso-spacerun: yes"> </span>lat_vertices[i*4+j*lon*4+3] =
+lat_coords[i+j*lon]+delta_lat;<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -10485,8 +10488,8 @@ style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier N
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun:
-yes">                    
-</span><span style="mso-spacerun: yes"> </span>units = 'm', <o:p></o:p></span></p>
+yes">                   
+</span><span style="mso-spacerun: yes">  </span>units = 'm', <o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -10651,10 +10654,9 @@ yes">            &nb
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          </span><span
-style="mso-spacerun:
-yes">                 </span>positive
+style="mso-spacerun: yes">        
+</span><span style="mso-spacerun:
+yes">                  </span>positive
 = 'down',<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
@@ -10802,8 +10804,8 @@ experiment'<span style="mso-spacerun: yes">  </span>! official name(s) of <
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
 style="mso-spacerun: yes">   </span>'SRES A2 experiment'<span
-style="mso-spacerun: yes">    </span><span style="mso-spacerun:
-yes">               </span>!<span
+style="mso-spacerun: yes">   </span><span style="mso-spacerun:
+yes">                </span>!<span
 style="mso-spacerun: yes">  </span>project's experiments<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
@@ -10848,9 +10850,9 @@ style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier N
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>magic_number:
--1<span style="mso-spacerun: yes">     </span><span
-style="mso-spacerun: yes">     </span>! used to check
-whether this file has been <o:p></o:p></span></p>
+-1<span style="mso-spacerun: yes">    </span><span
+style="mso-spacerun: yes">      </span>! used to
+check whether this file has been <o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -10875,9 +10877,9 @@ yes">            &nb
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>approx_interval:<span
-style="mso-spacerun: yes">  </span>30.<span style="mso-spacerun:
-yes">  </span><span style="mso-spacerun: yes">   </span>!
-approximate spacing between successive time<o:p></o:p></span></p>
+style="mso-spacerun: yes">  </span>30. <span style="mso-spacerun:
+yes">    </span>! approximate spacing between successive
+time<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -10901,8 +10903,9 @@ value used to indicate a missing value<o:p></o:p></span></p>
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
 style="mso-spacerun:
 yes">                         
-</span>!<span style="mso-spacerun: yes">   </span>in arrays output by
-netCDF as 32-bit IEEE <o:p></o:p></span></p>
+</span>!<span style="mso-spacerun: yes">  </span><span
+style="mso-spacerun: yes"> </span>in arrays output by netCDF as 32-bit
+IEEE <o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -10934,8 +10937,8 @@ style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier N
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>set default specifications for
+style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
+<span style="mso-spacerun: yes"> </span>set default specifications for
 subroutine arguments to:<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
@@ -11086,10 +11089,9 @@ specifications for cmor_axis <o:p></o:p></span></p>
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes">  </span>acceptable arguments include units length coord_vals
-cell_bounds interval<o:p></o:p></span></p>
+style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
+<span style="mso-spacerun: yes">   </span>acceptable arguments
+include units length coord_vals cell_bounds interval<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!required:<span
@@ -11111,11 +11113,10 @@ style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier N
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!ignored:<span
-style="mso-spacerun:
-yes">          </span><span
-style="mso-spacerun:
-yes">         </span>! (default:
-interval)<o:p></o:p></span></p>
+style="mso-spacerun: yes">        
+</span><span style="mso-spacerun:
+yes">          </span>!
+(default: interval)<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!forbidden:<o:p></o:p></span></p>
@@ -11203,9 +11204,9 @@ yes">            &nb
 </span>! type: double precision (default: no check performed<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!valid_max:<span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes">             </span>!
+style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!valid_max:
+<span style="mso-spacerun:
+yes">              </span>!
 type: double precision (default: no check performed<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
@@ -11401,8 +11402,9 @@ yes">            &nb
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!comment:<span
 style="mso-spacerun:
-yes">                  
-</span><span style="mso-spacerun: yes"> </span>! (default: undeclared)<o:p></o:p></span></p>
+yes">                 
+</span><span style="mso-spacerun: yes">  </span>! (default:
+undeclared)<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
@@ -11576,9 +11578,10 @@ style="mso-spacerun: yes">        
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
 style="mso-spacerun: yes">       
-</span>0.<span style="mso-spacerun: yes">    </span><span
-style="mso-spacerun: yes">       </span>!
-CMOR will add n*360 to input values<o:p></o:p></span></p>
+</span>0.<span style="mso-spacerun: yes">   </span><span
+style="mso-spacerun:
+yes">        </span>! CMOR will add
+n*360 to input values<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
@@ -11602,9 +11605,9 @@ rearranged <o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span><span
+style="mso-spacerun: yes">       </span><span
 style="mso-spacerun:
-yes">                       </span>!<span
+yes">                        </span>!<span
 style="mso-spacerun: yes">  </span>appropriately.<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
@@ -11832,9 +11835,8 @@ yes">           
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">          </span><span
-style="mso-spacerun: yes">   </span>Z<o:p></o:p></span></p>
+style="mso-spacerun: yes">        
+</span><span style="mso-spacerun: yes">    </span>Z<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
@@ -12789,8 +12791,8 @@ style="mso-spacerun: yes">   </span>time: mean<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">   </span><span style="mso-spacerun:
-yes">   </span>Total Cloud Fraction<o:p></o:p></span></p>
+style="mso-spacerun: yes">  </span><span style="mso-spacerun:
+yes">    </span>Total Cloud Fraction<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
@@ -12824,7 +12826,8 @@ yes">          </span>100.0<o:p></o
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_min_mean_abs:<span
-style="mso-spacerun: yes">    </span>10.0<o:p></o:p></span></p>
+style="mso-spacerun: yes">   </span><span style="mso-spacerun:
+yes"> </span>10.0<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_max_mean_abs:<span
@@ -13393,10 +13396,9 @@ yes">           
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
 style="mso-spacerun:
 yes">            
-</span>Z<span style="mso-spacerun: yes">      
-</span><span style="mso-spacerun:
-yes">      </span>! X, Y, Z, T (default:
-undeclared)<o:p></o:p></span></p>
+</span>Z<span style="mso-spacerun: yes">      </span><span
+style="mso-spacerun: yes">       </span>! X,
+Y, Z, T (default: undeclared)<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
@@ -13572,8 +13574,8 @@ style="mso-spacerun: yes">    </span>time<o:p></o:p></span></p>
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
 style="mso-spacerun:
-yes">           </span><span
-style="mso-spacerun: yes"> </span>days since ?<o:p></o:p></span></p>
+yes">          </span><span
+style="mso-spacerun: yes">  </span>days since ?<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
@@ -13858,8 +13860,8 @@ yes">           
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun: yes">        </span><span
-style="mso-spacerun: yes">     </span>Z<span
+style="mso-spacerun: yes">       </span><span
+style="mso-spacerun: yes">      </span>Z<span
 style="mso-spacerun:
 yes">            
 </span>! X, Y, Z, T (default: undeclared)<o:p></o:p></span></p>
@@ -13887,9 +13889,9 @@ Additional axis information:<o:p></o:p></span></p>
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:
-<span style="mso-spacerun:
-yes">        </span>height<o:p></o:p></span></p>
+style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
+style="mso-spacerun: yes">        
+</span>height<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
@@ -14035,9 +14037,9 @@ style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier N
 increasing<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes">      </span>-200.<o:p></o:p></span></p>
+style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:
+<span style="mso-spacerun:
+yes">       </span>-200.<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
@@ -14291,8 +14293,8 @@ style="mso-spacerun: yes">        </span>0.0<
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">       </span><span
-style="mso-spacerun: yes"> </span>1.0<o:p></o:p></span></p>
+style="mso-spacerun: yes">      </span><span
+style="mso-spacerun: yes">  </span>1.0<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>formula:<span
@@ -14375,9 +14377,8 @@ yes">           
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun: yes">     </span><span
-style="mso-spacerun:
-yes">        </span>Z <o:p></o:p></span></p>
+style="mso-spacerun: yes">    </span><span style="mso-spacerun:
+yes">         </span>Z <o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
@@ -14499,8 +14500,8 @@ style="mso-spacerun: yes">   
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun: yes">    </span><span style="mso-spacerun:
-yes">        </span>1<o:p></o:p></span></p>
+style="mso-spacerun: yes">   </span><span style="mso-spacerun:
+yes">         </span>1<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
@@ -14571,7 +14572,7 @@ p0 ap: ap_bnds b: b_bnds ps: ps<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><span style='mso-tab-count:1'>       </span><o:p></o:p></span></p>
+style='mso-tab-count:2'>        </span><o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
@@ -14647,9 +14648,9 @@ style="mso-spacerun: yes">        
 </span>up<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes">      </span>hybrid height coordinate<o:p></o:p></span></p>
+style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:
+<span style="mso-spacerun:
+yes">       </span>hybrid height coordinate<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
@@ -15411,8 +15412,9 @@ style="mso-spacerun: yes">      </span>time: mean<o:p><
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">      </span><span
-style="mso-spacerun: yes">   </span>Near-Surface Air Temperature<o:p></o:p></span></p>
+style="mso-spacerun: yes">     </span><span
+style="mso-spacerun: yes">    </span>Near-Surface Air
+Temperature<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
@@ -15578,8 +15580,8 @@ style="mso-spacerun: yes">     </span>precipitation_flux<o:p
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
 style="mso-spacerun:
-yes">           </span><span
-style="mso-spacerun: yes">  </span>kg m-2 s-1<o:p></o:p></span></p>
+yes">          </span><span
+style="mso-spacerun: yes">   </span>kg m-2 s-1<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
@@ -15711,8 +15713,8 @@ yes">          </span>hfls<o:p></o:
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
 style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
+yes">            
+</span><span style="mso-spacerun: yes"> </span>real<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
@@ -15757,7 +15759,8 @@ style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier N
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">     </span>cloud_area_fraction_in_atmosphere_layer<o:p></o:p></span></p>
+style="mso-spacerun: yes">    </span><span style="mso-spacerun:
+yes"> </span>cloud_area_fraction_in_atmosphere_layer<o:p></o:p></span></p>
 
 <p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
 style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
@@ -16213,8 +16216,8 @@ style="mso-spacerun:
 yes">           </span>Report
 only for simulations (e.g., prescribed concentration pi-control run), in which
 the CO2 does not vary from one year to the next. Report 12 monthly values,
-starting with January, even if the values don't vary seasonally.<span
-style="mso-spacerun: yes">  </span>When calling CMOR, identify this
+starting with January, even if the values don't vary seasonally. <span
+style="mso-spacerun: yes"> </span>When calling CMOR, identify this
 variable as co2massClim, not co2mass.<span style="mso-spacerun: yes"> 
 </span>If CO2 is spatially nonuniform, omit this field, but report Mole
 Fraction of CO2 (see the table entry before the previous one). <o:p></o:p></span></p>
diff --git a/Doc/cmor_users_guide.pdf b/Doc/cmor_users_guide.pdf
index d4b9b64..3b40d7a 100644
Binary files a/Doc/cmor_users_guide.pdf and b/Doc/cmor_users_guide.pdf differ
diff --git a/Doc/cmor_users_guide_files/header.htm b/Doc/cmor_users_guide_files/header.htm
index 379a00a..1d1f2b8 100644
--- a/Doc/cmor_users_guide_files/header.htm
+++ b/Doc/cmor_users_guide_files/header.htm
@@ -104,7 +104,7 @@ mso-element-top:.05pt;mso-height-rule:exactly'>
   mso-element-left:center;mso-element-top:.05pt;mso-height-rule:exactly'><!--[if supportFields]><span
   class=MsoPageNumber><span style='mso-element:field-begin'></span>PAGE<span
   style="mso-spacerun: yes">  </span><span style='mso-element:field-separator'></span></span><![endif]--><span
-  class=MsoPageNumber><span style='mso-no-proof:yes'>79</span></span><!--[if supportFields]><span
+  class=MsoPageNumber><span style='mso-no-proof:yes'>2</span></span><!--[if supportFields]><span
   class=MsoPageNumber><span style='mso-element:field-end'></span></span><![endif]--><span
   class=MsoPageNumber><o:p></o:p></span></p>
   </td>
diff --git a/Lib/check_CMOR_compliant.py b/Lib/check_CMOR_compliant.py
index f2ddede..2e4d3ad 100644
--- a/Lib/check_CMOR_compliant.py
+++ b/Lib/check_CMOR_compliant.py
@@ -966,7 +966,7 @@ def checkCMOR(fout,file,table,noerror=cmor.CMOR_CRITICAL,variable=None,from_boun
         for nm in axes_nmes:
             req_Att=['standard_name','units']
             anm = nm
-            if nm in [ 'alevel','olevel','zlevel']:
+            if nm in [ 'zlevel',]+e['general'].get('generic_levels','').split():
                 gnm=nm
                 manageLog(fout,VERBOSE, '\tChecking special case %s, i.e' % (nm),'')
                 tmpax=V.getLevel()
diff --git a/Src/cmor_tables.c b/Src/cmor_tables.c
index 48ef69d..1c6f0e7 100644
--- a/Src/cmor_tables.c
+++ b/Src/cmor_tables.c
@@ -43,6 +43,7 @@ void cmor_init_table(cmor_table_t *table, int id)
   for (i=0;i<CMOR_MAX_ELEMENTS;i++) {
     table->expt_ids[i][0]='\0';
     table->sht_expt_ids[i][0]='\0';
+    table->generic_levels[i][0]='\0';
   }
 
   cmor_pop_traceback();
@@ -76,6 +77,21 @@ int cmor_set_dataset_att(cmor_table_t *table, char att[CMOR_MAX_STRING],char val
     }
     table->cmor_version=d;
   }
+  else if (strcmp(att,"generic_levels")==0) {
+    n=0;
+    i=0;
+    while(i<strlen(value)) {
+      while(value[i]==' ') i++;
+      j=0;
+      while (i<strlen(value) && value[i]!=' ') {
+	table->generic_levels[n][j]=value[i];
+	j++;
+	i++;
+      }
+      table->generic_levels[n][j]='\0';
+      n+=1;
+    }
+  }
   else if (strcmp(att,"cf_version")==0) {
     d = atof(value);
     table->cf_version=d;
diff --git a/Src/cmor_variables.c b/Src/cmor_variables.c
index 044f47a..8c4d4f2 100644
--- a/Src/cmor_variables.c
+++ b/Src/cmor_variables.c
@@ -966,7 +966,7 @@ void cmor_init_var_def(cmor_var_def_t *var, int table_id)
 }
 
 int cmor_set_var_def_att(cmor_var_def_t *var,char att[CMOR_MAX_STRING],char val[CMOR_MAX_STRING] ){
-  int i,n,j,n0;
+  int i,n,j,n0,k;
   char dim[CMOR_MAX_STRING];
   char msg[CMOR_MAX_STRING];
 
@@ -988,6 +988,7 @@ int cmor_set_var_def_att(cmor_var_def_t *var,char att[CMOR_MAX_STRING],char val[
     strncpy(var->comment,val,CMOR_MAX_STRING);
   }
   else if (strcmp(att,"dimensions")==0) {
+    printf("var: %s, dims: %s\n",var->id,val);
     n0=strlen(val);
     for (i=0;i<n0;i++) {
       j=0;
@@ -1003,7 +1004,16 @@ int cmor_set_var_def_att(cmor_var_def_t *var,char att[CMOR_MAX_STRING],char val[
 	if (strcmp(dim,cmor_tables[var->table_id].axes[j].id)==0) {n=j;break;}
       }
       if (n==-1) {
-	if ((strcmp("zlevel",dim)==0)||(strcmp("olevel",dim)==0)||(strcmp("alevel",dim)==0)) {
+	printf("dim is: %s\n",dim);
+	j = strcmp("zlevel",dim);
+        j *= strcmp("alevel",dim);
+        j *= strcmp("olevel",dim);
+	for (k=0;k<CMOR_MAX_ELEMENTS;k++) {
+	  if (cmor_tables[var->table_id].generic_levels[k][0]=='\0') break;
+	  j*=strcmp(dim,cmor_tables[var->table_id].generic_levels[k]);
+	}
+
+	if (j==0) {
 	  /* printf("ignoring zlevel for now\n");*/
 	  var->dimensions[var->ndims]=-2;
 	}
diff --git a/include/cmor.h b/include/cmor.h
index 986a8b1..f84dabb 100644
--- a/include/cmor.h
+++ b/include/cmor.h
@@ -20,7 +20,7 @@
 
 #define CMOR_VERSION_MAJOR 2
 #define CMOR_VERSION_MINOR 0
-#define CMOR_VERSION_PATCH 0
+#define CMOR_VERSION_PATCH 1
 #define CMOR_CF_VERSION_MAJOR 1
 #define CMOR_CF_VERSION_MINOR 4
 
@@ -260,6 +260,7 @@ typedef struct cmor_table_ {
   char **forcings;
   int nforcings;
   unsigned char md5[16];
+  char generic_levels[CMOR_MAX_ELEMENTS][CMOR_MAX_STRING];
 } cmor_table_t;
 
 extern cmor_table_t cmor_tables[CMOR_MAX_TABLES];

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/cmor.git



More information about the debian-science-commits mailing list