Changeset 55


Ignore:
Timestamp:
19/09/13 17:22:39 (7 years ago)
Author:
mjuckes
Message:

various updates

Location:
FCC2/trunk
Files:
1 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • FCC2/trunk/source/comp_mip.py

    r48 r55  
    44 
    55ml = ['CORDEX_3h', 'CORDEX_6h', 'CORDEX_Aday', 'CORDEX_day', 'CORDEX_grids', 'CORDEX_mon' ] 
    6 ml = ['CORDEX_3h', 'CORDEX_6h', 'CORDEX_Aday', 'CORDEX_day', 'CORDEX_mon' ] 
    7 ml2 = ['CORDEX_3h', 'CORDEX_6h', 'CORDEX_Aday', 'CMIP5_day', 'CORDEX_grids', 'CMIP5_Amon' ] 
     6ml = ['CORDEX_3h', 'CORDEX_6h', 'CORDEX_fx', 'CORDEX_day', 'CORDEX_mon', 'CORDEX_sem' ] 
    87ml2 = ['CMIP5_3hr', 'CMIP5_6hrPlev', 'CMIP5_Amon', 'CMIP5_cfDay', 'CMIP5_cfOff', 'CMIP5_day', 'CMIP5_grids', 'CMIP5_Lmon', 'CMIP5_OImon', 'CMIP5_Oyr', 
    98       'CMIP5_6hrLev', 'CMIP5_aero', 'CMIP5_cf3hr', 'CMIP5_cfMon', 'CMIP5_cfSites', 'CMIP5_fx', 'CMIP5_LImon', 'CMIP5_Oclim', 'CMIP5_Omon']  
     
    1312cfsntab = 'cf-standard-name-table.xml' 
    1413cordex_dkrz = 'CORDEX_variables_requirement_table_upgedated-1.csv' 
     14cordex_dkrz = 'CORDEX_variables_requirement_table_all.csv' 
     15cordex_dkrz_pat = 'cordex_dkrz/CORDEX_variables_requirement_table_%s.csv' 
     16cordex_dkrz_pat = 'cordex_dkrz_sep12/CORDEX_variables_requirement_table_%s.csv' 
    1517re_sn = re.compile( 'entry id="(.*)"' ) 
    1618re_sna = re.compile( 'alias id="(.*)"' ) 
     
    4143class comp: 
    4244 
    43   def __init__(self, snl, snla=None, ec1=None): 
     45  def __init__(self, snl, snla=None, ec1=None,tag=None): 
    4446    self.id = 'comp' 
    4547    self.snl = snl 
    4648    self.snla = snla 
    4749    self.ec1 = ec1 
    48  
    49  
    50   def comp(self, e1, e2 ): 
     50    self.tag=tag 
     51 
     52 
     53  def comp(self, e1, e2,checkCellMethods=False,tag=None ): 
     54    self.tag=tag 
     55     
    5156    ##e1 = tlist_to_dict( t1 ) 
    5257    ##e2 = tlist_to_dict( t2 ) 
    5358 
     59    checkAll = True 
    5460    keys = e1.keys() 
    5561    keys.sort() 
     
    5763      e0 = 0 
    5864      f2 = False 
     65      f3 = False 
     66      f4 = False 
    5967      if e1[k][1]['standard_name'] not in self.snl: 
    6068        if e1[k][1]['standard_name'] not in self.snla: 
     
    6977        if e1[k][1]['long_name'] != self.ec1[k][1]: 
    7078          f2 = True 
     79        if checkCellMethods:   
     80          if e1[k][1]['cell_methods'] != self.ec1[k][3]: 
     81            if not (e1[k][1]['cell_methods']=="None" and string.strip(self.ec1[k][3]) == "time:"): 
     82              f3 = True 
     83        if checkAll:   
     84          if (e1[k][1].has_key( 'positive' ) and self.ec1[k][4] == '') or ( (not e1[k][1].has_key( 'positive' )) and self.ec1[k][4] != ''): 
     85              f4 = True 
     86          elif e1[k][1].has_key( 'positive' ): 
     87            if e1[k][1]['positive'] != self.ec1[k][4]: 
     88              if not (e1[k][1]['positive']=="None" and string.strip(self.ec1[k][4]) == ""): 
     89                f4 = True 
     90          if (e1[k][1].has_key( 'modeling_realm' ) and self.ec1[k][5] == '') or ( (not e1[k][1].has_key( 'modeling_realm' )) and self.ec1[k][5] != ''): 
     91              f4 = True 
     92          elif e1[k][1].has_key( 'modeling_realm' ): 
     93            if e1[k][1]['modeling_realm'] != self.ec1[k][5]: 
     94              if not (e1[k][1]['modeling_realm']=="None" and string.strip(self.ec1[k][5]) == ""): 
     95                f4 = True 
    7196         
     97      cks = ['units', 'long_name', 'standard_name'] 
     98      suppress4B = True 
    7299      if k in e2.keys(): 
    73100        if e1[k][1] != e2[k][1]: 
    74           print 'ERROR[4]: Anomaly bewteen MIP tables: %s:: %s -- %s [%s]' % (k, str(e1[k][1]), str( e2[k][1] ), vrln ) 
     101          ne1 = 0 
     102          for k2 in cks: 
     103             if e1[k][1][k2] != e2[k][1][k2]: 
     104                ne1 += 0 
     105          if ne1 > 0: 
     106                print 'ERROR[4A]: Anomaly bewteen MIP tables: %s:: %s -- %s [%s]' % (k, str(e1[k][1]), str( e2[k][1] ), vrln ) 
     107          else: 
     108             if not suppress4B: 
     109                print 'ERROR[4B]: Anomaly bewteen MIP tables: %s:: %s -- %s [%s]' % (k, str(e1[k][1]), str( e2[k][1] ), vrln ) 
    75110          e0 = 1 
    76111        else: 
     
    81116        e0 = 3 
    82117 
     118      xxx = k 
     119      if self.tag != None: 
     120         xxx += '[%s]' % self.tag 
    83121      if f2 and (e0 == 2): 
    84122         print 'ERROR[2]: Difference between CORDEX/CMIP5 MIP tables and VR: %s:: %s [%s] --- %s' % (k,e1[k][1]['long_name'],e1[k][2], self.ec1[k][1]) 
     
    86124         print 'ERROR[3]: Difference between CORDEX MIP tables and VR: %s:: %s [%s] --- %s' % (k,e1[k][1]['long_name'],e1[k][2], self.ec1[k][1]) 
    87125      elif f2: 
    88          print 'ERROR[5]: Difference between CORDEX MIP tables and VR: %s --- %s' % (e1[k][1]['long_name'], self.ec1[k][1]) 
     126         print 'ERROR[5]: Difference between CORDEX MIP tables and VR %s: %s --- %s' % (xxx,e1[k][1]['long_name'], self.ec1[k][1]) 
     127      if f3: 
     128         print 'ERROR[6]: Difference between CORDEX MIP tables and VR in cell_methods: %s:: %s --- %s' % (k,e1[k][1]['cell_methods'], self.ec1[k][3]) 
     129      if f4: 
     130         print 'ERROR[7]: Difference between CORDEX MIP tables and VR in positive, realm: %s:: %s,%s --- %s' % (xxx,e1[k][1].get('positive','None'),e1[k][1].get('modeling_realm','None'), self.ec1[k][4:6]) 
    89131         
    90132 
     
    93135print 'Len snl = %s' % len(snl) 
    94136 
    95 ll = open( base + cordex_dkrz ).readlines() 
     137 
     138dkrz_cordex_version = 3 
    96139ec1 = {} 
    97 for l in ll[9:74]: 
    98   bits = string.split( l, ',' ) 
    99   var = bits[1] 
    100   ln = bits[13] 
    101   sn = bits[14] 
    102   if sn not in snl + snla: 
    103     print 'ERROR: CORDEX DKRZ sn %s for %s not in snl/snla' % (sn, var) 
    104   ec1[var] = ( sn,ln) 
    105  
    106  
    107 c = comp( snl,snla=snla, ec1=ec1) 
    108  
    109  
    110 ms = mipTableScan() 
    111  
    112 x = 'CORDEX_mon' 
    113 x = 'CORDEX_day' 
    114  
    115 def validate( t ): 
     140if dkrz_cordex_version == 1: 
     141  ll = open( base + cordex_dkrz ).readlines() 
     142  for l in ll[9:74]: 
     143    bits = string.split( l, ',' ) 
     144    var = bits[1] 
     145    ln = bits[13] 
     146    sn = bits[14] 
     147    if sn not in snl + snla: 
     148      print 'ERROR: CORDEX DKRZ sn %s for %s not in snl/snla' % (sn, var) 
     149    ec1[var] = ( sn,ln) 
     150elif dkrz_cordex_version == 2: 
     151  for tab in ['3hr','6hr','day','mon','sem','fx']: 
     152     ll = open( base + cordex_dkrz_pat % tab ).readlines() 
     153     for l in ll[3:]: 
     154        bits = string.split( l, ',' ) 
     155        if (tab != 'fx' and len( bits ) != 7) or (tab == 'fx' and len( bits ) != 5): 
     156          print 'cant safely parse %s [%s]' % (l,tab) 
     157#1,sund,Duration of Sunshine,duration_of_sunshine,s,sum, 
     158        var,ln,sn,units = bits[1:5] 
     159        if tab != 'fx': 
     160          cm,pos = bits[5:7] 
     161        else: 
     162          cm,pos = [None,None] 
     163        if sn not in snl + snla: 
     164           print 'ERROR: CORDEX DKRZ [%s] sn %s for %s not in snl/snla' % (tab,sn, var) 
     165        ec1[var] = ( sn,ln,units,cm,pos) 
     166elif dkrz_cordex_version == 3: 
     167  eeee = {} 
     168  eca = {} 
     169  ll = open( base + cordex_dkrz_pat % 'all' ).readlines() 
     170  for l in ll[2:]: 
     171        bits = string.split( string.strip(l), ',' ) 
     172        if string.strip(bits[0]) == '': 
     173           break 
     174#1,sund,Duration of Sunshine,duration_of_sunshine,s,sum, 
     175        var,units = bits[1:3] 
     176        ln,sn,pos,realm   = bits[12:16] 
     177        if sn not in snl + snla: 
     178           print 'ERROR: CORDEX DKRZ [%s] sn %s for %s not in snl/snla' % ('all',sn, var) 
     179        assert pos in ['','up','down'], 'Unexpected value for pos [%s] in %s' % (pos,l) 
     180        eca[var] = ( units,ln,sn,pos,realm ) 
     181 
     182  for tab in ['3hr','6hr','day','mon','sem','fx']: 
     183     ee  = {} 
     184     ll = open( base + cordex_dkrz_pat % tab ).readlines() 
     185     for l in ll[2:]: 
     186        bits = string.split( l, ',' ) 
     187        if string.strip(bits[0]) == '': 
     188           break 
     189#1,sund,Duration of Sunshine,duration_of_sunshine,s,sum, 
     190        var,cm = bits[1:3] 
     191        cm = 'time: ' + cm 
     192        units,ln,sn,pos,realm = eca[var]  
     193        ec1[var] = ( sn,ln,units,cm,pos,realm) 
     194        ee[var] = ( sn,ln,units,cm,pos,realm) 
     195     eeee[tab] = ee 
     196 
     197 
     198 
     199def validate( t,cc ): 
    116200  if t == 'all': 
    117201    l1 = {} 
     
    121205    for m in ml2: 
    122206      l2 = ms.scan_table( open( base + '/cmip5_vocabs/mip/' + m ).readlines(), None, asDict=True, appendTo=l2, lax=True, tag=m) 
     207    ccm = False 
    123208  else: 
    124     i = ml.index(t) 
    125     t2 = ml2[i] 
    126     assert t != t2 
    127     l1 = ms.scan_table( open( base + '/cordex_vocabs/mip/' + t ).readlines(), None, asDict=True) 
    128     l2 = ms.scan_table( open( base + '/cmip5_vocabs/mip/' + t2 ).readlines(), None, asDict=True ) 
    129  
    130   c.comp( l1, l2 ) 
    131  
    132 validate('all') 
     209    l2 = {} 
     210    for m in ml2: 
     211      l2 = ms.scan_table( open( base + '/cmip5_vocabs/mip/' + m ).readlines(), None, asDict=True, appendTo=l2, lax=True, tag=m) 
     212    k = { '3hr':'3h', '6hr':'6h' }.get( t,t ) 
     213    l1 = ms.scan_table( open( base + '/cordex_vocabs/mip/CORDEX_%s' % k ).readlines(), None, asDict=True) 
     214    ccm = True 
     215 
     216  cc.comp( l1, l2, checkCellMethods=ccm, tag=t ) 
     217 
     218for tab in ['3hr','6hr','day','mon','sem','fx']: 
     219  ms = mipTableScan() 
     220  print 'Validating table %s ' % tab 
     221  print eeee[tab].keys() 
     222  c = comp( snl,snla=snla, ec1=eeee[tab]) 
     223  validate(tab,c) 
    133224     
  • FCC2/trunk/source/fcc_utils.py

    r54 r55  
    1 import string, os, re, stat 
     1import string, os, re, stat, sys 
    22 
    33ncdumpCmd = 'ncdump' 
    44ncdumpCmd = '/usr/local/5/bin/ncdump' 
    55## 
    6  
    76 
    87class mipTableScan: 
     
    1716  def scan_table(self,ll,log,asDict=False,appendTo=None,lax=False,tag=None): 
    1817  
    19     lll = map( string.strip, ll ) 
    20     ssss = string.join( lll, ':::' ) 
    21     vitems = string.split( ssss, ':::variable_entry:' )[1:] 
     18    lll0 = map( string.strip, ll ) 
     19    lll = [] 
     20    for l in lll0: 
     21      if len(l) != 0: 
     22        if l[0] != '!': 
     23          lll.append(string.split(l,'!')[0]) 
     24    sll = [] 
     25    sll.append( ['header',[]] ) 
     26    for l in lll: 
     27      k = string.split( l, ':' )[0] 
     28      if k in ['variable_entry','axis_entry']: 
     29        sll.append( [k,[]] ) 
     30      sll[-1][1].append(l) 
     31 
     32    eee = [] 
     33    for s in sll: 
     34      if s[0] == 'variable_entry': 
     35         bits = string.split(s[1][0],':') 
     36         assert len(bits) == 2, 'Can not unpack: %s' % str(s[1]) 
     37         k,var =  map( string.strip, string.split(s[1][0],':') ) 
     38         aa = {'standard_name':None, 'long_name':None,'units':None,'cell_methods':None } 
     39         ds = 'scalar' 
     40         for l in s[1][1:]: 
     41           bits = string.split(l,':') 
     42           k = string.strip(bits[0]) 
     43           v = string.strip( string.join( bits[1:], ':' ) ) 
     44           if k == 'dimensions': 
     45             ds = string.split(v) 
     46           else: 
     47             aa[k] = v 
     48         eee.append( (var,ds,aa,tag) ) 
     49 
     50 
     51    checkOldMethod = False 
     52    if checkOldMethod: 
     53      ssss = string.join( lll, ':::' ) 
     54      vitems = string.split( ssss, ':::variable_entry:' )[1:] 
    2255  
    23     ee = [] 
    24     for i in vitems: 
    25       b1 = string.split( i, ':::')[0] 
    26       var = string.strip( b1 ) 
    27       aa = {} 
    28       for v in self.vats: 
    29         mm = self.re_vats[v].findall(i) 
     56      ee = [] 
     57      for i in vitems: 
     58        b1 = string.split( i, ':::')[0] 
     59        var = string.strip( b1 ) 
     60        aa = {} 
     61        for v in self.vats: 
     62          mm = self.re_vats[v].findall(i) 
     63          if len(mm) == 1: 
     64             aa[v] = string.strip(mm[0]) 
     65          else: 
     66             aa[v] = 'None' 
     67  
     68        mm = self.re_cmor_mip2.findall( i ) 
    3069        if len(mm) == 1: 
    31            aa[v] = string.strip(mm[0]) 
     70          ds = string.split( string.strip(mm[0]) ) 
     71        elif len(mm) == 0: 
     72          ds = 'scalar' 
    3273        else: 
    33            aa[v] = 'None' 
    34   
    35       mm = self.re_cmor_mip2.findall( i ) 
    36       if len(mm) == 1: 
    37         ds = string.split( string.strip(mm[0]) ) 
    38       elif len(mm) == 0: 
    39         ds = 'scalar' 
    40       else: 
    41         if log != None: 
    42            log.warn(  'Mistake?? in scan_table %s' % str(mm) ) 
    43         ds = mm 
    44         raise 'Mistake?? in scan_table %s' % str(mm) 
    45       ee.append( (var,ds,aa,tag) ) 
     74          if log != None: 
     75             log.warn(  'Mistake?? in scan_table %s' % str(mm) ) 
     76          ds = mm 
     77          raise 'Mistake?? in scan_table %s' % str(mm) 
     78        ee.append( (var,ds,aa,tag) ) 
     79 
     80      for k in range(len(ee) ): 
     81        if ee[k][0:2] == eee[k][0:2] and ee[k][2]['standard_name'] == eee[k][2]['standard_name'] and ee[k][2]['long_name'] == eee[k][2]['long_name']: 
     82          print 'OK:::', ee[k] 
     83        else: 
     84          print 'DIFF: ',ee[k],eee[k] 
     85       
    4686    if not asDict: 
    47       return tuple( ee ) 
     87      return tuple( eee ) 
    4888    else: 
    4989      ff = {} 
    50       for l in ee: 
     90      for l in eee: 
    5191        ff[l[0]] = ( l[1], l[2], l[3] ) 
    5292      if appendTo != None: 
    5393        for k in ff.keys(): 
     94          assert ff[k][1].has_key( 'standard_name' ), 'No standard name in %s:: %s' % (k,str(ff[k][1].keys())) 
    5495          if appendTo.has_key(k): 
    5596            if lax and  ff[k][1]['standard_name'] != appendTo[k][1]['standard_name']: 
  • FCC2/trunk/work/cordex_vocabs/mip/CORDEX_3h

    r45 r55  
    77cf_version:   1.4         ! version of CF that output conforms to 
    88project_id:   CORDEX  ! project id 
    9 table_date:   Apr 2013 ! date this table was constructed 
     9table_date:   Sept 2013 ! date this table was constructed 
    1010 
    1111missing_value: 1.e20      ! value used to indicate a missing value 
     
    1616product: output 
    1717! CMIP5's Table adapted for CORDEX 
    18 required_global_attributes: creation_date tracking_id forcing model_id contact institute_id ! space separated required global attribute  
    19  
    20 forcings:   N/A Nat Ant GHG SA  
     18required_global_attributes: creation_date tracking_id model_id contact institute_id ! space separated required global attribute  
    2119 
    2220expt_id_ok: 'Evaluation run with reanalysis forcing' 'evaluation' 
     
    4543!---------------------------------- 
    4644out_name:         lon 
    47 valid_min:        -180.0          
    48 valid_max:        +180.0  
    4945stored_direction: increasing 
    5046type:             double 
     
    212208 
    213209long_name:         Near-Surface Air Temperature 
    214 comment:           daily-mean near-surface (usually, 2 meter) air temperature. 
     210comment:           mean near-surface (usually, 2 meter) air temperature. 
    215211!---------------------------------- 
    216212! Additional variable information: 
     
    339335cell_methods:      time: point 
    340336 
    341 long_name:         Daily-Mean Near-Surface Wind Speed 
     337long_name:         Near-Surface Wind Speed 
    342338comment:           near-surface (usually, 10 meters) wind speed. 
    343339!---------------------------------- 
  • FCC2/trunk/work/cordex_vocabs/mip/CORDEX_6h

    r45 r55  
    77cf_version:   1.4         ! version of CF that output conforms to 
    88project_id:   CORDEX  ! project id 
    9 table_date:   Apr 2013 ! date this table was constructed 
     9table_date:   Sept 2013 ! date this table was constructed 
    1010 
    1111missing_value: 1.e20      ! value used to indicate a missing value 
     
    1515product: output 
    1616! CMIP5's Table adapted for CORDEX 
    17 required_global_attributes: creation_date tracking_id forcing model_id contact institute_id ! space separated required global attribute  
    18  
    19 forcings:   N/A Nat Ant GHG SA  
     17required_global_attributes: creation_date tracking_id model_id contact institute_id ! space separated required global attribute  
    2018 
    2119expt_id_ok: 'Evaluation run with reanalysis forcing' 'evaluation' 
     
    4442!---------------------------------- 
    4543out_name:         lon 
    46 valid_min:        -180.0          
    47 valid_max:        +180.0  
    4844stored_direction: increasing 
    4945type:             double 
     
    268264 
    269265!============ 
     266axis_entry: p220 
     267!============ 
     268!---------------------------------- 
     269! Axis attributes: 
     270!---------------------------------- 
     271standard_name:    air_pressure 
     272units:            Pa 
     273axis:             Z             ! X, Y, Z, T (default: undeclared) 
     274positive:         down         ! up or down (default: undeclared) 
     275long_name:        pressure 
     276!---------------------------------- 
     277! Additional axis information: 
     278!---------------------------------- 
     279out_name:         plev 
     280stored_direction: decreasing 
     281type:             double 
     282value:            22000.            ! of scalar (singleton) dimension  
     283bounds_values:    44000. 0.0    ! of scalar (singleton) dimension bounds 
     284must_have_bounds: no 
     285!---------------------------------- 
     286! 
     287 
     288 
     289!============ 
     290axis_entry: p560 
     291!============ 
     292!---------------------------------- 
     293! Axis attributes: 
     294!---------------------------------- 
     295standard_name:    air_pressure 
     296units:            Pa 
     297axis:             Z             ! X, Y, Z, T (default: undeclared) 
     298positive:         down         ! up or down (default: undeclared) 
     299long_name:        pressure 
     300!---------------------------------- 
     301! Additional axis information: 
     302!---------------------------------- 
     303out_name:         plev 
     304stored_direction: decreasing 
     305type:             double 
     306value:            56000.            ! of scalar (singleton) dimension  
     307bounds_values:    68000. 44000.    ! of scalar (singleton) dimension bounds 
     308must_have_bounds: no 
     309!---------------------------------- 
     310! 
     311 
     312 
     313!============ 
     314axis_entry: p840 
     315!============ 
     316!---------------------------------- 
     317! Axis attributes: 
     318!---------------------------------- 
     319standard_name:    air_pressure 
     320units:            Pa 
     321axis:             Z             ! X, Y, Z, T (default: undeclared) 
     322positive:         down         ! up or down (default: undeclared) 
     323long_name:        pressure 
     324!---------------------------------- 
     325! Additional axis information: 
     326!---------------------------------- 
     327out_name:         plev 
     328stored_direction: decreasing 
     329type:             double 
     330value:            84000.            ! of scalar (singleton) dimension  
     331bounds_values:    100000. 68000.    ! of scalar (singleton) dimension bounds 
     332must_have_bounds: no 
     333!---------------------------------- 
     334! 
     335 
     336!============ 
    270337variable_entry:    evspsbl 
    271338!============ 
     
    304371units:             kg m-2 s-1 
    305372cell_methods:      time: mean 
    306 long_name:         Potential evaporation 
     373long_name:         Potential Evapotranspiration 
    307374comment:           at surface; potential flux of water into the atmosphere due to conversion of both liquid and solid phases to vapor (from underlying surface and vegetation) 
    308375!---------------------------------- 
     
    689756! Variable attributes: 
    690757!---------------------------------- 
    691 standard_name:     atmosphere_boundary_layer_tickness 
     758standard_name:     atmosphere_boundary_layer_thickness 
    692759units:             m 
    693760cell_methods:      time: point 
     
    716783units:             kg m-2 
    717784cell_methods:      time: point 
    718  
    719 long_name:         Column water vapor content 
     785long_name:         Water Vapor Path 
    720786comment:           vertically integrated for a column 
    721787!---------------------------------- 
     
    9341000! Variable attributes: 
    9351001!---------------------------------- 
    936 standard_name:     geopotential 
     1002standard_name:     geopotential_height 
    9371003units:             m 
    9381004cell_methods:      time: point 
     
    10881154cell_methods:      time: mean 
    10891155 
    1090 long_name:         High Cloud Cover 
     1156long_name:         High Level Cloud Fraction 
    10911157comment:           p<440 hPa 
    10921158!---------------------------------- 
    10931159! Additional variable information: 
    10941160!---------------------------------- 
    1095 dimensions:        longitude latitude time 
     1161dimensions:        longitude latitude time p220 
    10961162out_name:          clh 
    10971163type:              real 
     
    11131179cell_methods:      time: mean 
    11141180 
    1115 long_name:         Medium Cloud Cover  
     1181long_name:         Mid Level Cloud Fraction 
    11161182comment:           440 hPa < p < 680 hPa 
    11171183!---------------------------------- 
    11181184! Additional variable information: 
    11191185!---------------------------------- 
    1120 dimensions:        longitude latitude time 
     1186dimensions:        longitude latitude time p560 
    11211187out_name:          clm 
    11221188type:              real 
     
    11401206cell_methods:      time: mean 
    11411207 
    1142 long_name:         Low Cloud Cover  
     1208long_name:         Low Level Cloud Fraction 
    11431209comment:           p>680 hPa 
    11441210!---------------------------------- 
    11451211! Additional variable information: 
    11461212!---------------------------------- 
    1147 dimensions:        longitude latitude time 
     1213dimensions:        longitude latitude time p840 
    11481214out_name:          cll 
    11491215type:              real 
  • FCC2/trunk/work/cordex_vocabs/mip/CORDEX_day

    r45 r55  
    77cf_version:   1.4         ! version of CF that output conforms to 
    88project_id:   CORDEX  ! project id 
    9 table_date:   Apr 2013 ! date this table was constructed 
     9table_date:   Sept 2013 ! date this table was constructed 
    1010 
    1111missing_value: 1.e20      ! value used to indicate a missing value 
     
    1515product: output 
    1616! CMIP5's Table adapted for CORDEX 
    17 required_global_attributes: creation_date tracking_id forcing model_id contact institute_id ! space separated required global attribute  
    18  
    19 forcings:   N/A Nat Ant GHG SA  
     17required_global_attributes: creation_date tracking_id model_id contact institute_id ! space separated required global attribute  
    2018 
    2119expt_id_ok: 'Evaluation run with reanalysis forcing' 'evaluation' 
     
    4442!---------------------------------- 
    4543out_name:         lon 
    46 valid_min:        -180.0          
    47 valid_max:        +180.0  
    4844stored_direction: increasing 
    4945type:             double 
     
    246242! 
    247243 
     244!============ 
     245axis_entry: p220 
     246!============ 
     247!---------------------------------- 
     248! Axis attributes: 
     249!---------------------------------- 
     250standard_name:    air_pressure 
     251units:            Pa 
     252axis:             Z             ! X, Y, Z, T (default: undeclared) 
     253positive:         down         ! up or down (default: undeclared) 
     254long_name:        pressure 
     255!---------------------------------- 
     256! Additional axis information: 
     257!---------------------------------- 
     258out_name:         plev 
     259stored_direction: decreasing 
     260type:             double 
     261value:            22000.            ! of scalar (singleton) dimension  
     262bounds_values:    44000. 0.0    ! of scalar (singleton) dimension bounds 
     263must_have_bounds: no 
     264!---------------------------------- 
     265! 
     266 
     267 
     268!============ 
     269axis_entry: p560 
     270!============ 
     271!---------------------------------- 
     272! Axis attributes: 
     273!---------------------------------- 
     274standard_name:    air_pressure 
     275units:            Pa 
     276axis:             Z             ! X, Y, Z, T (default: undeclared) 
     277positive:         down         ! up or down (default: undeclared) 
     278long_name:        pressure 
     279!---------------------------------- 
     280! Additional axis information: 
     281!---------------------------------- 
     282out_name:         plev 
     283stored_direction: decreasing 
     284type:             double 
     285value:            56000.            ! of scalar (singleton) dimension  
     286bounds_values:    68000. 44000.    ! of scalar (singleton) dimension bounds 
     287must_have_bounds: no 
     288!---------------------------------- 
     289! 
     290 
     291 
     292!============ 
     293axis_entry: p840 
     294!============ 
     295!---------------------------------- 
     296! Axis attributes: 
     297!---------------------------------- 
     298standard_name:    air_pressure 
     299units:            Pa 
     300axis:             Z             ! X, Y, Z, T (default: undeclared) 
     301positive:         down         ! up or down (default: undeclared) 
     302long_name:        pressure 
     303!---------------------------------- 
     304! Additional axis information: 
     305!---------------------------------- 
     306out_name:         plev 
     307stored_direction: decreasing 
     308type:             double 
     309value:            84000.            ! of scalar (singleton) dimension  
     310bounds_values:    100000. 68000.    ! of scalar (singleton) dimension bounds 
     311must_have_bounds: no 
     312!---------------------------------- 
     313! 
     314 
    248315 
    249316!============ 
     
    440507cell_methods:      time: mean 
    441508 
    442 long_name:         Daily-Mean Near-Surface Wind Speed 
     509long_name:         Near-Surface Wind Speed 
    443510comment:           near-surface (usually, 10 meters) wind speed. 
    444511!---------------------------------- 
     
    724791cell_methods:      time: mean 
    725792 
    726 long_name:         Potential evaporation 
     793long_name:         Potential Evapotranspiration 
    727794comment:           at surface; potential flux of water into the atmosphere due to conversion of both liquid and solid phases to vapor (from underlying surface and vegetation) 
    728795!---------------------------------- 
     
    10781145cell_methods:      time: maximum 
    10791146 
    1080 long_name:         Daily Maximum Near-Surface Wind Speed Of Gust 
     1147long_name:         Daily Maximum Near-Surface Wind Speed of Gust 
    10811148comment:           near-surface (usually, 10 meters) wind speed of gust 
    10821149!---------------------------------- 
     
    11801247! Variable attributes: 
    11811248!---------------------------------- 
    1182 standard_name:     atmosphere_boundary_layer_tickness 
     1249standard_name:     atmosphere_boundary_layer_thickness 
    11831250units:             m 
    11841251cell_methods:      time: mean 
     
    12081275cell_methods:      time: mean 
    12091276 
    1210 long_name:         Column water vapor content 
     1277long_name:         Water Vapor Path 
    12111278comment:           vertically integrated for a column 
    12121279!---------------------------------- 
     
    14741541! Variable attributes: 
    14751542!---------------------------------- 
    1476 standard_name:     eastward_wind_at 
     1543standard_name:     eastward_wind 
    14771544units:             m s-1  
    14781545cell_methods:      time: mean 
     
    15791646cell_methods:      time: mean 
    15801647 
    1581 long_name:         High Cloud Cover 
     1648long_name:         High Level Cloud Fraction 
    15821649comment:           p<440 hPa 
    15831650!---------------------------------- 
    15841651! Additional variable information: 
    15851652!---------------------------------- 
    1586 dimensions:        longitude latitude time 
     1653dimensions:        longitude latitude time p220 
    15871654out_name:          clh 
    15881655type:              real 
     
    16041671cell_methods:      time: mean 
    16051672 
    1606 long_name:         Medium Cloud Cover  
     1673long_name:         Mid Level Cloud Fraction 
    16071674comment:           440 hPa < p < 680 hPa 
    16081675!---------------------------------- 
    16091676! Additional variable information: 
    16101677!---------------------------------- 
    1611 dimensions:        longitude latitude time 
     1678dimensions:        longitude latitude time p560 
    16121679out_name:          clm 
    16131680type:              real 
     
    16311698cell_methods:      time: mean 
    16321699 
    1633 long_name:         Low Cloud Cover  
     1700long_name:         Low Level Cloud Fraction 
    16341701comment:           p>680 hPa 
    16351702!---------------------------------- 
    16361703! Additional variable information: 
    16371704!---------------------------------- 
    1638 dimensions:        longitude latitude time 
     1705dimensions:        longitude latitude time p840 
    16391706out_name:          cll 
    16401707type:              real 
     
    17341801cell_methods:      time: mean 
    17351802 
    1736 long_name:         Solid Precipitation 
     1803long_name:         Snowfall Flux 
    17371804comment:           at surface; includes precipitation of all forms of water in the solid phase 
    17381805!---------------------------------- 
  • FCC2/trunk/work/cordex_vocabs/mip/CORDEX_grids

    r45 r55  
    22 
    33 
    4 cmor_version: 2.0         ! version of CMOR that can read this table 
     4cmor_version: 2.6         ! version of CMOR that can read this table 
    55cf_version:   1.4         ! version of CF that output conforms to 
    66project_id:   CORDEX       ! project id 
    7 table_date:   April 2013 ! date this table was constructed 
     7table_date:   Sept 2013 ! date this table was constructed 
    88 
    99missing_value: 1.e20      ! value used to indicate a missing value 
     
    1313product: output 
    1414! CMIP5's Table adapted for CORDEX 
    15 required_global_attributes: creation_date tracking_id forcing model_id parent_experiment_id branch_time ! space separated required global attribute  
    16  
    17  
    18 expt_id_ok: 'A1BfromIPSL' 
    19 expt_id_ok: 'A1BfromEH5' 
    20 expt_id_ok: '20CfromIPSL' 
    21 expt_id_ok: '20CfromEH5' 
    22 expt_id_ok: 'fromERAint' 
    23 expt_id_ok: 'IPSL-CM4-A1B' 
    24 expt_id_ok: 'IPSL-CM4-20C' 
    25 expt_id_ok: 'EH5-OM-A1B-3' 
    26 expt_id_ok: 'EH5-OM-20C-3' 
    27 expt_id_ok: 'ERAint' 
    28  
     15required_global_attributes: creation_date tracking_id model_id conact institute_id ! space separated required global attribute  
     16 
     17expt_id_ok: 'Evaluation run with reanalysis forcing' 'evaluation' 
     18expt_id_ok: 'historical' 'historical' 
     19expt_id_ok: 'RCP4.5' 'rcp45' 
     20expt_id_ok: 'RCP8.5' 'rcp85' 
     21expt_id_ok: 'AMIP' 'amip' 
     22expt_id_ok: '10- or 30-year run initialized in year XXXX' 'decadalXXXX' 
    2923 
    3024! 
     
    229223!----------------------------------      
    230224out_name:         lon 
    231 valid_min:        0.           ! CMOR will add n*360 to input values 
    232                                ! (where n is an integer) to ensure  
    233                                !  longitudes are in proper range. 
    234 valid_max:        360.         !  see above comment. 
    235225!----------------------------------      
    236226! 
     
    249239!----------------------------------      
    250240out_name:         lat 
    251 valid_min:        -90.         
    252 valid_max:        90. 
    253241!----------------------------------      
    254242! 
     
    265253!----------------------------------      
    266254out_name:         lon_vertices 
    267 valid_min:        0.           ! CMOR will add n*360 to input values 
    268                                ! (where n is an integer) to ensure  
    269                                !  longitudes are in proper range. 
    270 valid_max:        360.         !  see above comment. 
    271255!----------------------------------      
    272256! 
     
    283267!----------------------------------      
    284268out_name:         lat_vertices 
    285 valid_min:        -90.         
    286 valid_max:        90. 
    287 !----------------------------------      
    288 ! 
    289 ! 
     269!----------------------------------      
     270! 
     271! 
  • FCC2/trunk/work/cordex_vocabs/mip/CORDEX_mon

    r45 r55  
    77cf_version:   1.4         ! version of CF that output conforms to 
    88project_id:   CORDEX  ! project id 
    9 table_date:   Apr 2013 ! date this table was constructed 
     9table_date:   Sept 2013 ! date this table was constructed 
    1010 
    1111missing_value: 1.e20      ! value used to indicate a missing value 
     
    1515product: output 
    1616! CMIP5's Table adapted for CORDEX 
    17 required_global_attributes: creation_date tracking_id forcing model_id contact institute_id ! space separated required global attribute  
    18  
    19 forcings:   N/A Nat Ant GHG SA  
     17required_global_attributes: creation_date tracking_id model_id contact institute_id ! space separated required global attribute  
    2018 
    2119expt_id_ok: 'Evaluation run with reanalysis forcing' 'evaluation' 
     
    4442!---------------------------------- 
    4543out_name:         lon 
    46 valid_min:        -180.0          
    47 valid_max:        +180.0  
    4844stored_direction: increasing 
    4945type:             double 
     
    282278standard_name:     air_temperature 
    283279units:             K 
    284 cell_methods:      time: maximum 
     280cell_methods:      time: maximum within days time: mean over days 
    285281 
    286282long_name:         Daily Maximum Near-Surface Air Temperature 
     
    309305standard_name:     air_temperature 
    310306units:             K 
    311 cell_methods:      time: minimum 
     307cell_methods:      time: minimum within days time: mean over days 
    312308 
    313309long_name:         Daily Minimum Near-Surface Air Temperature 
     
    414410cell_methods:      time: mean 
    415411 
    416 long_name:         Daily-Mean Near-Surface Wind Speed 
     412long_name:         Near-Surface Wind Speed 
    417413comment:           near-surface (usually, 10 meters) wind speed. 
    418414!---------------------------------- 
     
    437433standard_name:     wind_speed 
    438434units:             m s-1 
    439 cell_methods:      time: maximum 
     435cell_methods:      time: maximum within days time: mean over days 
    440436 
    441437long_name:         Daily Maximum Near-Surface Wind Speed 
  • FCC2/trunk/work/cordex_vocabs/mip/CORDEX_sem

    r45 r55  
    77cf_version:   1.4         ! version of CF that output conforms to 
    88project_id:   CORDEX  ! project id 
    9 table_date:   Apr 2013 ! date this table was constructed 
     9table_date:   Sept 2013 ! date this table was constructed 
    1010 
    1111missing_value: 1.e20      ! value used to indicate a missing value 
     
    1515product: output 
    1616! CMIP5's Table adapted for CORDEX 
    17 required_global_attributes: creation_date tracking_id forcing model_id contact institute_id ! space separated required global attribute  
    18  
    19 forcings:   N/A Nat Ant GHG SA  
     17required_global_attributes: creation_date tracking_id model_id contact institute_id ! space separated required global attribute  
    2018 
    2119expt_id_ok: 'Evaluation run with reanalysis forcing' 'evaluation' 
     
    4442!---------------------------------- 
    4543out_name:         lon 
    46 valid_min:        -180.0          
    47 valid_max:        +180.0  
    4844stored_direction: increasing 
    4945type:             double 
     
    282278standard_name:     air_temperature 
    283279units:             K 
    284 cell_methods:      time: maximum 
     280cell_methods:      time: maximum within days time: mean over days 
    285281 
    286282long_name:         Daily Maximum Near-Surface Air Temperature 
     
    309305standard_name:     air_temperature 
    310306units:             K 
    311 cell_methods:      time: minimum 
     307cell_methods:      time: minimum within days time: mean over days 
    312308 
    313309long_name:         Daily Minimum Near-Surface Air Temperature 
     
    414410cell_methods:      time: mean 
    415411 
    416 long_name:         Daily-Mean Near-Surface Wind Speed 
     412long_name:         Near-Surface Wind Speed 
    417413comment:           near-surface (usually, 10 meters) wind speed. 
    418414!---------------------------------- 
     
    437433standard_name:     wind_speed 
    438434units:             m s-1 
    439 cell_methods:      time: maximum 
     435cell_methods:      time: maximum within days time: mean over days 
    440436 
    441437long_name:         Daily Maximum Near-Surface Wind Speed 
  • FCC2/trunk/work/cordex_vocabs/mip/md5s

    r45 r55  
    1 {'CORDEX': {'Aday': {'April 2012': '42b03893870922ae3f344dbd0727bdfb'}, 'grids': {'April 2013': '31e0a9ce3bc27f9a60e759c4c44923b7', 'April 2012': '6fc08779ccf96e99265f79b999ff17a0'}, '6h': {'Apr 2013': '8e303385f115a043c3d67fc4ee073d69', 'April 2012': '2643fa5019c3df9410a0e15621808d55'}, '3h': {'Apr 2013': '546d4c49c698991a53dc09cf3aadd74c', 'April 2012': '8fb745982bf07388406cabe9e77173c6'}, 'mon': {'Apr 2013': 'a948e1cd93d8bdd4821cac73a90371c6', 'April 2012': 'ba5880e7ff89cde661d19b1dbee5358d'}, 'sem': {'Apr 2013': '6458254df0d61e4a5b8cb90daaed62c5'}, 'day': {'Apr 2013': '99fc0f2e0f16e32c8b1560980f7da0b3', 'April 2012': 'a6ce774c0efd45240dc303aeadc4c245'}, 'Lday': {'April 2012': 'edafa6c4c87821c699b69e2058f13d4b'}}} 
     1{'CORDEX': {'6h': {'Apr 2013': '8e303385f115a043c3d67fc4ee073d69', 'Sept 2013': 'ce05d7ae454b2aa7c972bf06f8d33553', 'April 2012': '2643fa5019c3df9410a0e15621808d55', 'July 2013': 'c3c9029bff9dc72df616522b22cd85de'}, 'Aday': {'April 2012': '42b03893870922ae3f344dbd0727bdfb'}, '3h': {'Apr 2013': '546d4c49c698991a53dc09cf3aadd74c', 'Sept 2013': 'a209327db72f47196b21cf7a4655ddaf', 'April 2012': '8fb745982bf07388406cabe9e77173c6', 'July 2013': 'b230ca47a4edcf1e5f9ec74e97410e36'}, 'mon': {'Apr 2013': 'a948e1cd93d8bdd4821cac73a90371c6', 'Sept 2013': '19e7695480f6ae3f17e425f20c21f259', 'April 2012': 'ba5880e7ff89cde661d19b1dbee5358d', 'July 2013': '1b9479f2893c6124ee1475c7c65e99af'}, 'grids': {'Sept 2013': 'e8e570a72315cbf3c63a15a7d95a8a57', 'April 2013': '414fe050a4a92cf5f1b93988aeada34d', 'April 2012': '6fc08779ccf96e99265f79b999ff17a0', 'July 2013': 'd9763b275ec6625a0d9e5c2501204aed'}, 'fx': {'June 2013': '489dc062568da69b55388920cdf0971d', 'Sept 2013': '5eabf12e1a78bb8153c03b023a311691'}, 'sem': {'Apr 2013': '6458254df0d61e4a5b8cb90daaed62c5', 'Sept 2013': '91300170940f9e61460869e1fe3a2b51', 'July 2013': '5ebff7dbba013efa7facaf4a1fb277c9'}, 'day': {'Apr 2013': '99fc0f2e0f16e32c8b1560980f7da0b3', 'Sept 2013': '7069478e2f896b0b9ed068eddc9737ec', 'April 2012': 'a6ce774c0efd45240dc303aeadc4c245', 'July 2013': 'ab426a0337d9d54a9a6813d143b8d1a8'}, 'Lday': {'April 2012': 'edafa6c4c87821c699b69e2058f13d4b'}}} 
Note: See TracChangeset for help on using the changeset viewer.