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>