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