!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
!  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}

#elif "${my.meteo.class}" == "ei" :

! ~ era interim
my.meteo.nlev     : 60
my.ecclass_ecl    : ${my.meteo.class}

#else :
#error "unsupported meteo class : ${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.levels}"
#endif


!------------------------------
! ** global surface region:
!------------------------------

! name of global surface region in meteo files:
#if "${region.glbsfc}" != ""
my.regiongm        :  ${region.glbsfc}
#else
my.regiongm        :  glb100x100
#endif


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

! by default, load nothing:
meteo.read.*.*                    : F
! ~ read model level fields,
!   except on global surface region:
meteo.read.*.ml                   : T
meteo.read.${my.regiongm}.ml      : F
! ~ read surface fields on global surface region:
meteo.read.${my.regiongm}.sfc     : T

! not the exotic ones yet ...
meteo.read.${my.regiongm}.ch4fire       :  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]
!
!
! ~~~ od meteo production
!
! ~ fc fields are 3 hourly instantaneous; keep them constant,
!   except for the accumulated fields which have been averaged over 3 hour:
! ~ fc 3 hourly
meteo.tinterp.*              :  const3
meteo.tinterp.sp             :  interp3
meteo.tinterp.sfc.aver       :  aver3
! ~ an fields 6 hourly instantaneous; keep them constant, 
!   except oro and lsm which are constant:
meteo.tinterp.sfc.an         :  interp6
! ~ constant
meteo.tinterp.oro            :  const
meteo.tinterp.lsm            :  const
! ~ surface roughness Olsson/Ganzeveld is per month:
meteo.tinterp.srols          :  month


!------------------------------
! ** 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.${my.region1}.*   : tmpp:class=od;type=fc;levs=ml60;grid=glb3x2;tres=_21p06
!
! Optionally, some specific fields might be read from a different set:
!
!    tmm.sourcekey.${my.region1}.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:
!

! Coarsened to zoom regions and combined layers:
tmm.sourcekey.${my.region1}.ml  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region1m};tres=_00p03
#if len("${my.region2m}") > 0 :
tmm.sourcekey.${my.region2}.ml  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region2m};tres=_00p03
#endif
#if len("${my.region3m}") > 0 :
tmm.sourcekey.${my.region3}.ml  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region3m};tres=_00p03
#endif
#if len("${my.region4m}") > 0 :
tmm.sourcekey.${my.region4}.ml  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region4m};tres=_00p03
#endif
#if len("${my.region5m}") > 0 :
tmm.sourcekey.${my.region5}.ml  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region5m};tres=_00p03
#endif
tmm.sourcekey.*.sfc.fc          :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-sfc-${my.regiongm};tres=_00p03
tmm.sourcekey.*.sfc.an          :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-an0tr6-sfc-${my.regiongm};tres=_00p06


!------------------------------
! ** 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  : T
tmm.dir.size   : 30G

!
! 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         :  7

tmm.setup.001.apply    :  T
tmm.setup.001.files    :  oro lsm albedo sr srols veg
tmm.setup.001.sources  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-an0tr6-sfc-${my.regiongm};tres=_00p06
tmm.setup.001.search   :  ${my.meteo.search}
!
tmm.setup.002.apply    :  T
tmm.setup.002.files    :  blh ci cp d2m ewss g10m lsp nsss sd sf skt slhf src sshf ssr ssrd sst str strd swvl1 t2m u10m v10m
tmm.setup.002.sources  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-sfc-${my.regiongm};tres=_00p03
tmm.setup.002.search   :  ${my.meteo.search}
!
tmm.setup.003.apply    :  T
tmm.setup.003.files    :  sp mfuv mfw t q cld sub
tmm.setup.003.sources  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region1m};tres=_00p03
tmm.setup.003.search   :  ${my.meteo.search}
!
#if len("${my.region2m}") > 0 :
tmm.setup.004.apply    :  T
tmm.setup.004.files    :  sp mfuv mfw t q cld sub
tmm.setup.004.sources  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region2m};tres=_00p03
tmm.setup.004.search   :  ${my.meteo.search}
#else :
tmm.setup.004.apply    :  F
#endif
!
#if len("${my.region3m}") > 0 :
tmm.setup.005.apply    :  T
tmm.setup.005.files    :  sp mfuv mfw t q cld sub
tmm.setup.005.sources  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region3m};tres=_00p03
tmm.setup.005.search   :  ${my.meteo.search}
#else :
tmm.setup.005.apply    :  F
#endif
!
#if len("${my.region4m}") > 0 :
tmm.setup.006.apply    :  T
tmm.setup.006.files    :  sp mfuv mfw t q cld sub
tmm.setup.006.sources  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region4m};tres=_00p03
tmm.setup.006.search   :  ${my.meteo.search}
#else :
tmm.setup.006.apply    :  F
#endif
!
#if len("${my.region5m}") > 0 :
tmm.setup.007.apply    :  T
tmm.setup.007.files    :  sp mfuv mfw t q cld sub
tmm.setup.007.sources  :  tm5-hdf:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region5m};tres=_00p03
tmm.setup.007.search   :  ${my.meteo.search}
#else :
tmm.setup.007.apply    :  F
#endif


!------------------------------
! ** output meteo
!------------------------------

! should meteo be put out ? (used in the storage script):
tmm.output                    :  T

! By default, write none:
tmm.output.*.*                      :  F
! ~ model level fields:
tmm.output.*.ml                     :  T
! ~ surface fields on global surface region:
tmm.output.${my.regiongm}.sfc       :  T

! Define output format and/or first part of file name:
!
!   tmm.destkey.${my.region1}.*      :  tm5:mdir=ec-fc012up2-tropo25-glb6x4;tres=_00p06
!
! Optionally overwrite for special sets
!  
!    sp mflux_w mflux_uv temper humid cloud convec albedo sr
!
! ** od/ei production
!
tmm.destkey.${my.region1}.ml            :  tm5-nc:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region1}-<yyyy>;tres=_00p03
#if "${my.region2}" != "" :
tmm.destkey.${my.region2}.ml            :  tm5-nc:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region2}-<yyyy>;tres=_00p03
#endif
#if "${my.region3}" != "" :
tmm.destkey.${my.region3}.ml            :  tm5-nc:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region3}-<yyyy>;tres=_00p03
#endif
#if "${my.region4}" != "" :
tmm.destkey.${my.region4}.ml            :  tm5-nc:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region4}-<yyyy>;tres=_00p03
#endif
#if "${my.region5}" != "" :
tmm.destkey.${my.region5}.ml            :  tm5-nc:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-${my.mlevs}-${my.region5}-<yyyy>;tres=_00p03
#endif
!
tmm.destkey.${my.regiongm}.sfc          :  tm5-nc:mdir=ec-${my.ecclass_ecl}-fc012up2tr3-sfc-${my.regiongm}-<yyyy>;tres=_00p03
tmm.destkey.${my.regiongm}.sfc.an       :  tm5-nc:mdir=ec-${my.ecclass_ecl}-an0tr6-sfc-${my.regiongm}-<yyyy>;tres=_00p06


! TM5 writes new meteo files to:
tmm.output.dir                :  ${my.project.dir}/tm5_meteo_out


! ensure creation via 'install' facilty:
tmm.output.install.dir        :  ${tmm.output.dir}


!------------------------------
! Options for "tm5-tmm-store" script.
!------------------------------

! display messages ?
tmm.output.store.verbose    :  T

! Specify one or more archives.
! Files are stored in monthly tar files if an archive ends with '/*.tar';
! large 3D files per 10 or 5 days for '/*.tar10' or '/*.tar5' .
! Examples:
!    ${SCRATCH}/TM/meteo_day
!    ecfs:/nlh/TM/meteo/*.tar
!    mos:umask=002%/fa/ks/meteo/*.tar
! NOTE: files are removed from <tmm.output.dir> after storage ...
!
!tmm.output.store.archives   :  ecfs:umask=002%/nlh/TM/meteo-nc/*.tar5
tmm.output.store.archives   :  ${SCRATCH}/NO-TAPE-YET/TM/meteo-nc/*.tar5

! zip tar files (empty or zipper command: gzip bzip2):
tmm.output.store.zipper     :  gzip


!------------------------------
! ** CF conventions
!------------------------------

! file with standard name table;
! used for TM5 NetCDF meteo, comment if not used:
!
cf-standard-name-table        : ${PWD}/tools/cf/data/cf-standard-name-table-v15.xml



