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:

CDABSCDSQRTDREALZLOG
CDCOSDCMPLXIMAGZSIN
CDEXPDCONJGZABSZSQRT
CDLOGDIMAGZEXPZCOS
CDSIN
The intrinsics for the quad precision and quad complex types are:
CQABSQARCOSQEXTQNINT
CQCOSQARSINQEXTDQPROD
CQEXPQATANQFLOATQREAL
CQLOGQATAN2QIMAGQSIGN
CQSINQCMPLXQINTQSIN
CQSQRTQCONJGQLOGQSINH
DBLEQQCOSQLOG10QSQRT
IQINTQCOSHQMAX1QTAN
IQNINTQDIMQMIN1QTANH
QABSQEXPQMODSNGLQ
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):
BTESTIBCLRIEORISHFTC
EXITIBITSIORLOC
IANDIBSETISHFTNOT
unix:
recognize these common Unix-specific intrinsic functions:
ABORTGMTIMELTIMESRAND
ANDIARGCORSYSTEM
GETARGIRANDRANDTIME
GETENVLSHIFTRSHIFTXOR
vms:
recognize these common VMS-specific intrinsic functions:
DATEIDATESECNDSTIME
ERRSNSRANSIZEOF
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