123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500 |
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !
- ! Include this METEO rc file in your main rcfile:
- !
- ! #include /path/to/thisfile.rc
- !
- ! The following variables are used and should have been defined:
- !
- ! * in the main rcfile:
- !
- ! ! a short name for region. One of the following three:
- ! my.region1 : glb100x100 | glb300x200 | glb600x400
- !
- ! ! grid names for meteo input:
- ! my.region1m : glb100x100 | glb300x200 | ${my.region1}
- !
- ! ! Number of model levels. One of the following four:
- ! my.levs : all | tropo25 | tropo31 | tropo34
- !
- ! ! ECMWF meteo class ('ei' or 'od' or 'ea')
- ! my.meteo.class : ea
- !
- ! ! what kind of meteo archive ? One of the following two:
- ! my.meteo.resol : glb100x100 ! main archive with all ECMWF layers and 1.00x1.00 grid
- ! my.meteo.resol : coarsened ! coarsened to ${LEVS} and regions
- !
- ! ! file format: "tm5-nc" for netcdf
- ! my.meteo.format : tm5-nc
- !
- ! ! 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
- ! K ml diffus
- ! 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,
- ! set class variable for filenames, and which convective fluxes to use
- !----------------------------------------------------------
- !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- #if "${my.meteo.class}" == "od" :
- !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ! ~ number of levels for od data increases in time ...
- ! On 25 June 2013, it went from 91 to 137
- #if int("${timerange.start}"[0:4]) <= 2005 :
- my.meteo.nlev : 60
- #elif (int("${timerange.start}"[0:4]) <= 2013) and (int("${timerange.start}"[5:7]) <= 6) and (int("${timerange.start}"[9:11])<25):
- my.meteo.nlev : 91
- #else
- my.meteo.nlev : 137
- #endif
- my.ecclass_ecl : ${my.meteo.class}_L${my.meteo.nlev}
- tiedtke:T
- !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- #elif "${my.meteo.class}" == "ei" :
- !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ! ~ era interim
- my.meteo.nlev : 60
- my.ecclass_ecl : ${my.meteo.class}
- #if "${convective.fluxes.tiedtke}" == "T":
- tiedtke:T
- #else
- tiedtke:F
- #endif
- !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- #elif "${my.meteo.class}" == "ea" :
- !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ! ~ era interim
- my.meteo.nlev : 137
- my.ecclass_ecl : ${my.meteo.class}
- #if "${convective.fluxes.tiedtke}" == "T":
- tiedtke:T
- #else
- tiedtke:F
- #endif
- !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- #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","tropo31","tropo34","ml40"] :
- my.mlevs : ${my.levs}
- #else :
- #error "unsupported number of model levels : ${my.levs}"
- #endif
- !----------------------------------------------------------
- ! ** time resolution to read the correct grib files
- !----------------------------------------------------------
- ! ~ ERA5
- #if "${my.meteo.class}" == "ea" :
- !
- ! forecasts from 06:00/18:00, retrieve 3 or 1 hourly;
- ! analysis, retrieve 1 hourly
- !
- my.source.tres.ml : h06h18tr3
- my.source.tres.sfc : h06h18tr1
- my.source.tres.sfc.an : an0tr1
- ! time resolutions in destination files
- my.dest.tres.ml : 00p03
- my.dest.tres.sfc : 00p01
- my.dest.tres.sfc.an : 00p01
- ! ~ ERA-Interim / OD
- #else
- !
- ! forecasts from 00:00/12:00, retrieve 3 hourly
- ! analysis, retrieve 6 hourly
- !
- my.source.tres.ml : fc012up2tr3
- my.source.tres.sfc : fc012up2tr3
- my.source.tres.sfc.an : an0tr6
- ! time resolutions in destination files
- my.dest.tres.ml : 00p03
- my.dest.tres.sfc : 00p03
- my.dest.tres.sfc.an : 00p06
- #endif
- !----------------------------------------------------------
- ! ** which files should be read ?
- !----------------------------------------------------------
- ! by default, load nothing;
- ! processes will set flags if meteo is needed:
- meteo.read.*.* : 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]
- !
- !
- ! ~ ERA5
- #if "${my.meteo.class}" == "ea" :
- ! ~ archived fields are 1 hourly;
- ! surface fields at this resolution:
- meteo.tinterp.* : interp1
- meteo.tinterp.sfc.aver : aver1
- ! ~ model level fields retrieved 3 hourly:
- meteo.tinterp.ml : interp3
- meteo.tinterp.convec : aver3
- meteo.tinterp.diffus : aver3
- ! ~ ERA-Interim / OD
- #else
- ! ~ fc fields are 3 hourly instantaneous,
- ! except for the accumulated fields which have been averaged over 3 hour:
- meteo.tinterp.* : interp3
- meteo.tinterp.sfc.aver : aver3
- ! ~ an fields 6 hourly instantaneous,
- ! except oro and lsm which are constant:
- meteo.tinterp.sfc.an : interp6
- #if "${tiedtke}" == "F":
- ! convec files
- meteo.tinterp.convec : aver3
- #endif
- #endif
- ! ~ 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.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-hdf:mdir=ec-fc012up2-ml60-tropo25-glb600x400;tres=_00p06
- !
- ! TM5 produced meteo files, hdf format.
- !
- ! * tm5-nc:mdir=ec-fc012up2-ml60-tropo25-glb600x400-<yyyy>;tres=_00p06
- !
- ! TM5 produced meteo files, netcdf format.
- ! The '<yyyy>' key will be replaced by the year.
- !
- ! * msc-data:nlev=71;sh=47;mdir=cmam;type=iau;tres=_6hrly;sp_unit=hPa
- !
- ! * ncep-gfs:
- ! * ncep-cdc:
- !
- #if "${my.meteo.format}" == "tm5-nc" :
- my.mext : -<yyyy>
- #else :
- my.mext :
- #endif
- !
- ! ~~~ TM5 produced
- !
- #if "${my.meteo.resol}" == "glb100x100" :
- !
- ! From global 1.00x1.00 set on all layers:
- tmm.sourcekey.*.* : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.ml}-${my.eclevs}-glb100x100${my.mext};tres=_${my.dest.tres.ml}
- tmm.sourcekey.*.sfc.fc : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.sfc}-sfc-glb100x100${my.mext};tres=_${my.dest.tres.sfc}
- tmm.sourcekey.*.sfc.an : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.sfc.an}-sfc-glb100x100${my.mext};tres=_${my.dest.tres.sfc.an}
- tmm.sourcekey.*.convec : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.ml}-${my.eclevs}-glb100x100${my.mext};tres=_${my.dest.tres.ml}
- !
- #elif "${my.meteo.resol}" == "coarsened" :
- !
- ! Coarsened to zoom regions and combined layers:
- tmm.sourcekey.${my.region1}.ml : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.ml}-${my.mlevs}-${my.region1m}${my.mext};tres=_${my.dest.tres.ml}
- tmm.sourcekey.${my.region1}.convec : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.ml}-${my.mlevs}-${my.region1m}${my.mext};tres=_${my.dest.tres.ml}
- tmm.sourcekey.*.sfc.fc : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.sfc}-sfc-${region.glbsfc}${my.mext};tres=_${my.dest.tres.sfc}
- tmm.sourcekey.*.sfc.an : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.sfc.an}-sfc-${region.glbsfc}${my.mext};tres=_${my.dest.tres.sfc.an}
- !
- #else
- #error "unsupported value of my.meteo.resol : ${my.meteo.resol}"
- #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 : 5
- ! ** TM5 produced hdf/nc files:
- !
- tmm.setup.001.apply : T
- tmm.setup.001.files : oro lsm albedo sr srols veg
- !tmm.setup.001.sources : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.sfc.an}-sfc-${region.glbsfc}${my.mext};tres=_${my.dest.tres.sfc.an}
- tmm.setup.001.sources : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.sfc.an}-sfc-glb100x100${my.mext};tres=_${my.dest.tres.sfc.an}
- tmm.setup.001.search : ${my.meteo.search}
- !
- tmm.setup.002.apply : T
- tmm.setup.002.files : ci cp d2m lsp sd skt blh slhf src sshf ssr sst ewss nsss swvl1 t2m u10m v10m
- !tmm.setup.002.sources : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.sfc}-sfc-${region.glbsfc}${my.mext};tres=_${my.dest.tres.sfc}
- tmm.setup.002.sources : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.sfc}-sfc-glb100x100${my.mext};tres=_${my.dest.tres.sfc}
- tmm.setup.002.search : ${my.meteo.search}
- !
- #if "${my.meteo.resol}" == "glb100x100" :
- !
- ! number of sets defined below:
- tmm.setup.nset : 3
- !
- tmm.setup.003.apply : T
- #if "${tiedtke}" == "T":
- tmm.setup.003.files : sp mfuv mfw t q cld sub
- #else
- tmm.setup.003.files : sp mfuv mfw t q cld convec
- #endif
- tmm.setup.003.sources : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.ml}-${my.eclevs}-glb100x100${my.mext};tres=_${my.dest.tres.ml}
- tmm.setup.003.search : ${my.meteo.search}
- !
- #elif "${my.meteo.resol}" == "coarsened" :
- !
- ! number of sets defined below:
- tmm.setup.nset : 3
- !
- tmm.setup.003.apply : T
- #if "${tiedtke}" == "T":
- tmm.setup.003.files : sp mfuv mfw t q cld sub
- #else
- tmm.setup.003.files : sp mfuv mfw t q cld convec
- #endif
- tmm.setup.003.sources : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.ml}-${my.mlevs}-${my.region1m}${my.mext};tres=_${my.dest.tres.ml}
- tmm.setup.003.search : ${my.meteo.search}
- !
- #else
- #error "unsupported value of my.meteo.resol : ${my.meteo.resol}"
- #endif
- !================================================
- ! ** output meteo
- !================================================
- ! Write output (T/F)?
- tmm.output : F
- ! Write all fields (T/F)?
- tmm.output.* : F
- ! Write all fields (T/F)?
- tmm.output.*.ml : F
- ! ~ surface fields on global surface region:
- tmm.output.${my.region1}.sfc : F
- tmm.destkey.${my.region1}.ml : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.ml}-${my.mlevs}-${my.region1}${my.mext};tres=_${my.dest.tres.ml}
- tmm.destkey.${my.region1}.sfc : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.sfc}-sfc-${my.region1}${my.mext};tres=_${my.dest.tres.sfc}
- tmm.destkey.${my.region1}.sfc.an : ${my.meteo.format}:mdir=ec-${my.ecclass_ecl}-${my.source.tres.sfc.an}-sfc-${my.region1}${my.mext};tres=_${my.dest.tres.sfc.an}
- ! TM5 writes new meteo files to:
- tmm.output.dir : ${my.scratch}/tm5_meteo_in
- ! ensure creation via 'install' facilty:
- tmm.output.install.dir : ${tmm.output.dir}
- !----------------------------------------------------------
- ! ** CF conventions
- !----------------------------------------------------------
- ! file with standard name table:
- #if "${my.meteo.format}" == "tm5-nc"
- cf-standard-name-table : ${PWD}/tools/cf/data/cf-standard-name-table-v15.xml
- !cf-standard-name-table : /home/ms/nl/nm6/TM5MP/tools/cf/data/cf-standard-name-table-v15.xml
- #endif
|