Table of Contents

Previous: -include

## Option: intrinsic

-intrinsic=list
    Controls whether ftnchek recognizes certain nonstandard intrinsic functions as intrinsic. The list consists of keywords separated by commas or colons. Some of the keywords control whether to recognize certain groups of functions, and other keywords control the expected syntax for invoking some nonstandard intrinsics. Include a keyword to turn on recognition of the corresponding set of intrinsics or to allow the corresponding syntax. Include a keyword prefixed by no- to turn off that recognition.

    There are three special keywords: all turns on recognition of all the nonstandard intrinsics (listed below) and accepts either syntax for those that have variations. Use none to turn off recognition of all nonstandard intrinsics except those noted below. Use help to print the list of all the keywords with a brief explanation of each. If list is omitted, -intrinsic is equivalent to -intrinsic=all, and -nointrinsic is equivalent to -intrinsic=none.

    The nonstandard intrinsic functions needed to support the nonstandard extended precision data types (double complex and quad precision) are always recognized. The intrinsics for the double complex data type are:

    CDABS | CDSQRT | DREAL | ZLOG
    CDCOS | DCMPLX | IMAG | ZSIN
    CDEXP | DCONJG | ZABS | ZSQRT
    CDLOG | DIMAG | ZEXP | ZCOS
    CDSIN |  |  |

    The intrinsics for the quad precision and quad complex types are:

    CQABS | QARCOS | QEXT | QNINT
    CQCOS | QARSIN | QEXTD | QPROD
    CQEXP | QATAN | QFLOAT | QREAL
    CQLOG | QATAN2 | QIMAG | QSIGN
    CQSIN | QCMPLX | QINT | QSIN
    CQSQRT | QCONJG | QLOG | QSINH
    DBLEQ | QCOS | QLOG10 | QSQRT
    IQINT | QCOSH | QMAX1 | QTAN
    IQNINT | QDIM | QMIN1 | QTANH
    QABS | QEXP | QMOD | SNGLQ

    The keywords controlling recognition of other nonstandard intrinsic functions are as follows:
    extra:
      recognize the following commonly available nonstandard intrinsics (all except EXIT and LOC are defined in MIL-STD 1753):

      BTEST | IBCLR | IEOR | ISHFTC
      EXIT | IBITS | IOR | LOC
      IAND | IBSET | ISHFT | NOT

    unix:
      recognize these common Unix-specific intrinsic functions:

      ABORT | GMTIME | LTIME | SRAND
      AND | IARGC | OR | SYSTEM
      GETARG | IRAND | RAND | TIME
      GETENV | LSHIFT | RSHIFT | XOR

    vms:
      recognize these common VMS-specific intrinsic functions:

      DATE | IDATE | SECNDS | TIME
      ERRSNS | RAN | SIZEOF |

    iargc-no-argument:
      specify that IARGC may be invoked with no arguments.
    iargc-one-argument:
      specify that IARGC may be invoked with one argument.
    rand-no-argument:
      specify that RAND and IRAND may be invoked with no arguments.
    rand-one-argument:
      specify that RAND and IRAND may be invoked with one argument.

    The no-argument and one-argument keywords work as follows: turning the option on causes ftnchek to accept the corresponding syntax for invocation of the function, without excluding the possibility of the alternative syntax. Turning the option off causes the corresponding syntax not to be accepted. If both options are turned on at once (the default), then either syntax is accepted. Turning both options off at once would not be meaningful. These options have no effect if recognition of Unix intrinsics has been turned off.

    Note that this setting does not control whether non-standard warnings are issued about these functions. It controls whether the functions are assumed to be intrinsic or not, which determines how their usage is checked. When functions in any of these sets are included, their invocations will be checked according to the rules for the intrinsic functions; otherwise they will be checked as normal (user-written) external functions. The non-standard warnings are controlled by the -f77=intrinsic option.

    The default value of this setting is equivalent to -intrinsic=all followed by -intrinsic=no-vms for the Unix version, -intrinsic=no-unix for the VMS version, and -intrinsic=no-unix,no-vms for other versions.

    Note: In versions of ftnchek prior to 2.10, the -intrinsic flag took a numeric argument instead of a list of options. For the sake of users who may have written scripts invoking ftnchek in this way, the numeric form is still accepted. The numeric form of the setting consists of three digits. The ones digit selects the set of intrinsic functions to be supported. The digit 0 selects only Fortran 77 standard intrinsics plus those needed to support the nonstandard extended precision data types. The digit 1 is equivalent to extra, 2 is equivalent to extra,unix, and 3 is equivalent to extra,vms. The tens digit of this setting controls the syntax of the RAND intrinsic function, and the hundreds digit controls the syntax of the IARGC function. For these digits, specify 0 to require invocation with no argument, 1 to require one argument, and 2 to allow either form.

    See also: -f77.

  Next: -library