This is an old revision of the document!
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:
intel/compiler/64/***
, intel/mkl/64/***
, and intel-mpi/64/***
. Makefile
in /cm/shared/apps/VASP/src/vasp.5.3
as a guide.
Modules are pretty easy when you get the hang of them. Basically all these $<VARIABLES>
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 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 <some number> setenv app_ROOT /cm/shared/apps/<app dir> append-path PATH /cm/shared/apps/.../<some path>