Fortran
Upon login, your environment does not have any compilers loaded. You will need to do a module load <compiler>. After that, you can use the compiler and read its man page.
Options
The options below control how source files are translated into machine code.
| Option | Description |
|---|---|
| -M fixed | The source code uses fixed-form syntax, as in Fortran 77. This option is on by default for source files ending in .f, .F, .for, and .fpp. |
| -M free | The source code uses free-form syntax, introduced in Fortran 90. This option is on by default for source files ending in .f90, .F90, .f95, .F95. |
| -F | This option preprocesses each file and leaves the output in a file named file.f for each file named file.F. |
| -i8 | This option treats INTEGER variables as 8 bytes. For operations involving integers, use 64-bits for computations. |
| -r8 | This option interprets REAL variables as DOUBLE PRECISION. It is equivalent to using the options -Mr8 and -Mr8intrinsics. |
The options below control the amount of debugging information generated by the compiler. They can adversely affect optimization.
| Option | Description |
|---|---|
| -g | Generates symbolic debugging information. Turns off optimization. |
| -Mbounds | Adds array bound checking. |
| -Mchkptr | Checks for unintended dereferencing of null pointers. |
For most cases, the usual levels of optimization are appropriate (-O0,
-O1, -O2 [default], -O3). Below are a few exceptions.
| Option | Description |
|---|---|
| -fast | Chooses generally optimal flags for the target platform. Use pgf90 -fast -help to see the equivalent switches. Note that this sets the optimization level to a minimum of 2; see -O. |
| -fastsse | Chooses generally optimal flags for a processor that supports the SSE (Pentium 3/4, AthlonXP/MP, Opteron) and SSE2 (Pentium 4, Opteron) instructions. Use pgf90 -fastsse -help to see the equivalent switches. |
| -Mflushz | Sets SSE to flush-to-zero mode. |
| -pg -ql -Mprof |
Is the instrument program for profiling. These flags imply different types of profiling. Please check the pgf77 or pgf90 man page. |
| -Minfo | Generates an optimization report to standard error. This has several suboptions, so check the man page. |
| -Mlist | Generates a listing file. |
| -mp | Enables the compiler to generate multithreaded code based on the OpenMP directives. Because there is only one processor per node, this option should not be used. |
Documentation
See each compiler’s man page for a full list of compiler options. PDF and HTML documentation is also available online from PGI at the following URL: http://www.pgroup.com/resources/docs.htm
