cstart
, celse
, cend
and c;
are
treated specially by ftc
.
cstart
can be followed by a
keyword, and if the flag corresponding to the keyword is true, all code up
to the next cend
is forced active, i.e., any leading c;
is
stripped away. If, conversely, the flag is false, all code up to cend
is forced inactive, inserting c;
as necessary.
celse
can be used to implement alternatives in an obvious way,
for example,
cstart unix-i8 c; write (6,*) 'Integer length is 8' celse write (6,*) 'Integer length is 4' cend
cstart
line, with a
logical or being assumed between each. If the requirement is for two flags
to be set for the code to be active, the keywords may be separated by
.and.
; keywords may be preceded by .not.
. For example,
cstart cray .and. .not. mpp write (6,*) 'This is a Cray, but not MPP' cend
cstart
cend
constructs may be nested up to some
reasonable limit.