pycasso-tm5-convert-meteo.rc 39 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157
  1. ! ######################################################################
  2. ! ###
  3. ! ### TM5
  4. ! ###
  5. ! ### Template settings for standard run.
  6. ! ###
  7. ! ### VARIABLE EXPANSION IN RC FILE
  8. ! ### ------------------------------
  9. ! ### The variables '${..}' in this file are expanded on reading.
  10. ! ###
  11. ! ### Special variables are (read 'S' as '$'):
  12. ! ### S{pid} : evalutates to the process id of the calling script
  13. ! ### S{script} : " " " name " " " "
  14. ! ###
  15. ! ### Convention : variables 'my.*' are NOT read by the scripts or
  16. ! ### the program, but only used to fill settings in this file or
  17. ! ### the expert settings.
  18. ! ###
  19. ! ### In post/preprocessing settings, <...> keys are expanded by the
  20. ! ### underlying python script. Eg: <output.dir> <rcfile> <bindir>
  21. ! ###
  22. ! ### Finally, there is the %{...} keys, similar to '${..}' but
  23. ! ### expanded only at the end of the run in the "rs" file. See
  24. ! ### post-processing settings, where this is used.
  25. ! ###
  26. ! ###
  27. ! ### QUICKSTART
  28. ! ### -----------------------------
  29. ! ### Take the following steps for a first experience.
  30. ! ###
  31. ! ### 1. Ensure that the setup script is linked:
  32. ! ###
  33. ! ### TM5> ln -s base/trunk/bin/pycasso_setup_tm5 setup_tm5
  34. ! ###
  35. ! ### 2. Obtain a copy of this file to edit:
  36. ! ###
  37. ! ### TM5> cp base/trunk/rc/pycasso-tm5.rc pycasso-tm5.rc
  38. ! ###
  39. ! ### 3. Select an approriate file with machine specific settings to be included;
  40. ! ### if your system is not supported yet, use:
  41. ! ###
  42. ! ### my.machine.rc : pycasso-machine-template.rc
  43. ! ###
  44. ! ### 4. The scripts will try to install, compile, and run ia TM5 code in
  45. ! ### the following directory structure (adopted from Carbon-Tracker):
  46. ! ###
  47. ! ### <basedir>/<project>/build/
  48. ! ### /run/
  49. ! ### /output/
  50. ! ### ...
  51. ! ### Edit the rcfile and fill a proper base directory name:
  52. ! ###
  53. ! ### my.basedir : /scratch/yourname/run-TM5
  54. ! ###
  55. ! ### 5. Try to install and compile a code, use '-v' for verbose mode:
  56. ! ###
  57. ! ### TM5> ./setup_tm5 pycasso-tm5.rc -v
  58. ! ###
  59. ! ### The first runs will probably fail due to incorrect settings.
  60. ! ### Some hints on where to change them:
  61. ! ###
  62. ! ### o library paths and flags : pycasso-machine-*.rc
  63. ! ###
  64. ! ### o compiler flags : pycasso-machine-*.rc
  65. ! ### (or the 'pycasso-compiler-*.rc' included from there)
  66. ! ###
  67. ! ### If the code is compiled correctly, also also try to submit it:
  68. ! ###
  69. ! ### TM5> ./setup_tm5 pycasso-tm5.rc -v -s
  70. ! ###
  71. ! ### This will start the run in foreground.
  72. ! ###
  73. ! ### The first runs will probably fail due to missing input files.
  74. ! ### See the settings in this file, and eventually the definition
  75. ! ### of some common input paths in the machine.rc :
  76. ! ### my.data.dir : /data/TM5/input
  77. ! ### my.meteo.dir : /data/TM5/METEO
  78. ! ###
  79. ! ### Use the '-h' flag for info on how to submit to a queue.
  80. ! ### Ensure that correct queue settings are specfified in the machine.rc.
  81. ! ###
  82. ! ######################################################################
  83. !
  84. ! ------------------------------------------------
  85. ! run description
  86. ! ------------------------------------------------
  87. !
  88. ! Project Name : a convenient variable, you can use for whatever need
  89. ! you may have in defining your keys. Here it is only used to define
  90. ! the project top directory, under which build/run/output/archive/
  91. ! restart/save... directories are set):
  92. my.project : meteo-nc
  93. ! Id : short description for this run. It is used to name default
  94. ! standard output, but can be used anywhere else you want.
  95. ! ~ to convert glb100x100 meteo:
  96. runid : glb100x100
  97. ! ~ to convert coarsened meteo:
  98. !runid : coarsened
  99. ! benchmark settings ?
  100. run.benchmark : T
  101. ! ----------------------------------------
  102. ! build and run directories
  103. ! ----------------------------------------
  104. ! The code is build and compiled in :
  105. !
  106. ! <my.project.dir>/build/
  107. !
  108. ! It is suggested (but you do not have to) to start my.run.dir with
  109. ! ${my.project.dir}, so you end up with the following tree :
  110. !
  111. ! <my.project.dir>/build
  112. ! /<rundir>
  113. !
  114. ! Output/restart/save/archive directories -see below- can also be
  115. ! set below ${my.project.dir} :
  116. !
  117. ! <my.project.dir> / build
  118. ! / <rundir>
  119. ! / <output.dir>
  120. ! / <savedir>
  121. ! / <restart.write.dir>
  122. !
  123. ! Following these suggestions, the ${my.project.dir} fully becomes a
  124. ! project top directory, and not just the parent of the build dir.
  125. !
  126. ! Note that
  127. ! (1) the 'my.scratch' variable (defined in machine.rc) is available
  128. ! (2) you can always define and use intermediate key. For example,
  129. ! my.basedir:
  130. ! base directory for build/run/etc : choose an appropriate run
  131. ! directory on a scratch disk, or use ${my.scratch}
  132. my.basedir : ${SCRATCH}/run-TM5
  133. ! project directory:
  134. my.project.dir : ${my.basedir}/${my.project}
  135. ! run directory:
  136. my.run.dir : ${my.project.dir}/run
  137. ! ----------------------------------------
  138. ! build (See expert rcfile for more settings)
  139. ! ----------------------------------------
  140. ! basename for executable, runtime rcfile, logfiles, etc:
  141. my.basename : tm5-${my.project}-${runid}
  142. ! keys to select compiler flags; see compiler.*.rc for all values:
  143. !my.build.configure.flags : optim-none check-all
  144. my.build.configure.flags : optim-fast
  145. ! ----------------------------------------
  146. ! Start run automatically (True|False) ?
  147. ! ----------------------------------------
  148. ! Forced to 'True' by the '--submit' option to 'setup_tm5'. The job is
  149. ! started in the background, foreground or managed by a job scheduler,
  150. ! according to ${submit.to}, defined in pycasso-tm5-expert.rc. But
  151. ! this can also be overwritten at the command line.
  152. submit.auto : False
  153. ! ----------------------------------------
  154. ! User specified queue options.
  155. ! Only used for submission of a job to a queue system.
  156. ! ----------------------------------------
  157. ! Account is to specify scheduler (eg loadleveller) account.
  158. ! Leave empty for default account associated to your user name.
  159. my.queue.account : nlchekli
  160. ! Run with high memory load ?
  161. ! Value of this queue is used in machine.rc to specfiy destination
  162. ! queue or other settings. Supported values:
  163. ! normal large huge absurd
  164. ! For ecmwf/c1a, 'large' means twice the default amount of consumable
  165. ! memory, 'huge' three times, and 'absurd' four times.
  166. ! Note that this is per MPI task.
  167. ! A pure OpenMP run (meteo100x100 production) therefore needs an
  168. ! 'absurd' memory load.
  169. ! Full chemistry run with 2-4 MPI tasks needs 'large' .
  170. ! Leave empty to not have any memory specific options.
  171. my.queue.memoryload :
  172. ! ----------------------------------------
  173. ! machine specific stuff (compiler name & flags, lib paths, ... )
  174. ! ----------------------------------------
  175. !my.machine.rc : pycasso-machine-template.rc
  176. my.machine.rc : pycasso-machine-ecmwf-ecgate.rc
  177. !my.machine.rc : pycasso-machine-ecmwf-c1a.rc
  178. !my.machine.rc : pycasso-machine-jrc-clust7.rc
  179. ! include settings:
  180. #include base/${my.branch}/rc/${my.machine.rc}
  181. ! ----------------------------------------
  182. ! expert settings
  183. ! ----------------------------------------
  184. ! include expert settings to build source code
  185. #include base/${my.branch}/rc/pycasso-tm5-expert.rc
  186. !================================================================
  187. ! GRIDS & LEVELS
  188. ! ----------------------------------------
  189. ! vertical layers
  190. ! ----------------------------------------
  191. ! Met fields levels depend on the meteo class (od/ei) and year.
  192. ! But number of model levels is set here.
  193. ! Choose between: all (default), tropo25, tropo34, ml40
  194. #if "${runid}" == "glb100x100"
  195. my.levs : all
  196. #elif "${runid}" == "coarsened"
  197. my.levs : tropo25
  198. #else
  199. #error could not set my.levs for runid ${runid}
  200. #endif
  201. ! source codes with level definition:
  202. #if "${my.levs}" == "all"
  203. my.levs.sources : proj/levels/${my.eclevs}/${my.branch}
  204. #else
  205. my.levs.sources : proj/levels/${my.eclevs}/${my.branch} \
  206. proj/levels/${my.eclevs}/${my.levs}/${my.branch}
  207. #endif
  208. ! ----------------------------------------
  209. ! horizontal grid (leave region name empty to not use them)
  210. ! ----------------------------------------
  211. !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  212. #if "${runid}" == "glb100x100"
  213. !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  214. ! regions name
  215. my.region1 : glb100x100
  216. my.region2 :
  217. my.region3 :
  218. my.region4 :
  219. my.region5 :
  220. ! grid names for meteo input (allows on the flight regridding):
  221. my.region1m : ${my.region1}
  222. my.region2m :
  223. my.region3m :
  224. my.region4m :
  225. my.region5m :
  226. !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  227. #elif "${runid}" == "coarsened"
  228. !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  229. ! regions name
  230. my.region1 : glb600x400
  231. my.region2 : eur300x200
  232. my.region3 : eux100x100
  233. my.region4 : nam300x200
  234. my.region5 : nam100x100
  235. ! grid names for meteo input (allows on the flight regridding):
  236. my.region1m : ${my.region1}
  237. my.region2m : ${my.region2}
  238. my.region3m : ${my.region3}
  239. my.region4m : ${my.region4}
  240. my.region5m : ${my.region5}
  241. ! parent regions for zoom
  242. region.${my.region2}.parent : ${my.region1}
  243. region.${my.region3}.parent : ${my.region2}
  244. region.${my.region4}.parent : ${my.region1}
  245. region.${my.region5}.parent : ${my.region4}
  246. !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  247. #else
  248. #error could not set my.levs for runid ${runid}
  249. #endif
  250. !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  251. !=====================================================================!
  252. ! SOURCE CODE
  253. !
  254. ! The source code is collected from a number of different directories.
  255. ! A base code for the model could be found in the directory:
  256. !
  257. ! base/${my.branch}/src
  258. !
  259. ! where the 'my.branch' variable is set to 'trunk', or 'release/X.X'
  260. ! for a standard release, or 'branch/<your-branch>' for development
  261. ! versions.
  262. ! The files in this directory are coppied to the build directory.
  263. !
  264. ! Then, modifications to the base source could be copied from project
  265. ! directories. These could replace files from the base code.
  266. ! Common used projects:
  267. !
  268. ! o level selection of 34 layers out of 91 for tropospheric studies;
  269. ! base is 25 out of 60 :
  270. !
  271. ! proj/levels/${my.eclevs}/<branch>
  272. ! proj/levels/${my.eclevs}/tropo34/<branch>
  273. !
  274. ! o do not only run, but write something out too:
  275. !
  276. ! proj/user_output/trunk
  277. !
  278. ! The base and project directories to be used should be specified
  279. ! as a space seperated list to 'my.source.dirs' .
  280. !
  281. ! NOTES:
  282. !
  283. ! *** USE THE '-n' OPTION IF YOU CHANGED THE PROJECT LIST ! ***
  284. ! The files from the new project directories are probably older than
  285. ! the current object files, and there 'make' will not recompile.
  286. ! With the '-n' option a complete new build will be created.
  287. !
  288. ! Which branch to use ?
  289. !----------------------
  290. ! This key defines the branch of the TM5 "base" model. It sets the
  291. ! path to sources (here) but also to several other rc files (machine,
  292. ! expert, compiler, region,...).
  293. ! It can also be used to define other src directories (see
  294. ! pycasso-tm5_chembase.rc for example).
  295. ! Possible values : trunk, "a branch", or a release [must be higher
  296. ! than 3.0]
  297. !my.branch : release/4.0
  298. my.branch : trunk
  299. ! which code directories ?
  300. my.source.dirs : base/${my.branch} \
  301. ${my.levs.sources} \
  302. proj/chem/one/${my.branch}
  303. !=====================================================================!
  304. ! FLAGS
  305. ! These are C-preprocessors that you can set here.
  306. !
  307. ! You must define 3 sets of flags in the following keys:
  308. !
  309. ! my.df.define --> for scientific data format lib (for output & restart)
  310. ! my.tmm.define --> for meteo reading (format) & processing
  311. ! my.tm5.define --> everythnig else for tm5 model (processes, output, emiss,...)
  312. !
  313. !=====================================================================!
  314. ! ----------------------------------------
  315. ! ~~ Data Format (DF)
  316. ! ----------------------------------------
  317. ! To specify the scientific data libraries to use (via MDF module)
  318. !
  319. ! with_hdf4 : HDF
  320. ! with_hdf5 : HDF5
  321. ! with_hdf5_par : HDF5 with parallel features
  322. ! with_netcdf : NetCDF
  323. ! with_netcdf4 : NetCDF with NetCDF-4 features, requires 'with_hdf5'
  324. ! with_netcdf4_par : NetCDF with NetCDF-4 and parallel features, requires 'with_hdf5_par'
  325. !
  326. !! ~ only hdf4:
  327. !my.df.define : with_hdf4
  328. !
  329. ! ~ hdf4 and netcdf4 (used for restart files and cf output):
  330. #if "${par.mpi}" in ["T","True"] :
  331. my.df.define : with_hdf4 with_hdf5_par with_netcdf4_par
  332. #else
  333. my.df.define : with_hdf4 with_hdf5 with_netcdf4
  334. #endif
  335. ! ----------------------------------------
  336. ! ~~ meteo (tmm module)
  337. ! ----------------------------------------
  338. !
  339. ! ~~ meteo input
  340. !
  341. ! with_tmm_tmpp : support TMPP HDF files
  342. ! with_tmm_tm5 : support TM5 HDF or NetCDF files
  343. ! with_tmm_ecmwf : support ECMWF grib files for TMPP or TM5
  344. ! with_tmm_ncep : support NCEP cdc and gfs files
  345. ! with_tmm_msc : support data from Meteo Service Canada
  346. !
  347. ! with_udunits : UniData Units library, used for TM5 meteo in NetCDF
  348. !
  349. ! ~~ meteo production
  350. !
  351. ! with_tmm_convec_raw : compute convec from p, T, Q, etc
  352. ! with_tmm_convec_ec : compute convec from ecmwf convective fields
  353. ! with_tmm_convec_ec_gg : compute convec from ecmwf convective fields
  354. ! on original gaussian grid
  355. !
  356. ! macro's for meteo input:
  357. #if "${my.meteo.format}" == "tm5-nc"
  358. my.tmm.define : with_tmm_tm5 with_udunits
  359. #else
  360. my.tmm.define : with_tmm_tm5
  361. #endif
  362. ! ----------------------------------------
  363. ! ~~ Other TM5 flags
  364. ! ----------------------------------------
  365. !
  366. ! ~~ advection
  367. !
  368. ! slopes : use slopes advection
  369. ! secmom : use second moments advection; requires 'slopes'
  370. !
  371. ! ~~ convection levels:
  372. !
  373. ! without_lmax_conv : convective fields not on limited number of layers
  374. !
  375. ! ~~ to skip some processes:
  376. !
  377. ! without_advection
  378. ! without_boundary
  379. ! without_convection
  380. ! without_diffusion
  381. ! without_dry_deposition
  382. ! without_wet_deposition
  383. ! without_chemistry
  384. ! without_photolysis
  385. ! without_emission
  386. ! without_sedimentation (sedimentation requires emis and dry depos)
  387. !
  388. ! ~~ coupling
  389. !
  390. ! with_prism
  391. ! oasis3
  392. ! oasis4
  393. ! with_tendencies
  394. ! with_feedback
  395. !
  396. ! ~~ user output
  397. !
  398. ! with_cf_output : to use CF compliant netCDF output in
  399. ! user_output routines.
  400. ! with_retro_output :
  401. !
  402. ! ~~ miscellaneous
  403. !
  404. ! with_budgets : to produce budget output files
  405. !
  406. ! ~~ special libraries:
  407. !
  408. ! with_lapack : to use LAPACK lib for linar algebra,
  409. ! and speed up convection
  410. !
  411. ! ~~ Chemistry flags
  412. !
  413. ! with_cariolle : to use Cariolle parameterization of
  414. ! stratospheric O3
  415. ! with_gems_emis : to use GEMS emissions instead of default EDGAR
  416. ! with_GFED_8day : to use GFED2-8days BB emissions when
  417. ! using GEMS (requires with_gems_emis)
  418. ! without_nmhc_gfed : to not use VOC from GFED2
  419. ! with_m7 : to use m7 aerosols model
  420. ! with_optics : m7 flag -
  421. ! with_pm : m7 flag -
  422. ! with_online_bvoc : to use MEGAN for biogenic emissions
  423. ! with_online_nox :
  424. ! with_ch4_emis : to switch on CH4 emissions
  425. ! without_o3_nudging : to switch off O3 nudging
  426. !
  427. !=====================================================================!
  428. ! YOU SHOULD ***NOT*** USE ANY OF THOSE : !
  429. !=====================================================================!
  430. ! with_barrier : ??? !
  431. ! with_budget : should be with_budgets !
  432. ! with_go : use GO module instead !
  433. ! with_mpi : use MPI instead: #ifdef MPI !
  434. ! with_okdebug : use okdebug flag below, available thru !
  435. ! the dims module: !
  436. ! !
  437. ! use dims, only : okdebug !
  438. ! ... !
  439. ! if (okdebug) ... !
  440. ! !
  441. ! with_openmp : use _OPENMP instead in your code !
  442. ! without_wetdeposition : should be without_wet_deposition !
  443. ! with_restart : deprecated !
  444. !=====================================================================!
  445. my.tm5.define : slopes
  446. ! ----------------------------------------
  447. ! parallel
  448. ! ----------------------------------------
  449. ! compile with MPI library (T|F) ?
  450. par.mpi : F
  451. ! number of mpi tasks:
  452. ! (used by scripts to launch job; source code gets npes from mpi routines)
  453. par.ntask : 4
  454. ! enable openmp ?
  455. par.openmp : F
  456. ! threads per task:
  457. par.nthread : 1
  458. ! ----------------------------------------
  459. ! times
  460. ! ----------------------------------------
  461. ! A run from start to end is break into a series of chunk jobs. The
  462. ! length of each chunk is set by 'jobstep.length'.
  463. !
  464. ! start and end time in "yyyy-mm-dd hh:mn:ss" format:
  465. timerange.start : 2008-01-01 00:00:00
  466. timerange.end : 2008-01-04 00:00:00
  467. !
  468. ! break run after: 'n' days, or 'inf' (never), or a 'month'
  469. !jobstep.length : 1
  470. jobstep.length : inf
  471. !
  472. ! Forecast mode (F|T) ?
  473. ! If true, then specify the 'zero' forecast day yyyy-mm-dd
  474. ! (otherwise, comment or leave empty)
  475. ! NOTE: in forecast mode, start and final time should
  476. ! not differ more than 10 days from fcday0
  477. time.fc : F
  478. time.fc.day0 :
  479. ! ---------------------------------------------------------
  480. ! job chain
  481. ! ---------------------------------------------------------
  482. ! number of job step in chain;
  483. ! this is used to setup the next job in the chain,
  484. ! thus initialize to zero:
  485. jobstep : 0
  486. ! time range of this step;
  487. ! ==> filled automatically by submit scripts!
  488. jobstep.timerange.start : ${timerange.start}
  489. jobstep.timerange.end : ${timerange.end}
  490. ! output directory for restart
  491. ! ==> filled automatically by submit scripts!
  492. prev.output.dir :
  493. ! ---------------------------------------------------------
  494. ! model timestep
  495. ! ---------------------------------------------------------
  496. ! time steps are set such that at least every 'ntimestep' seconds
  497. ! is the end of a dynamic time step:
  498. ! 10800 = every 3 hour
  499. ! 5400 = every 1.5 hour
  500. ! 3600 = every 1 hour
  501. ! 1800 = every 0.5 hour
  502. time.ntimestep : 1800
  503. ! maximum dynamic timestep (sec):
  504. time.ndyn_max : 1800
  505. ! ----------------------------------------
  506. ! processes
  507. ! ----------------------------------------
  508. ! to switch certain processes off, use the 'without_' defined above
  509. !
  510. ! advection:
  511. #if "${runid}" == "glb100x100" :
  512. proces.advection.reduced : T
  513. #elif "${runid}" == "coarsened" :
  514. proces.advection.reduced : F
  515. #else
  516. #error reduced flag not set for runid ${runid}
  517. #endif
  518. ! to become OBSOLETE -- uncomment if you are still using the grid project
  519. !!#if len("${regions}") == 0 :
  520. !! file with reduced grid definition:
  521. !proces.advection.RedGrid : ${my.data.dir}/RedGrid
  522. !#endif
  523. ! wet removal (applied in convec and sources_sinks)
  524. proces.wet_removal.cp_scale : 0.5
  525. ! ----------------------------------------
  526. ! compute global budgets ?
  527. ! ----------------------------------------
  528. apply.budget.global : T
  529. ! ----------------------------------------
  530. ! initial fields
  531. ! ----------------------------------------
  532. !
  533. ! Start options:
  534. ! 1 coldstart with initial fields set to 0
  535. ! 2 coldstart with initial fields computed
  536. ! in sr trace1 in sources_sinks...
  537. ! 30 save file specified here with start.30.<region-name>
  538. ! 31 initial rm read from save file, no slopes, convert grids
  539. ! 33 restart file
  540. ! 4 coldstart with initial
  541. ! fields read from model output stored
  542. ! in mixing ratio (no slopes).
  543. ! 5 coldstart with initial
  544. ! fields read from an mmix output file
  545. ! in mixing ratio (no slopes, missing field set to zero)
  546. ! 9 user defined in module 'user_input'
  547. !
  548. istart : 2
  549. !! For istart=30, specify save files with nonstandard names:
  550. !start.30.glb600x400 : /data/old-save-files/save.hdfglb6x4
  551. !start.30.eur300x200 : /data/old-save-files/save.hdfeur3x2
  552. !start.30.eur100x100 : /data/old-save-files/save.hdfeur1x1
  553. ! For initial istart=31, specify where the save files should be found;
  554. ! optionally, specify a TM4 save file to overwrite fields if possible:
  555. !start.31.glb300x200 : ${my.datadir}/save/tm5save-aero-tropo25-glb6x4.hdf
  556. !start.31.glb300x200.TM4 : ${my.datadir}/save/TM4-ml31-save_20051101_glb3x2.hdf
  557. !! For initial istart=4, specify where the save files should be found:
  558. !start.4.glb600x400 : ${my.datadir}/save/savetm5m_glb6x4.hdf
  559. !start.4.eur300x200 : ${my.datadir}/save/savetm5m_eur3x2.hdf
  560. !start.4.eur100x100 : ${my.datadir}/save/savetm5m_eur1x1.hdf
  561. ! ----------------------------------------
  562. ! save files
  563. ! ----------------------------------------
  564. ! New save files are writen to the output directory.
  565. ! THIS IS NOT DONE ANYMORE:
  566. ! After the model run is finished, the job script will link
  567. ! the save files to this special directory:
  568. ! SO THE FOLLOWING HAS BEEN MADE OBSOLETE IN PYCASSO:
  569. !savedir : ${my.project.dir}/tm5_save
  570. !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  571. ! OBSOLETE -- TO BE DELETED
  572. ! ensure creation of directory
  573. ! add 'save' to the 'install.tasks' list :
  574. !save.install.dir : ${savedir}
  575. !
  576. ! save files should be copied from output directory
  577. ! to the save file directory;
  578. ! add 'save' to the 'store.tasks' list :
  579. !save.store.from : <output.dir>
  580. !save.store.files : save_*.hdf
  581. !save.store.arch : ${savedir}
  582. !
  583. ! NOTE : save.cmd has been retired too....
  584. !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  585. ! ----------------------------------------
  586. ! restart files
  587. ! ----------------------------------------
  588. !
  589. ! Write and read restart files (T|F) ? If empty, read as F. Does not
  590. ! apply to initial conditions (see "initial fields" above).
  591. ! Recommendation: set to T so subsequent jobs use restart files.
  592. ! Set to F for subsequent jobs to use "save files" instead.
  593. !
  594. ! Ensure to link with the NetCDF4 library by defining the macro's:
  595. ! with_netcdf4 with_hdf5 # serial run
  596. ! with_netcdf4_par with_hdf5_par # MPI parallel run
  597. !
  598. restart.write : T
  599. ! write extra restart files (T|F) ?
  600. ! write at specified hour (00,12,..) plus every dhour (24,06,...)
  601. restart.write.extra : F
  602. restart.write.extra.hour : 00
  603. restart.write.extra.dhour : 24
  604. ! where to write restart files:
  605. restart.write.dir : ${my.project.dir}/restart
  606. ! ensure creation of directory;
  607. ! the key 'restart' should remain included in the 'install.tasks' list:
  608. restart.install.dir : ${restart.write.dir}
  609. ! *
  610. ! where to search for restart files for istart=33 :
  611. restart.read.dir : ${restart.write.dir}
  612. ! ----------------------------------------
  613. ! meteo settings
  614. ! ----------------------------------------
  615. ! Time ranges of different meteo archives:
  616. !
  617. ! * od L60 1999-10-12 00:00:00 2006-02-01 00:00:00
  618. ! * od L91 2005-10-01 00:00:00 now
  619. ! * ei 1989-01-01 00:00:00 now
  620. !
  621. ! Operational Data (od) or ERA Interim (ei) ?
  622. my.meteo.class : ei
  623. ! o TMPP produced meteo:
  624. !include base/${my.branch}/rc/pycasso-meteo.tmpp.rc
  625. ! o TM5 produced meteo:
  626. !
  627. ! what kind of meteo archive ?
  628. !my.meteo.resol : glb100x100 ! original archive with all ECMWF layers and 1.00x1.00 grid
  629. my.meteo.resol : coarsened ! data already regridded to ${my.levs} and regions resolution
  630. !
  631. ! file format: "tm5-nc" for netcdf, "tm5-hdf" for good old hdf:
  632. !my.meteo.format : tm5-hdf
  633. my.meteo.format : tm5-nc
  634. ! ~ load meteo settings:
  635. !#include base/${my.branch}/rc/pycasso-meteo-tm5.rc
  636. ! ~ load meteo settings to convert from hdf to netcdf; also:
  637. ! - add "tmm.output" to "install.tasks" to create output directory;
  638. ! - add call to "tm5-tmm-store" script to "output.user.scripts"
  639. ! to have the new files stored in the archive;
  640. ! - use a timestep of 1800 sec to avoid errors about problematic intervals;
  641. ! - select single dummy tracer "proj/chem/one/" to speedup
  642. #include base/${my.branch}/rc/pycasso-meteo-tm5-convert-hdf-to-nc.rc
  643. ! switch: call meteo setup script (T|F) ?
  644. !my.tmm.setup.apply : F
  645. my.tmm.setup.apply : T
  646. ! ----------------------------------------
  647. ! coupling
  648. ! ----------------------------------------
  649. !include base/trunk/rc/prism.settings.rc
  650. ! ----------------------------------------
  651. ! input
  652. ! ----------------------------------------
  653. ! location of standard input files:
  654. inputdir : ${my.data.dir}/input/glb1x1
  655. ! OBSOLETE -- add input.sc to input.user.scripts below
  656. ! ! run the 'input.sc' script (T|F) ?
  657. ! input.link : F
  658. ! locations of input files:
  659. !include base/${my.branch}/rc/input.base.rc
  660. ! for TIPP input:
  661. !include base/${my.branch}/rc/tipp.settings.rc
  662. ! for chemistry versions:
  663. !include base/${my.branch}/rc/chem.input.rc
  664. ! ----------------------------------------
  665. ! standard output
  666. ! ----------------------------------------
  667. !
  668. ! The 'outputmode' determines what is done with standard output.
  669. ! SCREEN : not redirected, but written to screen;
  670. ! in case of background or submitted jobs,
  671. ! it is therefore added to 'jb.<pid>.out' in launch dir.
  672. ! DEFAULT : redirected to default output file '${runid}.out' in run dir
  673. ! <filename> : your favorite file name
  674. !
  675. !outputmode : benchmark.out
  676. ! print debug info (T|F) ?
  677. okdebug : F
  678. !
  679. ! message formatting
  680. !
  681. ! print messages from all processors (T|F) ?
  682. ! default is root only
  683. go.print.all : F
  684. ! print processor id prompt (T|F) ?
  685. ! default is only if npes>1
  686. go.print.prompt.pe : T
  687. ! print label at begin and end of every routine ?
  688. go.print.trace : F
  689. ! print messages to file (T|F) ?
  690. ! provide first part of file name, full names will be:
  691. ! <rundir>/<base>.0 (proces 0)
  692. ! <base>.1 (proces 1)
  693. ! :
  694. go.print.file : F
  695. go.print.file.base : ctm.tm5
  696. !=====================================================================!
  697. ! output
  698. !=====================================================================!
  699. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  700. ! Default Output Directory
  701. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  702. output.dir : ${output.dir.base}
  703. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  704. ! Alternative Output Directory
  705. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  706. ! The tm5 setup_rcfile can overwrite the default output.dir with a
  707. ! runtime-dependent value, defined as a series of subdirectories in a
  708. ! top dir. For an example, to get:
  709. !
  710. ! top-output-dir/sub1/sub2
  711. !
  712. ! you would set those keys:
  713. !
  714. ! output.dir.base : top-output-dir
  715. ! output.dir.extensions : sub1 sub2
  716. !
  717. ! The dependence on runtime is done by using <> keys (they are
  718. ! recognized by the python script), or any rc keys from this file,
  719. ! in the extensions. Are available:
  720. !
  721. ! <jobstep> : to use the jobstep number
  722. ! <timerange> : for the timerange as yyyymmdd_hhmnss__yyyymmdd_hhmnss
  723. !
  724. ! This alternative output.dir is ignored if "extensions" is empty
  725. output.dir.base : ${my.project.dir}/output
  726. output.dir.extensions :
  727. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  728. ! Output Sub-Directory (who uses that?)
  729. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  730. ! A set of subdir can be created below "output.dir". Use "types" to
  731. ! list their keynames, and for each of these keynames, give the subdir
  732. ! name, and a flag to switch on/off creation. Example, for two subdir:
  733. !
  734. ! output.types : sub1 sub2
  735. ! sub1.output : T
  736. ! sub1.output.subdir : name1
  737. ! sub2.output : T
  738. ! sub2.output.subdir : name2
  739. output.types :
  740. ! OBSOLETE -- all instances of outputdir should be
  741. ! replaced with output.dir
  742. ! for backwards compatibility ...
  743. ! outputdir : ${output.dir}
  744. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  745. ! write grid definition(s) to netcdf files
  746. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  747. settings.output : T
  748. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  749. ! station output
  750. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  751. output.station : F
  752. !!inputdir.station : ${datadir}/stationfiles/
  753. !inputdir.station : ${my.data.dir}/output/ground/
  754. !
  755. !input.station.filename : station_test.list
  756. !input.station.filename2 :
  757. !
  758. !input.station.fileformat : 1
  759. !
  760. !station.speclist : TEST1 TEST2 TEST3 TEST4 TEST5
  761. !
  762. !output.station.filename : station.hdf
  763. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  764. ! flight tracks
  765. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  766. output.flight : F
  767. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  768. ! mixing ratio's
  769. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  770. output.mix : F
  771. output.mix.dhour : 6
  772. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  773. ! mean mixing ratio's
  774. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  775. output.mmix : F
  776. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  777. ! timing
  778. ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  779. ! write timing profiles ?
  780. timing.output : F
  781. ! optionally define a subdir of output.dir :
  782. timing.output.subdir :
  783. ! ---------------------------------------------------------
  784. ! Pre-processing I - Installation of input files ("install" keys)
  785. ! ---------------------------------------------------------
  786. !
  787. ! Specify space seperated list with install tasks:
  788. !
  789. ! install.tasks : obs diffusion
  790. !
  791. ! For each task, an number of specific settings should be defined in
  792. ! one rc file.
  793. !
  794. ! To have a number of files copied from an archive into a local directory,
  795. ! specify a space seperated list with file names:
  796. !
  797. ! <task>.install.files : krep.dat zooi.tar morezooi.tar
  798. ! <task>.install.dir : /local/data/
  799. ! <task>.install.arch : ecfs:/tmx/TM/data
  800. !
  801. ! If a file ends with '.tar' it is unpacked automatically.
  802. !
  803. ! The archive description should be understandible by the 'gss' scripts:
  804. !
  805. ! /archive/data/
  806. ! ecfs:/tmx/TM/data # ECMWF tape archive when running on ECMWF computer
  807. ! ec:ecfs[tmx]:TM/data # idem from a remote computer using EcAccess tools
  808. ! mos:/fa/ks/TM/data # KNMI tape archive
  809. !
  810. ! If an alternative file is available in case of a primary file is
  811. ! missing, use the 'optional' list instead of next to the 'files' list:
  812. !
  813. ! <task>.install.optional : eventually.tar
  814. !
  815. ! On some systems only a temporary scratch disk is present at run time.
  816. ! The user should ensure that all input data is present on this local disk.
  817. ! A useful UNIX command for this is 'rsync', which syncronizes the content
  818. ! of a local directory with another directory. Use the following specification
  819. ! for a list of files or directories that need to be present in the 'dir'
  820. ! and should be synchronized with the version present in 'arch' :
  821. !
  822. ! <task>.install.rsync : TMtree
  823. !
  824. ! The installtion performs a time loop over the 'jobstep.timerange' ;
  825. ! the 'dir', 'arch', 'files', 'optional', and 'rsync' values could then include
  826. ! special keys '<yyyy>', '<mm>', or '<dd>'
  827. ! that are replaced by the year, month, and day values respectively:
  828. !
  829. ! <task>.install.files : zooi_<yyyy><mm>.tar
  830. !
  831. ! Default install tasks:
  832. ! o machine specific installation only
  833. ! o create destination of restart files
  834. !install.tasks : ${my.install.tasks} restart
  835. install.tasks : ${my.install.tasks} restart tmm.output
  836. ! ---------------------------------------------------------
  837. ! Pre-processing II - User scripts to setup run ("install" keys)
  838. ! ---------------------------------------------------------
  839. !
  840. ! Provide a ';' seperated list with script commands to be exectuted:
  841. !
  842. ! input.user.scripts : mypath/myscript ; important.sc
  843. !
  844. ! The path should be either absolute or relative to the run directory.
  845. ! For scripts in the 'bin' subdirectories of the source, use <bindir>:
  846. !
  847. ! input.user.scripts : <bindir>/input.sc
  848. !
  849. ! Arguments/options can use <rcfile>, which is replaced by
  850. ! the name of the runtime rcfile. For example, to install meteo files
  851. ! for all days of the run:
  852. !
  853. ! input.user.scripts : <bindir>/tm5-tmm-setup -v <rcfile>
  854. !
  855. input.user.scripts : <bindir>/tm5-tmm-setup <rcfile>
  856. !! for the old, input.sc :
  857. !input.user.scripts : <bindir>/input.sc <rcfile>
  858. ! ---------------------------------------------------------
  859. ! Post-processing I - Archiving output files ("store" keys)
  860. ! ---------------------------------------------------------
  861. !
  862. ! Settings to store output files in archive.
  863. !
  864. ! Specify space seperated list with store tasks:
  865. !
  866. ! store.tasks : task1 task2
  867. !
  868. ! For each task, an number of task specific settings is defined in the
  869. ! rest of this file; some values are initialized below using a dummy
  870. ! task 'default' :
  871. !
  872. ! ! from where ? leave empty for run directory, use '<output.dir>' for output directory:
  873. ! <task>.store.from : <output.dir>
  874. !
  875. ! ! copy some extra files to output subdirectory for storage:
  876. ! <task>.store.copy : station-list.txt
  877. ! <task>.store.copy.to : STATION/
  878. !
  879. ! ! name(s) of target file(s) for storage;
  880. ! ! if only one file is specified with extension '.tar'
  881. ! ! then an archive file is created. Default is a *.tar defined by
  882. ! ! sources.store.files in pycasso-tm5-expert.rc file.
  883. ! <task>.store.files : all.tar
  884. !
  885. ! ! if a tarfile has to be created, specify which files to archive
  886. ! ! through a filter:
  887. ! <task>.store.tarfilter : STATION/*.hdf STATION/*.txt
  888. !
  889. ! ! zip files before archiving ? empty, or a zipper command (gzip, bzip2, compress, ...) :
  890. ! default.zipper : gzip
  891. !
  892. ! ! archive into one or more destinations (space seperated list):
  893. ! default.store.arch : ecfs:/xxx/MAIN_ARCHIVE/
  894. ! <task>.store.arch : ecfs:/xxx/SPECIAL_OUTPUT/ /extra/backup/archive/
  895. !
  896. ! ! If the 'arch' does not contain any ':' characters it is assumed to be
  897. ! ! a local directory. In this case, a 'cp' command is used to archive
  898. ! ! the files rather than the 'gss' script, and the files might therefore
  899. ! ! include filters:
  900. ! <task>.store.files : save*.hdf
  901. ! <task>.store.arch : ${SCRATCH}/savefiles/
  902. !
  903. ! ! store in archive even if already present ?
  904. ! ! by default probably True, but might not be necessary for some precomputed data:
  905. ! default.store.renew : True
  906. ! correlations.store.renew : False
  907. !
  908. ! ! extra shell command to be called at the end of the task;
  909. ! ! for example to cleanup or do other important stuff:
  910. ! <task>.store.extra.command : rm -f STATION/*.hdf STATION/*.txt
  911. !
  912. ! Storage might be subject to a special condition, e.g. end of iteration in a 4D-var run.
  913. ! Specifiy a condition line that could be evaluated by python.
  914. ! If not specified, the default condition is True .
  915. ! Keys '%{..}' in the condition line are expanded with the values in the restart file
  916. ! if present; this file is written by the main program and has the same name as
  917. ! the rcfile but with extension '.rs' instead of '.rc' .
  918. ! Note the '%' instead of '$', otherwise the line is evaluated too early!
  919. !
  920. ! store.condition : %{m1qn3.finished} == 1
  921. !
  922. ! only store for some condition ?
  923. store.condition : True
  924. ! space seperated list with store tasks:
  925. store.tasks : sources
  926. ! zipper: empty, or a zipper command (gzip, bzip2, compress, ...) :
  927. ! HERE: hdf files already have internal compression, so do not waste time on this ...
  928. default.store.zipper :
  929. ! default archive location(s):
  930. default.store.arch : ${my.project.dir}/ARCHIVE
  931. ! renew files ?
  932. default.store.renew : True
  933. ! ---------------------------------------------------------
  934. ! Post-processing II - Touch files
  935. ! ---------------------------------------------------------
  936. ! To avoid that output files are removed from scratch
  937. ! during long, long runs.
  938. ! Enable this flag to touch recursively the access time
  939. ! of all files in 'output.dir' .
  940. ! ---------------------------------------------------------
  941. ! touch files to prevent removal (True|False) ?
  942. output.touch : False
  943. ! ---------------------------------------------------------
  944. ! Post-processing III - User scripts
  945. ! ---------------------------------------------------------
  946. ! For more elaborate post-processing, you can write your own
  947. ! script. Then add the full command (including options and arguments)
  948. ! to the output.user.script key, so it will automatically be executed:
  949. !
  950. ! output.user.scripts : <bindir>/myscript <rcfile>
  951. !
  952. ! More than one command can be specified: use ';' to separate them.
  953. ! The path should be either absolute or relative to the run directory.
  954. ! For scripts in any of the 'bin' subdirectories of the source, use
  955. ! <bindir>. Arguments/options can use <rcfile>, which is replaced by
  956. ! the name of the runtime rcfile.
  957. !
  958. ! Conditional call is possible. Just specifiy a condition line
  959. ! that can be evaluated with python eval() function.
  960. ! Set with the `output.user.scripts.condition` key,
  961. ! and default to True if not set or empty.
  962. ! The same condition apply to all listed scripts.
  963. ! ---------------------------------------------------------
  964. ! condition line:
  965. output.user.scripts.condition : True
  966. ! list with scripts to be called:
  967. output.user.scripts : <bindir>/tm5-tmm-store <rcfile>
  968. ! -- Will output.sc become obsolete, and superseded by the "store"
  969. ! keys above?? --
  970. ! Anyway, if one of the user script is the existing output.sc, you
  971. ! must specify the correct arguments:
  972. !
  973. ! output.sc <rcfile> <output.dir> ${my.project.dir}/build/src
  974. !
  975. ! and: one or more destination directories (gss descriptions),
  976. ! if all files must be first compressed using gzip (T|F), and
  977. ! if outpudir is cleaned after storing is completed (T|F).
  978. !output.store.destdirs : ecfs:/nl5/TM5/output
  979. !output.store.compress : T
  980. !output.store.clean : T
  981. ! ---------------------------------------------------------
  982. ! DIADEM postprocessing
  983. ! ---------------------------------------------------------
  984. !
  985. ! To run the postprocessor, uncomment the include line and start:
  986. !
  987. ! ./tools/diadem/py/diadem <thisfile.rc>
  988. !
  989. ! include settings:
  990. !#include tools/diadem/rc/diadem.rc