VMS Help  —  FORTRAN  Statements  Directives  General Directives, DEFINE and UNDEFINE
  cDEC$ DEFINE
  cDEC$ UNDEFINE

  The DEFINE directive creates a symbolic variable whose existence or
  value can be tested during conditional compilation.  The UNDEFINE
  directive removes a defined symbol.

  The DEFINE and UNDEFINE directives take the following forms:

  cDEC$ DEFINE   name [=val]
  cDEC$ UNDEFINE name

    c        Is one of the following: C (or c), !, or *.

    name     Is the name of the variable.

    val      Is an INTEGER(4) value assigned to "name".

  DEFINE and UNDEFINE create and remove variables for use with the IF
  (or IF DEFINED) directive.  Symbols defined with the DEFINE
  directive are local to the directive.  They cannot be declared in
  the Fortran program.

  Because Fortran programs cannot access the named variables, the
  names can duplicate Fortran keywords, intrinsic functions, or
  user-defined names without conflict.

  To test whether a symbol has been defined, use the IF DEFINED
  (name) directive.  You can assign an integer value to a defined
  symbol.  To test the assigned value of "name", use the IF
  directive.  IF test expressions can contain most logical and
  arithmetic operators.

  Attempting to undefine a symbol which has not been defined produces
  a compiler warning.

  The DEFINE and UNDEFINE directives can appear anywhere in a
  program, enabling and disabling symbol definitions.

  For compatibility, !MS$DEFINE and !MS$UNDEFINE can be used in place
  of cDEC$ DEFINE and cDEC$ UNDEFINE.

  Examples:

  Consider the following:

  !DEC$ DEFINE  testflag
  !DEC$ IF DEFINED (testflag)
      write (*,*) 'Compiling first line'
  !DEC$ ELSE
       write (*,*) 'Compiling second line'
  !DEC$ ENDIF
  !DEC$ UNDEFINE  testflag
Close Help