!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!  Include this file in the rcfile:
!
!     #include  /path/to/thisfile.rc
!
!  The following variables are used and should have been defined:
!
!   * in the main rcfile:
!
!       ! short names for regions:
!       my.region1   :  glb600x400
!       my.region2   :  eur300x200
!       my.region3   :  eur100x100
!
!       ! grid names for meteo input:
!       my.region1m  :  ${my.region1}
!       my.region2m  :  ${my.region2}
!       my.region3m  :  eux100x100
!
!       ! meteo class (and level key?) for ecmwf data:
!       my.ecclass_ecl      :  od_${ECL}
!       !my.ecclass_ecl      :  ei
!
!       ! call meteo setup script (T|F) ?
!       my.tmm.setup.apply   :  F
!
!   * in the machine rc file:
!
!       ! local directory with unpacked meteo files:
!       my.meteo.dir          :  /scratch/shared/meteo
!
!       ! where to search of missing files ?
!       my.meteo.search       :  ec:ecfs[nlh]:TM/meteo
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! The keys that define meteo usage have the form:
!
!   <key(s)>.<name(s)>
!
! or, if the property depends on the zoom region:
!
!   <key(s)>.<region_name>.<name(s)>
!
! The region_name is either a '*' or names like 'glb300x200' etc.
!
! Multipe names could apply to the same field; see the table below.
! A '*' applies to all fields.
! If more than name applies to a field, the last one defines the value.
! For example, the following 3 keys all apply to the 'oro' field,
! but the resulting temporal interpolation will be 'const' :
!
!     meteo.tinterp.*              :  interp3
!     meteo.tinterp.sfc.an         :  interp6
!     meteo.tinterp.oro            :  const
!
! Summary of possible name(s) :
!
!  field     name(s) that apply to this field
!  --------  ------------------------------------------------------
!  sp        ml                                            sp
!  mfw       ml                                 mflux_w
!  tsp       ml                                 mflux_w
!  mfu       ml                                 mflux_uv
!  mfv       ml                                 mflux_uv
!  T         ml                                            temper
!  Q         ml                                            humid
!  CLWC      ml                                 cloud
!  CIWC      ml                                 cloud
!  CC        ml                                 cloud
!  CCO       ml                                 cloud
!  CCU       ml                                 cloud
!  eu        ml                                 convec
!  ed        ml                                 convec
!  du        ml                                 convec
!  dd        ml                                 convec
!  oro       sfc  sfc.const           sfc.an               oro
!  lsm       sfc  sfc.const           sfc.an               lsm
!  ci        sfc  sfc.inst sfc.day    sfc.fc               ci
!  sst       sfc  sfc.inst            sfc.fc               sst
!  u10m      sfc  sfc.inst            sfc.fc               u10m
!  v10m      sfc  sfc.inst            sfc.fc               u10m
!  g10m      sfc  sfc.inst            sfc.fc               g10m
!  src       sfc  sfc.inst            sfc.fc               src
!  d2m       sfc  sfc.inst            sfc.fc               d2m
!  t2m       sfc  sfc.inst            sfc.fc               t2m
!  skt       sfc  sfc.inst            sfc.fc               blh
!  blh       sfc  sfc.inst            sfc.fc               skt
!  sshf      sfc  sfc.aver            sfc.fc               sshf
!  slhf      sfc  sfc.aver            sfc.fc               slhf
!  ewss      sfc  sfc.aver            sfc.fc               ewss
!  nsss      sfc  sfc.aver            sfc.fc               nsss
!  cp        sfc  sfc.aver            sfc.fc               cp
!  lsp       sfc  sfc.aver            sfc.fc               lsp
!  sf        sfc  sfc.aver            sfc.fc               sf
!  ssr       sfc  sfc.aver            sfc.fc               ssr
!  sd        sfc  sfc.inst sfc.day    sfc.fc               sd
!  swvl1     sfc  sfc.inst sfc.day    sfc.fc               swvl1
!  tv        sfc  sfc.inst sfc.day    sfc.an    veg
!  cvl       sfc  sfc.inst sfc.day    sfc.an    veg
!  cvh       sfc  sfc.inst sfc.day    sfc.an    veg
!  albedo    sfc  sfc.inst sfc.day    sfc.an               albedo
!  sr        sfc  sfc.inst sfc.day    sfc.an               sr
!  srols     sfc  sfc.inst sfc.day    sfc.an               srols
!
! Background:
!  o 'ml' and 'sfc' indicate model levels and surface level
!  o surface fields could have a constant value (sfc.const),
!    have instananeous values (sfc.inst), 
!    or averaged over an accumulation interval (sfc.aver).
!  o when meteo was produced by TMPP, some fields were stored
!    as daily averages (sfc.day)
!  o surface fields could originate from an ecmwf forecast (sfc.fc)
!    or from the analysis (sfc.an)
!  o group names apply to fields that usually belong together,
!    for example the vegation fields (veg)
!


!----------------------------------------------------------
! ** get number of meteo levels,
!    and set class variable for filenames
!----------------------------------------------------------

!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#if "${my.meteo.class}" == "od" :
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

! ~ number of levels for od data increases in time ...
#if int("${timerange.start}"[0:4]) <= 2005 :
my.meteo.nlev     : 60
#else
my.meteo.nlev     : 91
#endif
my.ecclass_ecl    : ${my.meteo.class}_L${my.meteo.nlev}

!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#else :
#error "unsupported meteo class for TMPP produced files : ${my.meteo.class}"
#endif
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

!previously ECLEVS:
my.eclevs : ml${my.meteo.nlev}


!----------------------------------------------------------
! ** name for choice of number of model levels (previously LEVS)
!----------------------------------------------------------

#if "${my.levs}" in ["all",""] :
my.mlevs           : ml${my.meteo.nlev}
#elif "${my.levs}" in ["tropo25","tropo34","ml40"] :
my.mlevs           : ${my.levs}
#else :
#error "unsupported number of model levels : ${my.levs}"
#endif


!----------------------------------------------------------
! ** which files should be read ?
!----------------------------------------------------------

! by default, load nothing; 
! processes will set flags if meteo is needed:
!meteo.read.*.*              : F
!diffusion.write       : T
!diffusion.dir         : ${BASEDIR}/METEO/od/fc
meteo.read.*		: T
meteo.read.sps        : F
meteo.read.sst        : F
meteo.read.cloud        : F
meteo.read.albedo       : F
meteo.read.ocean        : F
meteo.read.gph          : T
meteo.read.convec       : F


!
! ** temporal interpolation
!

!
! Temporal interpolation is defined first by general key:
!
!   meteo.tinterp.*      :  const6
!
! Optionally, different settings might be chosen for specific meteo:
!
!   sp mflux_uv mflux_w temper humid cloud convec surf.inst surf.aver surf.day albedo sr
!
! Possible time interpolations:
!  o month      : constant in month
!  o const      : constant
!  o const24    : constant in 24hr intervals [00:00,24:00]
!  o const6     : constant in 6hr intervals  [21:00,03:00]  [03:00,09:00]  ...
!  o const3     : constant in 3hr intervals  [22:30,01:30]  [01:30,04:30] ...
!  o interp6    : interpoloated between 00,     06,     12,     18
!  o interp6_3  : interpoloated between     03,     09,     15,     21
!  o interp3    : interpoloated between 00, 03, 06, 09, 12, 15, 18, 21
!  o aver6      : time averages over intervals ]00,06], [06,12], ...
!  o aver3      : time averages over intervals [00,03], [03,06], ...
!  o aver24     : time averages over interval  [00,24]
!  o aver24_3   : time averages over interval  [21,21]
!
!
!!
!! ~~~ tmpp produced meteo
!!

! default setting, might consider a means to change this
tmpp.meteo.tinterp : T

!! ~ model level fields: 6 hourly, interpolate
#if "${tmpp.meteo.tinterp}" == "T" 

meteo.tinterp.*              :  interp6
meteo.tinterp.sfc            :  interp3
meteo.tinterp.sfc.aver       :  aver3
meteo.tinterp.sfc.day        :  aver24_3
meteo.tinterp.sfc.const      :  const
meteo.tinterp.srols          :  aver24_3

#else
! settings similar to cy2/TMPP at NOAA:

meteo.tinterp.*              :  const6
meteo.tinterp.sp             :  interp6_3
meteo.tinterp.sfc            :  const3
meteo.tinterp.sfc.aver       :  aver3
meteo.tinterp.sfc.day        :  aver24_3
meteo.tinterp.sfc.const      :  const
meteo.tinterp.srols          :  aver24_3

#endif


!meteo.tinterp.*              :  const6
!meteo.tinterp.sp             :  interp6_3
!meteo.tinterp.sfc.inst  :  const3
!meteo.tinterp.sfc.aver  :  aver3
!meteo.tinterp.sfc.day   :  aver24_3
!meteo.tinterp.sfc.const :  const

!
! ** source keys : how to form a file name ?
!

!
! TMM requires keys on how to form a meteo filename.
! A key should be defined for each region (names are in 'dims_grid.F90'):
!
!    tmm.sourcekey.glb600x400.*   : tmpp:class=od;type=fc;levs=ml60;grid=glb3x2;tres=_21p06
!
! Optionally, some specific fields might be read from a different set:
!
!    tmm.sourcekey.glb600x400.sp   : ecmwf:form=3hr;class=od;type=fc;nlev=60;sh=159;tres=_fc012up2tr3
!  
! Possible specific fields:
!
!    sp mflux_uv mflux_w temper humid cloud convec
!    surf oro lsm albedo sr 
!   
! Examples of source keys:
!
!   * tmpp:class=od;type=fc;levs=ml60;grid=glb3x2;tres=_21p06
!
!       Identifies the regular TMPP hdf files:
!          xxxx/od-fc-2000-01-ml60-glb3x2-uvsp_20000101_21p06.hdf
!             etc
!
!   * tmpp:class=od;type=fc;levs=ml60;grid=glb3x2;tres=_21p06;pathsep=\;namesep=\
!
!       Idem, but then for full Windows path names:
!          xxxx\od\fc\2000\01\ml60\glb3x2\uvsp_20000101_21p06.hdf
!             etc
!
!   * tm5:mdir=ec-fc012up2-ml60_tropo25-glb6x4;tres=_00p06
!
!   * msc-data:nlev=71;sh=47;mdir=cmam;type=iau;tres=_6hrly;sp_unit=hPa
!    
!   * ncep-gfs:
!   * ncep-cdc:
!

!
! ~~~ TMPP produced
!

! o shared archive with tar files unpacked in directories:
!tmm.sourcekey.*.*         :  tmpp:class=od;type=fc;levs=${my.mlevs};grid=glb3x2;tres=_21p06;namesep=/
!tmm.sourcekey.*.sfc       :  tmpp:class=od;type=fc;levs=sfc;grid=glb1x1;tres=_21p03;sstr=T;namesep=/
!
! o temporary archive with tar files unpacked into long named files:
!tmm.sourcekey.*.*         :  tmpp:class=od;type=fc;levs=${my.mlevs};grid=glb3x2;tres=_21p06;namesep=-
!tmm.sourcekey.*.sfc       :  tmpp:class=od;type=fc;levs=sfc;grid=glb1x1;tres=_21p03;sstr=T;namesep=-

#if "${my.eclevs}" == "ml60"
! pre 2005-12:
tmm.sourcekey.*.*         : tmpp:class=od;type=fc;levs=ml60;grid=glb3x2;tres=_21p06;sstr=T;namesep=/
tmm.sourcekey.nam100x100.*    : tmpp:class=od;type=fc;levs=ml25;grid=nam1x1;tres=_21p06;sstr=T;namesep=/
tmm.sourcekey.*.sfc       : tmpp:class=od;type=fc;levs=sfc;grid=glb1x1;tres=_21p03;sstr=T;namesep=/
#endif

#if "${my.eclevs}" == "ml91"
! post 2005-12:
tmm.sourcekey.*.*         : tmpp:class=od;type=fc;levs=ml91;grid=glb3x2;tres=_21p06;sstr=T;namesep=/
!tmm.sourcekey.nam300x200.*  : tmpp:class=od;type=fc;levs=tropo34;grid=nam3x2;tres=_21p06;sstr=T;namesep=/
tmm.sourcekey.nam100x100.*  : tmpp:class=od;type=fc;levs=tropo34;grid=nam1x1;tres=_21p06;sstr=T;namesep=/
tmm.sourcekey.*.sfc       : tmpp:class=od;type=fc;levs=sfc;grid=glb1x1;tres=_21p03;sstr=T;namesep=/
#endif



!
! ** install meteo files
!

! location of meteo files;
! either a permanent archive, or a temporary scratch:
tmm.dir        : ${my.meteo.dir}

! Clean up the temporary meteo ?
!  o Set the clean flag (T|F) such that files that have not been accessed
!    for a long time are removed if a maximum buffer usage is exceeded.
!  o specify a maximum size: 500k, 1M, 2G
!
tmm.dir.clean  : F
tmm.dir.size   : 4G

!
! Meteo files could be setup before the actual program is started.
! First set the main switch to apply this or not.
! If to be applied, specify details for a number of sets;
! each set can be applied by a seperate flag.
!
tmm.setup.apply        :  ${my.tmm.setup.apply}

! display progress ?
tmm.setup.verbose      :  T

! file permission mode for newly created files:
!  o user archive            : 644
!  o archive shared by group : 664
tmm.setup.mode         :  664

! number of sets defined below:
tmm.setup.nset         :  1

! ** TM5 produced hdf files:
!
tmm.setup.001.apply    :  T
tmm.setup.001.files    :  uvsp w spm t q cld sub surf
tmm.setup.001.sources  :  tmpp:class=od;type=fc;levs=${my.mlevs};grid=glb3x2;tres=_21p06;namesep=/
tmm.setup.001.search   :  ${my.meteo.search}

! adhoc: added because older versions of the model want to read it ...
tmm.output.dir      :  tm5_meteo_out
