A directive passes information to a compiler in a special form of comment. @ Directives are also called compiler pragmas. There are two kinds of directives:
General directives
Parallel directives
See the Sun Fortran User's Guide and the Fortran Programming Guide for details on the specific directives available with f77.
The form of a general directive is one of the following:@
C$PRAGMA id
C$PRAGMA id ( a [ , a ] ) [ , id ( a [ , a ] ... ) ] ,...
C$PRAGMA SUN id[=options]
The variable id identifies the directive keyword; a is an argument.
A directive has the following syntax:
In column one, any of the comment-indicator characters c, C, !, or *
In any column, the ! comment-indicator character
The next 7 characters are $PRAGMA, no blanks, any uppercase or lowercase
After the first eight characters, blanks are ignored, and uppercase and lowercase are equivalent, as in FORTRAN text.
Because it is a comment, a directive cannot be continued, but you can have many C$PRAGMA lines, one after the other, as needed.
If a comment satisfies the above syntax, it is expected to contain one or more directives recognized by the compiler; if it does not, a warning is issued.
Parallelization directives explicitly request the compiler attempt to parallelize the DO loop that follows the directive. The syntax differs from general directives. Parallelization directives are only recognized when compilation options --parallel or --explicitpar are used. (f77 parallelization options are described in the Fortran User's Guide.)
Parallelization directives have the following syntax:
The first character must be in column one.
The first character can be any one of c, C, *, or !.
The next four characters are $PAR, no blanks, either upper or lower case.
Next follows the directive keyword and options, separated by blanks.
The explicit parallelization directive keywords are:
TASKCOMMON, DOALL, DOSERIAL, and DOSERIAL*
Each parallelization directive has its own set of optional qualifiers that follow the keyword.
Example: Specifying a loop with a shared variable:
C$PAR DOALL SHARED(yvalue)
See the Fortran Programming Guide for details about parallelization and these directives.