- 1.1 What Fortran compiler do I need?
- 1.2 Why is configure saying that I have no fortran compiler?
- 1.3 Why is configure saying that my fortran compiler doesn’t work?
- 1.4 configure doesn’t recognize my system, what should I do?
- 1.5 Why doesn’t configure recognize that I have a parallel machine?
- 1.6 Compilation fails with internal error, what should I do?
- 1.7 Compilation fails at linking stage: symbol … not found
- 1.8 Compilation works but the executable doesn’t start because shared libraries … not found
Most installation problems have obvious origins and can be solved by reading error messages and acting accordingly. Sometimes the reason for a failure is less obvious. In such a case, you should look into Sec.2, Installation, of the user guide, and into the archive of the users’ mailing list to see if a similar problem (with solution) is described. If you get really weird error messages during installation, look for them with your preferred Internet search engine (such as Google): very often you will find an explanation and a workaround.
Also please have a look at the following page by Glenn Lockwood, containing a lot of useful info.
1.1 WHAT FORTRAN COMPILER DO I NEED?
Any non-buggy, or not-too-buggy, fortran-95 compiler implementing the F2008 standard should work, with minimal or no changes to the code. configure may not be able to recognize your system, though.
1.2 WHY IS CONFIGURE SAYING THAT I HAVE NO FORTRAN COMPILER?
Because you haven’t one (really!); or maybe you have one, but it is not in your execution path; or maybe it has been given an unusual name by your system manager. Install a compiler if you have none; if you have one, fix your execution path, or define an alias if it has a strange name. Do not pass an executable with the path as an argument to configure, as in e.g. ./configure F90=/some/strange/f95: it doesn’t work.
1.3 WHY IS CONFIGURE SAYING THAT MY FORTRAN COMPILER DOESN’T WORK?
Because it doesn’t work (really!); more exactly, configure has tried to compile a small test program and hasn’t succeeded. Your compiler may not be properly installed. For Intel compiler on PC’s: you may have forgotten to run the required initialization script for the compiler.
1.4 CONFIGURE DOESN’T RECOGNIZE MY SYSTEM, WHAT SHOULD I DO?
If compilation/linking works, never mind; otherwise, try to supply a suitable supported architecture, or/and manually edit the make.inc file. Detailed instructions in Sec.2 of the user guide.
1.5 WHY DOESN’T CONFIGURE RECOGNIZE THAT I HAVE A PARALLEL MACHINE?
You need a properly configured complete parallel environment. If any piece is missing, configure will revert to serial compilation. Detailed instructions in Sec.2 of the user guide.
1.6 COMPILATION FAILS WITH “INTERNAL ERROR”, WHAT SHOULD I DO?
Any message during compilation saying something like internal compiler error and the like means that your compiler is buggy. You should report the problem to the compiler maker – especially if you paid real money for it. Sometimes reducing the optimization level, or rearranging the code in a strategic place, will make the problem disappear. In other cases you will need to move to a different compiler, or to a less buggy version (or buggy in a different way that doesn’t bug you) of the same compiler.
1.7 COMPILATION FAILS AT LINKING STAGE: “SYMBOL … NOT FOUND”
If the missing symbols (i.e. routines that are called but not found) are in the code itself: verify whether the compilation of the file containing them failed. It is easy to oversee an error message among the flood of compilation messages, especially when using parallel make.
If the missing symbols are in external libraries (BLAS, LAPACK, FFT, MPI libraries): there is a name mismatch between what the compiler expects and what the library provides. See Sec.2 of the user guide.
If the missing symbols aren’t found anywhere either in the code or in the libraries: they are system library symbols. i) If they are called by external libraries, you need to add a missing system library, or to use a different set of external libraries, compiled with the same compiler you are using. ii) If you are using no external libraries and still getting missing symbols, your compiler and compiler libraries are not correctly installed.
1.8 COMPILATION WORKS BUT THE EXECUTABLE DOESN’T START BECAUSE “SHARED LIBRARIES … NOT FOUND”
This is a frequent problem with MKL libraries. You need to set some environment variables telling the system where the shared libraries are. See the documentation by Intel that comes with MKL libraries.