====== Compilers ====== Various compilers are available on the GNU/Linux workstations. The system-wide default is always the GNU Compiler collection (gcc, g++, gfortran). Other compilers, and other versions of the compilers, are available through environment modules (See [[linux:sfinx]] for details). Run module avail to get a list of available modules. This list may include: gcc/4.8.2 gcc/4.9.0 gcc/4.9.2 gcc/sys(default) intel/10.1(default) intel/8.1 intel/9.1 llvm/3.3(default) In order to load a specific compiler environment (e.g. intel/10.1), use module load intel/10.1 or, since 10.1 is marked as the default for the ''intel'' module: module load intel ====== MPI ====== In the same way, MPI is available on all systems. This of course includes the MPI compilers. The default version is currently ''MPICH'', but among the available modules, you will see mpi/mpich-x86_64 mpi/openmpi-x86_64 Here, since one version is already loadced, you will need to use the ''module switch'' command to switch to the other version (unload MPICH, load OpenMPI): module switch mpi/openmpi-x86_64 Of course, if you always use a specific version, you can add this command to your login environment (e.g. ''.bashrc'' or ''.cshrc''). Note: if you need to combine MPI with python, you may want to check out the section in [[linux:sfinx_modules|Sfinx modules]] about the additional module files. The default MPI modules set up the PYTHONPATH for the system default version of python (currently 2.7); for use with e.g. python 3.4, load the appropriate module. ====== Fortran 77 ====== In most cases, ''gfortran'' can be made to compile programs written in Fortran 77. If all else fails, the latest version of ''g77'', the previous GNU fortran compiler, can be installed on your system. However, this compiler is not always able to link with newer libraries, and there is no guarantee it will be maintained for much longer. So it is usually better to spend some time figuring out how to use the current compilers to compile your code, in stead of depending on an obsolete compiler.