Use of Modules for Accessing Multiple Versions of Software

BC Project: FY06-17
Date of Policy: 20 Mar 2008
Last Updated: 02 Apr 2012

All participating centers are required to install and use the MODULES package to support multiple versions of compilers, associated libraries, and shared application packages (Abaqus, Accelyrs, ANSYS, CFD++, Cobalt, Ensight, ACFD, GASP, GAUSSIAN, LS-Dyna, MATLAB, and TotalView) on the unclassified resources. Compliance is determined by centers ensuring that the module command is in the user's path and that system modulefiles are in place for the shared applications supported by each center.

For information on standard module naming convention and directory structure, please see BC policy FY11-04, Common Modules Environment.

In cases where the modulefiles for applications depend on other modulefiles (an application may require compiler and library modulefiles to be loaded), or a conflict exists with a currently loaded modulefile (some modulefiles cannot coexist with other modulefiles), these dependencies and/or conflicts should be checked. A reasonable default modulefile may be loaded if the dependency is not met, a modulefile may by unloaded if a conflict exists, or a message may be displayed to the user indicating the dependencies and/or conflicts. In the event that loading a modulefile changes the module environment (by loading, unloading, or swapping modulefiles), the modulefile making these changes MUST inform the user of all changes via a terminal notification (a simple echo will generally accomplish this).

An additional modulefile, OPT-OUT, at AFRL and MHPCC will remove the common-link directories from the associated *PATH environment variables. Users will then need to load individual modulefiles to add the application specific directories to the *PATH environment variables.