======== FAQ for The Penguin Tyrant ======== ======== I. VASP Build ======== Don't do it. Just don't do it. OK. If you have to do it, may your god(s) have mercy on your soul. Try to do this: * Make sure you load the modules: ''%%intel/compiler/64/***%%'', ''%%intel/mkl/64/***%%'', and ''%%intel-mpi/64/***%%''. * Follow the instructions from [[https://software.intel.com/en-us/articles/building-vasp-with-intel-mkl-and-intel-compilers | here]]. * Use the ''%%Makefile%%'' in ''%%/cm/shared/apps/VASP/src/vasp.5.3%%'' as a guide. ------------------------- ======== II. Building Modules ======== Modules are pretty easy when you get the hang of them. Basically all these ''%%$%%'' can be set in them, so that the user doesn't have to have big ''%%.bashrc%%'' entries. \\ As a starting point, look into the existing modulefiles at ''%%/cm/shared/modulefiles%%''. Whatever is listed here get read out on a ''%%module avail%%'' call. \\ To write your own modules, take an existing modulefile (for all that //tcl// messaging at the beginning), and modify it according to [[http://modules.sourceforge.net/man/modulefile.html | this handy information]]. A workable template goes something like: \\ #%Module -*- tcl -*- ## ## dot modulefile ## proc ModulesHelp { } { puts stderr "\tTell the user some help information here." puts stderr "\tLike maybe list what the module does." } module-whatis "This gives the output from [user@host]$ module whatis ****" module-whatis "It can also be multilined." ### Here, list modules that conflict (e.g. openmpi vs. intel-mpi), modules to pre-load, and modules that are prerequired. conflict **** module load **** prereq **** ### Here you can set variables, append and prepend paths. set app_version setenv app_ROOT /cm/shared/apps/ append-path PATH /cm/shared/apps/.../ -------------------------