machine-platform.rc.tmpl 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. !===============================================
  2. ! compiler information
  3. !===============================================
  4. !
  5. ! All the keys in this section should be filled here or put in a compiler rc
  6. ! file. See the other machine rc files for examples.
  7. !
  8. ! So, either include a file:
  9. #include rc/compiler-<name>-<version>.rc
  10. ! *OR* set all these keys:
  11. ! Compiler for Fortran 90, F77 (fixed form), openMP, MPI wrappers. It is
  12. ! possible that the same compiler is used for all.
  13. compiler.fc :
  14. compiler.f77 :
  15. compiler.fc.openmp :
  16. mpi.compiler.fc :
  17. mpi.compiler.fc.openmp :
  18. ! flag to retrieve the version of the compiler
  19. compiler.getversion_flag :
  20. ! *** For all the remaining flags, you must specify one for compilation and
  21. ! *** one for linking.
  22. ! defaults flags are always used, regardless of optimization and runtime checks
  23. compiler.flags.default.fflags :
  24. compiler.flags.default.ldflags :
  25. ! to enforce all real to be double precision
  26. compiler.flags.real8.fflags :
  27. compiler.flags.real8.ldflags :
  28. ! to use MPI
  29. compiler.flags.mpi.fflags :
  30. compiler.flags.mpi.ldflags :
  31. ! to use openMP
  32. compiler.flags.openmp.fflags :
  33. compiler.flags.openmp.ldflags :
  34. ! ** the pycasso script expects four levels of optimization that you define
  35. ! ** here. You have to choose one of them in your main rc file.
  36. compiler.flags.optim-none.fflags :
  37. compiler.flags.optim-none.ldflags :
  38. compiler.flags.optim-strict.fflags :
  39. compiler.flags.optim-strict.ldflags :
  40. compiler.flags.optim-fast.fflags :
  41. compiler.flags.optim-fast.ldflags :
  42. compiler.flags.optim-vfast.fflags :
  43. compiler.flags.optim-vfast.ldflags :
  44. ! ** you can also define two sets of runtime check flags, that you can add in
  45. ! ** your main rc file when developing
  46. compiler.flags.check-all.fflags :
  47. compiler.flags.check-all.ldflags :
  48. compiler.flags.debug.fflags :
  49. compiler.flags.debug.ldflags :
  50. !===============================================
  51. ! libraries for HDF4 support (mandatory)
  52. !===============================================
  53. ! Z library (used for compression in HDF)
  54. compiler.lib.z.fflags :
  55. compiler.lib.z.libs :
  56. ! JPEG library (used for compression in HDF)
  57. JPEG_HOME :
  58. compiler.lib.jpeg.fflags :
  59. compiler.lib.jpeg.libs :
  60. ! SZ library (used for compression in HDF)
  61. SZIP_HOME :
  62. compiler.lib.sz.fflags :
  63. compiler.lib.sz.libs :
  64. ! HDF4 library (without netcdf interface)
  65. HDF4_HOME :
  66. compiler.lib.hdf4.fflags :
  67. compiler.lib.hdf4.libs :
  68. !===============================================
  69. ! libraries for NetCDF support (mandatory)
  70. !===============================================
  71. !
  72. ! Use one netcdf library, optionaly with hdf5 if needed. To do, so add the
  73. ! corresponding 'with_*' to the 'my.df.define' key in your main rc file.
  74. ! NetCDF3 library (with_netcdf)
  75. NETCDF_HOME :
  76. compiler.lib.netcdf.fflags :
  77. compiler.lib.netcdf.libs :
  78. ! NetCDF4 library (with_netdf4)
  79. NETCDF4_HOME :
  80. compiler.lib.netcdf4.fflags :
  81. compiler.lib.netcdf4.libs :
  82. ! NetCDF4 library with parallel IO features (with_netcdf4_par)
  83. NETCDF4_MPI_HOME :
  84. compiler.lib.netcdf4_par.fflags :
  85. compiler.lib.netcdf4_par.libs :
  86. ! * since NetCDF4 is build on top of HDF5, you may have to link/include HDF5
  87. ! * library when building the code:
  88. ! HDF5 library (with_hdf5)
  89. HDF5_HOME :
  90. compiler.lib.hdf5.fflags :
  91. compiler.lib.hdf5.libs :
  92. ! HDF5 library with parallel features (with_hdf5_par)
  93. HDF5_MPI_HOME :
  94. compiler.lib.hdf5_par.fflags :
  95. compiler.lib.hdf5_par.libs :
  96. !===============================================
  97. ! Other libraries
  98. !===============================================
  99. ! MPI library
  100. MPI_HOME :
  101. compiler.lib.mpi.fflags :
  102. compiler.lib.mpi.libs :
  103. ! GRIB-API library (optional). It is needed only if you read meteo files from
  104. ! the ECMWF MARS system, where they are in grib format.
  105. compiler.lib.grib_api.fflags :
  106. compiler.lib.grib_api.libs :
  107. ! a UDUNITS library is optional. It can be used if you are reading meteo files
  108. ! in netCDF format to check that units conversion are correct. It is known to
  109. ! slow down the code significantly. The two main version are supported.
  110. ! Udunits v1.x library (add with_udunits1 to my.tmm.define in your main rc file)
  111. UDUNITS_HOME :
  112. compiler.lib.udunits1.fflags :
  113. compiler.lib.udunits1.libs :
  114. ! Udunits v2.x library (add with_udunits2 to my.tmm.define in your main rc file)
  115. compiler.lib.udunits2.fflags :
  116. compiler.lib.udunits2.libs :
  117. ! LAPACK library (optional). If available, add the with_lapack to
  118. ! my.tm5.define in your main rc file. see User Manual for further details.
  119. LAPACK_HOME :
  120. compiler.lib.lapack.fflags :
  121. compiler.lib.lapack.libs :
  122. !===============================================================
  123. ! SETTINGS FOR BATCH SCHEDULER (qsub,bsub,loadleveler,slurm,pbs)
  124. !===============================================================
  125. !
  126. ! Settings in this section can be in a dedicated rc file, or just left here. So,
  127. ! either include such a file:
  128. #include rc/queue-<name>-<institute>.rc
  129. ! *OR* fill the following keys:
  130. queue : <name-of-your-job-manager>
  131. ! arguments passed directly to submit command
  132. queue.pbs.submit.options :
  133. ! number of MPI tasks (do not change)
  134. my.queue.ntask : ${par.ntask}
  135. ! number of threads (always 1, openMP not supported in TM5-MP)
  136. my.queue.nthread : 1
  137. ! Queue options are set below, and managed by the 'bin/submit_tm5_tools.py'
  138. ! script. There can be as many as needed.
  139. !
  140. ! Some special values can be used:
  141. ! if set to <none>, the option is skipped
  142. ! if set to <auto>, it is automatically set in the python script
  143. ! if empty, it is used as 'option without argument'.
  144. !
  145. ! But check that they are implemented for you job manager. See
  146. ! bin/submit_tm5_tools.py/QueueOptions_<scheduler-name> for details.
  147. !
  148. ! If needed, user account is available from the main rc file as ${my.queue.account}
  149. !-----------------------------------------------
  150. ! ** queue options with same value for ALL steps
  151. !-----------------------------------------------
  152. ! space seperated list
  153. queue.<scheduler-name>.options.all : <option1> <option2> <option3>...
  154. ! and their values
  155. queue.<scheduler-name>.option.all.<option1> :
  156. queue.<scheduler-name>.option.all.<option2> :
  157. queue.<scheduler-name>.option.all.<option3> :
  158. !------------------------------------------------
  159. ! ** queue options with different values per step
  160. !------------------------------------------------
  161. ! list options per step:
  162. queue.<scheduler-name>.options.init : <ini_option1> <ini_option2> <ini_option3>...
  163. queue.<scheduler-name>.options.run : <run_option1> <run_option2>...
  164. queue.<scheduler-name>.options.done : <don_option1> <don_option2>...
  165. ! ~~~~~ step init options values
  166. queue.<scheduler-name>.option.init.<ini_option1> :
  167. queue.<scheduler-name>.option.init.<ini_option2> :
  168. queue.<scheduler-name>.option.init.<ini_option3> :
  169. ! ~~~~~ step run options values
  170. queue.<scheduler-name>.option.run.<run_option1> :
  171. queue.<scheduler-name>.option.run.<run_option2> :
  172. ! ~~~~~ step done options values
  173. queue.<scheduler-name>.option.done.<don_option1> :
  174. queue.<scheduler-name>.option.done.<don_option2> :
  175. !===============================================
  176. ! make
  177. !===============================================
  178. !
  179. ! Specify the make command. The setup script will insert the 'build.jobs'
  180. ! specified in the expert.rc (probably 8). But can be overwritten at the
  181. ! command line (argument to 'setup_tm5' script)
  182. !
  183. maker : gmake -j %{build.jobs}
  184. !JOB-COMPILE ! If you want to submit the compilation to a compute node, uncomment and set
  185. !JOB-COMPILE ! the necessary keys. See user manual for the further details.
  186. !JOB-COMPILE !
  187. !JOB-COMPILE ! - if F (default), pycasso calls the ${maker} command in the foreground.
  188. !JOB-COMPILE ! - if T, then compilation is submitted according to "submit.to" key (default
  189. !JOB-COMPILE ! of which is set in expert.rc, and can be overwritten at the CLI): either "queue", or foreground.
  190. !JOB-COMPILE !
  191. !JOB-COMPILE ! "my.queue.make" should be set in the main rc file, so the user can switch it on/off from there.
  192. !JOB-COMPILE !
  193. !JOB-COMPILE build.make.submit : ${my.queue.make}
  194. !JOB-COMPILE
  195. !JOB-COMPILE ! list of options for the job manager, and their value
  196. !JOB-COMPILE queue.<scheduler-name>.options.build : option1 option2 option3...
  197. !JOB-COMPILE queue.<scheduler-name>.option.build.<option1> :
  198. !JOB-COMPILE queue.<scheduler-name>.option.build.<option2> :
  199. !JOB-COMPILE queue.<scheduler-name>.option.build.<option3> :
  200. !===============================================
  201. ! MPI runner
  202. !===============================================
  203. !
  204. ! command for running MPI parallel programs
  205. mpirun.command :
  206. mpirun.args :
  207. ! name of command file; if empty, then executable and arguments are added to the command line
  208. mpirun.cmdfile :
  209. ! name of host file
  210. mpirun.hostfile :
  211. !===============================================
  212. ! debugger
  213. !===============================================
  214. !
  215. ! type: totalview | idb | kdbg
  216. debugger : kdbg
  217. ! command for debugger
  218. ! o KDE debugger around gdb (Linux systems using gfortran)
  219. debugger.command : kdbg
  220. ! o Intel debugger (for systems with Intel compiler)
  221. !debugger.command : idb -gui
  222. ! o TotalView (IBM)
  223. !debugger.command : totalview -searchPath=${build.sourcedir}
  224. !===============================================
  225. ! model data
  226. !===============================================
  227. ! the user scratch directory
  228. my.scratch : ${SCRATCH}
  229. ! *Permanent* archives to search for meteo files
  230. ! (Note that the location of the meteo files at runtime is set in the main rc)
  231. my.meteo.search :
  232. ! base path to other input data files distributed with the model
  233. my.data.dir :
  234. ! extra install tasks
  235. my.install.tasks :