diff options
author | tron <tron@pkgsrc.org> | 2000-09-15 23:58:47 +0000 |
---|---|---|
committer | tron <tron@pkgsrc.org> | 2000-09-15 23:58:47 +0000 |
commit | 178cf5b6274a2b03097f6f8ce8ebc0866c2411f6 (patch) | |
tree | eec98b048f42008dd646a65c97203e5a41627235 /lang | |
parent | 0e02ae3631136706875def194b314cb1b67e294e (diff) | |
download | pkgsrc-178cf5b6274a2b03097f6f8ce8ebc0866c2411f6.tar.gz |
- Add patches from NetBSD-current to fix build on i386 ELF systems.
- Install into "${LOCALBASE}/gcc-2.95.2" to avoid that e.g. "bsd.pkg.mk"
picks up the new compiler by accident.
- Add a file "${LOCALBASE}/etc/gcc-2.95.2.mk" which makes it possible to
use the new "gcc" like this:
make MAKECONF=/usr/pkg/etc/gcc-2.95.2.mk
Diffstat (limited to 'lang')
-rw-r--r-- | lang/gcc/Makefile | 41 | ||||
-rw-r--r-- | lang/gcc/files/gcc.mk | 9 | ||||
-rw-r--r-- | lang/gcc/files/patch-sum | 21 | ||||
-rw-r--r-- | lang/gcc/patches/patch-aa | 10935 | ||||
-rw-r--r-- | lang/gcc/patches/patch-ab | 166 | ||||
-rw-r--r-- | lang/gcc/patches/patch-ac | 28 | ||||
-rw-r--r-- | lang/gcc/patches/patch-ad | 78 | ||||
-rw-r--r-- | lang/gcc/patches/patch-ae | 47 | ||||
-rw-r--r-- | lang/gcc/patches/patch-af | 174 | ||||
-rw-r--r-- | lang/gcc/patches/patch-ag | 16 | ||||
-rw-r--r-- | lang/gcc/patches/patch-ah | 34 | ||||
-rw-r--r-- | lang/gcc/patches/patch-ai | 9 | ||||
-rw-r--r-- | lang/gcc/patches/patch-aj | 9 | ||||
-rw-r--r-- | lang/gcc/patches/patch-ak | 49 | ||||
-rw-r--r-- | lang/gcc/patches/patch-al | 104 | ||||
-rw-r--r-- | lang/gcc/patches/patch-am | 37 | ||||
-rw-r--r-- | lang/gcc/patches/patch-an | 11 | ||||
-rw-r--r-- | lang/gcc/patches/patch-ao | 18 | ||||
-rw-r--r-- | lang/gcc/patches/patch-ap | 12 | ||||
-rw-r--r-- | lang/gcc/patches/patch-aq | 64 | ||||
-rw-r--r-- | lang/gcc/patches/patch-ar | 1737 | ||||
-rw-r--r-- | lang/gcc/patches/patch-as | 20 | ||||
-rw-r--r-- | lang/gcc/pkg/PLIST | 612 |
23 files changed, 13917 insertions, 314 deletions
diff --git a/lang/gcc/Makefile b/lang/gcc/Makefile index a4577832f66..acc723ffff7 100644 --- a/lang/gcc/Makefile +++ b/lang/gcc/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.3 2000/05/23 22:09:58 tron Exp $ +# $NetBSD: Makefile,v 1.4 2000/09/15 23:58:47 tron Exp $ DISTNAME= gcc-2.95.2 CATEGORIES= lang @@ -9,24 +9,41 @@ HOMEPAGE= http://www.gnu.org/software/gcc/gcc.html BUILD_DEPENDS+= ${LOCALBASE}/bin/bison:../../devel/bison -# TODO: -# - rename binaries to avoid conflicts with base distribution -# - improve directory structure -# - support more platforms +# NetBSD-arm32 and NetBSD-i386 are the only tested platform so far. +# If you got it working on other platforms please add them. +ONLY_FOR_PLATFORM= NetBSD-*-arm32 NetBSD-*-i386 -# NetBSD-arm32 is the only tested platform so far. If you got it -# working on other platforms please add them. -ONLY_FOR_PLATFORM= NetBSD-*-arm32 +.include "../../mk/bsd.prefs.mk" -USE_GMAKE= yes -GNU_CONFIGURE= yes +.if (${OPSYS} == "NetBSD") && (${OBJECT_FMT} == "ELF") +MACHINE_GCC_PLATFORM= ${MACHINE_GNU_PLATFORM}elf +.else +MACHINE_GCC_PLATFORM= ${MACHINE_GNU_PLATFORM} +.endif + +USE_GMAKE= YES +HAS_CONFIGURE= YES +CONFIGURE_ARGS= --host=${MACHINE_GCC_PLATFORM} \ + --prefix=${LOCALBASE}/${PKGNAME} \ + --with-gnu-as --with-gnu-ld CONFIGURE_SCRIPT= ${SRCDIR}/configure -CONFIGURE_ARGS+= --with-gnu-as --with-gnu-ld -SRCDIR= ${WRKDIR}/${DISTNAME} +GCC_VERSION= ${PKGNAME:C/.*-//} +PLIST_SUBST+= GCC_VERSION=${GCC_VERSION} \ + MACHINE_GCC_PLATFORM=${MACHINE_GCC_PLATFORM} +SRCDIR= ${WRKDIR}/${PKGNAME} WRKSRC= ${WRKDIR}/objdir post-extract: ${MKDIR} ${WRKSRC} +post-build: + ${SED} -e 's#@@PKGNAME@@#${PKGNAME}#g' -e 's#@@PREFIX@@#${PREFIX}#g' \ + <${FILESDIR}/gcc.mk >${WRKDIR}/gcc.mk + +post-install: + ${RM} -f ${PREFIX}/${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/curses.h ${PREFIX}/${PKGNAME}/bin/cc + ${LN} -s gcc ${PREFIX}/${PKGNAME}/bin/cc + ${INSTALL_DATA} ${WRKDIR}/gcc.mk ${PREFIX}/etc/${PKGNAME}.mk + .include "../../mk/bsd.pkg.mk" diff --git a/lang/gcc/files/gcc.mk b/lang/gcc/files/gcc.mk new file mode 100644 index 00000000000..04a0320fb5d --- /dev/null +++ b/lang/gcc/files/gcc.mk @@ -0,0 +1,9 @@ +# make configuration file for @@PKGNAME@@ + +CC= @@PREFIX@@/@@PKGNAME@@/bin/cc +CPP= @@PREFIX@@/@@PKGNAME@@/bin/cpp +CXX= @@PREFIX@@/@@PKGNAME@@/bin/c++ + +.if exists(/etc/mk.conf) +.include "/etc/mk.conf" +.endif diff --git a/lang/gcc/files/patch-sum b/lang/gcc/files/patch-sum new file mode 100644 index 00000000000..ea79b1a25ed --- /dev/null +++ b/lang/gcc/files/patch-sum @@ -0,0 +1,21 @@ +$NetBSD: patch-sum,v 1.1 2000/09/15 23:58:47 tron Exp $ + +MD5 (patch-aa) = 0166b5dcc45385063d43726df116eeec +MD5 (patch-ab) = 7b4d30dcd719244e33f50e4f61edce27 +MD5 (patch-ac) = 83fdc3eac946751d30e7c06daeaf61d4 +MD5 (patch-ad) = d241675f130a02db868451e4071fb21f +MD5 (patch-ae) = 15fa550dc0282f8908576bdbcfc336e4 +MD5 (patch-af) = 43272092bd2ec741918126d3f925b47b +MD5 (patch-ag) = 307e3f8645c99b963663c1e0c012e6f1 +MD5 (patch-ah) = ef04d7e23cd9b744cbe15c1f44d0a486 +MD5 (patch-ai) = 702a0910bb030b132fdd549385a98a85 +MD5 (patch-aj) = 4aded3f835f9274c295e350dba44946b +MD5 (patch-ak) = cc9c95b28fb79e6e61290e319574a781 +MD5 (patch-al) = 6793f819b0bd8466133b8c2682460a47 +MD5 (patch-am) = a91440f20d85083c56023185b9526403 +MD5 (patch-an) = ecdd3b83cfbe09cfa2db0a59c0bb36e3 +MD5 (patch-ao) = 8a67865c648c6e6228e01ba0bc3a2b9c +MD5 (patch-ap) = 61ea82f434de0a97dcd9ea24479f66c2 +MD5 (patch-aq) = 7c2c6039ad24707791d5d8d97a6a6c3b +MD5 (patch-ar) = bb173f687ae48a67c9c144e65617c825 +MD5 (patch-as) = 307de5fd7f353a97273902aaaeb53397 diff --git a/lang/gcc/patches/patch-aa b/lang/gcc/patches/patch-aa new file mode 100644 index 00000000000..9a39c396235 --- /dev/null +++ b/lang/gcc/patches/patch-aa @@ -0,0 +1,10935 @@ +$NetBSD: patch-aa,v 1.1 2000/09/15 23:58:47 tron Exp $ + +--- ../gcc-2.95.2/gcc/f/intdoc.texi.orig Wed May 12 22:56:21 1999 ++++ ../gcc-2.95.2/gcc/f/intdoc.texi Sat Sep 16 00:17:42 2000 +@@ -1,10930 +0,0 @@ +-@c This file is automatically derived from intdoc.c, intdoc.in, +-@c ansify.c, intrin.def, and intrin.h. Edit those files instead. +-@menu +-@ifset familyF2U +-* Abort Intrinsic:: Abort the program. +-@end ifset +-@ifset familyF77 +-* Abs Intrinsic:: Absolute value. +-@end ifset +-@ifset familyF2U +-* Access Intrinsic:: Check file accessibility. +-@end ifset +-@ifset familyASC +-* AChar Intrinsic:: ASCII character from code. +-@end ifset +-@ifset familyF77 +-* ACos Intrinsic:: Arc cosine. +-@end ifset +-@ifset familyVXT +-* ACosD Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF90 +-* AdjustL Intrinsic:: (Reserved for future use.) +-* AdjustR Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* AImag Intrinsic:: Convert/extract imaginary part of complex. +-@end ifset +-@ifset familyVXT +-* AIMax0 Intrinsic:: (Reserved for future use.) +-* AIMin0 Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* AInt Intrinsic:: Truncate to whole number. +-@end ifset +-@ifset familyVXT +-* AJMax0 Intrinsic:: (Reserved for future use.) +-* AJMin0 Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* Alarm Intrinsic:: Execute a routine after a given delay. +-@end ifset +-@ifset familyF90 +-* All Intrinsic:: (Reserved for future use.) +-* Allocated Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* ALog Intrinsic:: Natural logarithm (archaic). +-* ALog10 Intrinsic:: Common logarithm (archaic). +-* AMax0 Intrinsic:: Maximum value (archaic). +-* AMax1 Intrinsic:: Maximum value (archaic). +-* AMin0 Intrinsic:: Minimum value (archaic). +-* AMin1 Intrinsic:: Minimum value (archaic). +-* AMod Intrinsic:: Remainder (archaic). +-@end ifset +-@ifset familyF2C +-* And Intrinsic:: Boolean AND. +-@end ifset +-@ifset familyF77 +-* ANInt Intrinsic:: Round to nearest whole number. +-@end ifset +-@ifset familyF90 +-* Any Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* ASin Intrinsic:: Arc sine. +-@end ifset +-@ifset familyVXT +-* ASinD Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF90 +-* Associated Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* ATan Intrinsic:: Arc tangent. +-* ATan2 Intrinsic:: Arc tangent. +-@end ifset +-@ifset familyVXT +-* ATan2D Intrinsic:: (Reserved for future use.) +-* ATanD Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* BesJ0 Intrinsic:: Bessel function. +-* BesJ1 Intrinsic:: Bessel function. +-* BesJN Intrinsic:: Bessel function. +-* BesY0 Intrinsic:: Bessel function. +-* BesY1 Intrinsic:: Bessel function. +-* BesYN Intrinsic:: Bessel function. +-@end ifset +-@ifset familyVXT +-* BITest Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF90 +-* Bit_Size Intrinsic:: Number of bits in argument's type. +-@end ifset +-@ifset familyVXT +-* BJTest Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyMIL +-* BTest Intrinsic:: Test bit. +-@end ifset +-@ifset familyF77 +-* CAbs Intrinsic:: Absolute value (archaic). +-* CCos Intrinsic:: Cosine (archaic). +-@end ifset +-@ifset familyFVZ +-* CDAbs Intrinsic:: Absolute value (archaic). +-* CDCos Intrinsic:: Cosine (archaic). +-* CDExp Intrinsic:: Exponential (archaic). +-* CDLog Intrinsic:: Natural logarithm (archaic). +-* CDSin Intrinsic:: Sine (archaic). +-* CDSqRt Intrinsic:: Square root (archaic). +-@end ifset +-@ifset familyF90 +-* Ceiling Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* CExp Intrinsic:: Exponential (archaic). +-* Char Intrinsic:: Character from code. +-@end ifset +-@ifset familyF2U +-* ChDir Intrinsic (subroutine):: Change directory. +-@end ifset +-@ifset familyBADU77 +-* ChDir Intrinsic (function):: Change directory. +-@end ifset +-@ifset familyF2U +-* ChMod Intrinsic (subroutine):: Change file modes. +-@end ifset +-@ifset familyBADU77 +-* ChMod Intrinsic (function):: Change file modes. +-@end ifset +-@ifset familyF77 +-* CLog Intrinsic:: Natural logarithm (archaic). +-* Cmplx Intrinsic:: Construct @code{COMPLEX(KIND=1)} value. +-@end ifset +-@ifset familyGNU +-* Complex Intrinsic:: Build complex value from real and +- imaginary parts. +-@end ifset +-@ifset familyF77 +-* Conjg Intrinsic:: Complex conjugate. +-* Cos Intrinsic:: Cosine. +-@end ifset +-@ifset familyVXT +-* CosD Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* CosH Intrinsic:: Hyperbolic cosine. +-@end ifset +-@ifset familyF90 +-* Count Intrinsic:: (Reserved for future use.) +-* CPU_Time Intrinsic:: Get current CPU time. +-* CShift Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* CSin Intrinsic:: Sine (archaic). +-* CSqRt Intrinsic:: Square root (archaic). +-@end ifset +-@ifset familyF2U +-* CTime Intrinsic (subroutine):: Convert time to Day Mon dd hh:mm:ss yyyy. +-* CTime Intrinsic (function):: Convert time to Day Mon dd hh:mm:ss yyyy. +-@end ifset +-@ifset familyF77 +-* DAbs Intrinsic:: Absolute value (archaic). +-* DACos Intrinsic:: Arc cosine (archaic). +-@end ifset +-@ifset familyVXT +-* DACosD Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* DASin Intrinsic:: Arc sine (archaic). +-@end ifset +-@ifset familyVXT +-* DASinD Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* DATan Intrinsic:: Arc tangent (archaic). +-* DATan2 Intrinsic:: Arc tangent (archaic). +-@end ifset +-@ifset familyVXT +-* DATan2D Intrinsic:: (Reserved for future use.) +-* DATanD Intrinsic:: (Reserved for future use.) +-* Date Intrinsic:: Get current date as dd-Mon-yy. +-@end ifset +-@ifset familyF90 +-* Date_and_Time Intrinsic:: Get the current date and time. +-@end ifset +-@ifset familyF2U +-* DbesJ0 Intrinsic:: Bessel function (archaic). +-* DbesJ1 Intrinsic:: Bessel function (archaic). +-* DbesJN Intrinsic:: Bessel function (archaic). +-* DbesY0 Intrinsic:: Bessel function (archaic). +-* DbesY1 Intrinsic:: Bessel function (archaic). +-* DbesYN Intrinsic:: Bessel function (archaic). +-@end ifset +-@ifset familyF77 +-* Dble Intrinsic:: Convert to double precision. +-@end ifset +-@ifset familyVXT +-* DbleQ Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyFVZ +-* DCmplx Intrinsic:: Construct @code{COMPLEX(KIND=2)} value. +-* DConjg Intrinsic:: Complex conjugate (archaic). +-@end ifset +-@ifset familyF77 +-* DCos Intrinsic:: Cosine (archaic). +-@end ifset +-@ifset familyVXT +-* DCosD Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* DCosH Intrinsic:: Hyperbolic cosine (archaic). +-* DDiM Intrinsic:: Difference magnitude (archaic). +-@end ifset +-@ifset familyF2U +-* DErF Intrinsic:: Error function (archaic). +-* DErFC Intrinsic:: Complementary error function (archaic). +-@end ifset +-@ifset familyF77 +-* DExp Intrinsic:: Exponential (archaic). +-@end ifset +-@ifset familyFVZ +-* DFloat Intrinsic:: Conversion (archaic). +-@end ifset +-@ifset familyVXT +-* DFlotI Intrinsic:: (Reserved for future use.) +-* DFlotJ Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF90 +-* Digits Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* DiM Intrinsic:: Difference magnitude (non-negative subtract). +-@end ifset +-@ifset familyFVZ +-* DImag Intrinsic:: Convert/extract imaginary part of complex (archaic). +-@end ifset +-@ifset familyF77 +-* DInt Intrinsic:: Truncate to whole number (archaic). +-* DLog Intrinsic:: Natural logarithm (archaic). +-* DLog10 Intrinsic:: Common logarithm (archaic). +-* DMax1 Intrinsic:: Maximum value (archaic). +-* DMin1 Intrinsic:: Minimum value (archaic). +-* DMod Intrinsic:: Remainder (archaic). +-* DNInt Intrinsic:: Round to nearest whole number (archaic). +-@end ifset +-@ifset familyF90 +-* Dot_Product Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* DProd Intrinsic:: Double-precision product. +-@end ifset +-@ifset familyVXT +-* DReal Intrinsic:: Convert value to type @code{REAL(KIND=2)}. +-@end ifset +-@ifset familyF77 +-* DSign Intrinsic:: Apply sign to magnitude (archaic). +-* DSin Intrinsic:: Sine (archaic). +-@end ifset +-@ifset familyVXT +-* DSinD Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* DSinH Intrinsic:: Hyperbolic sine (archaic). +-* DSqRt Intrinsic:: Square root (archaic). +-* DTan Intrinsic:: Tangent (archaic). +-@end ifset +-@ifset familyVXT +-* DTanD Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* DTanH Intrinsic:: Hyperbolic tangent (archaic). +-@end ifset +-@ifset familyF2U +-* DTime Intrinsic (subroutine):: Get elapsed time since last time. +-@end ifset +-@ifset familyBADU77 +-* DTime Intrinsic (function):: Get elapsed time since last time. +-@end ifset +-@ifset familyF90 +-* EOShift Intrinsic:: (Reserved for future use.) +-* Epsilon Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* ErF Intrinsic:: Error function. +-* ErFC Intrinsic:: Complementary error function. +-* ETime Intrinsic (subroutine):: Get elapsed time for process. +-* ETime Intrinsic (function):: Get elapsed time for process. +-* Exit Intrinsic:: Terminate the program. +-@end ifset +-@ifset familyF77 +-* Exp Intrinsic:: Exponential. +-@end ifset +-@ifset familyF90 +-* Exponent Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* FDate Intrinsic (subroutine):: Get current time as Day Mon dd hh:mm:ss yyyy. +-* FDate Intrinsic (function):: Get current time as Day Mon dd hh:mm:ss yyyy. +-* FGet Intrinsic (subroutine):: Read a character from unit 5 stream-wise. +-@end ifset +-@ifset familyBADU77 +-* FGet Intrinsic (function):: Read a character from unit 5 stream-wise. +-@end ifset +-@ifset familyF2U +-* FGetC Intrinsic (subroutine):: Read a character stream-wise. +-@end ifset +-@ifset familyBADU77 +-* FGetC Intrinsic (function):: Read a character stream-wise. +-@end ifset +-@ifset familyF77 +-* Float Intrinsic:: Conversion (archaic). +-@end ifset +-@ifset familyVXT +-* FloatI Intrinsic:: (Reserved for future use.) +-* FloatJ Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF90 +-* Floor Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* Flush Intrinsic:: Flush buffered output. +-* FNum Intrinsic:: Get file descriptor from Fortran unit number. +-* FPut Intrinsic (subroutine):: Write a character to unit 6 stream-wise. +-@end ifset +-@ifset familyBADU77 +-* FPut Intrinsic (function):: Write a character to unit 6 stream-wise. +-@end ifset +-@ifset familyF2U +-* FPutC Intrinsic (subroutine):: Write a character stream-wise. +-@end ifset +-@ifset familyBADU77 +-* FPutC Intrinsic (function):: Write a character stream-wise. +-@end ifset +-@ifset familyF90 +-* Fraction Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* FSeek Intrinsic:: Position file (low-level). +-* FStat Intrinsic (subroutine):: Get file information. +-* FStat Intrinsic (function):: Get file information. +-* FTell Intrinsic (subroutine):: Get file position (low-level). +-* FTell Intrinsic (function):: Get file position (low-level). +-* GError Intrinsic:: Get error message for last error. +-* GetArg Intrinsic:: Obtain command-line argument. +-* GetCWD Intrinsic (subroutine):: Get current working directory. +-* GetCWD Intrinsic (function):: Get current working directory. +-* GetEnv Intrinsic:: Get environment variable. +-* GetGId Intrinsic:: Get process group id. +-* GetLog Intrinsic:: Get login name. +-* GetPId Intrinsic:: Get process id. +-* GetUId Intrinsic:: Get process user id. +-* GMTime Intrinsic:: Convert time to GMT time info. +-* HostNm Intrinsic (subroutine):: Get host name. +-* HostNm Intrinsic (function):: Get host name. +-@end ifset +-@ifset familyF90 +-* Huge Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* IAbs Intrinsic:: Absolute value (archaic). +-@end ifset +-@ifset familyASC +-* IAChar Intrinsic:: ASCII code for character. +-@end ifset +-@ifset familyMIL +-* IAnd Intrinsic:: Boolean AND. +-@end ifset +-@ifset familyF2U +-* IArgC Intrinsic:: Obtain count of command-line arguments. +-@end ifset +-@ifset familyMIL +-* IBClr Intrinsic:: Clear a bit. +-* IBits Intrinsic:: Extract a bit subfield of a variable. +-* IBSet Intrinsic:: Set a bit. +-@end ifset +-@ifset familyF77 +-* IChar Intrinsic:: Code for character. +-@end ifset +-@ifset familyF2U +-* IDate Intrinsic (UNIX):: Get local time info. +-@end ifset +-@ifset familyVXT +-* IDate Intrinsic (VXT):: Get local time info (VAX/VMS). +-@end ifset +-@ifset familyF77 +-* IDiM Intrinsic:: Difference magnitude (archaic). +-* IDInt Intrinsic:: Convert to @code{INTEGER} value truncated +- to whole number (archaic). +-* IDNInt Intrinsic:: Convert to @code{INTEGER} value rounded +- to nearest whole number (archaic). +-@end ifset +-@ifset familyMIL +-* IEOr Intrinsic:: Boolean XOR. +-@end ifset +-@ifset familyF2U +-* IErrNo Intrinsic:: Get error number for last error. +-@end ifset +-@ifset familyF77 +-* IFix Intrinsic:: Conversion (archaic). +-@end ifset +-@ifset familyVXT +-* IIAbs Intrinsic:: (Reserved for future use.) +-* IIAnd Intrinsic:: (Reserved for future use.) +-* IIBClr Intrinsic:: (Reserved for future use.) +-* IIBits Intrinsic:: (Reserved for future use.) +-* IIBSet Intrinsic:: (Reserved for future use.) +-* IIDiM Intrinsic:: (Reserved for future use.) +-* IIDInt Intrinsic:: (Reserved for future use.) +-* IIDNnt Intrinsic:: (Reserved for future use.) +-* IIEOr Intrinsic:: (Reserved for future use.) +-* IIFix Intrinsic:: (Reserved for future use.) +-* IInt Intrinsic:: (Reserved for future use.) +-* IIOr Intrinsic:: (Reserved for future use.) +-* IIQint Intrinsic:: (Reserved for future use.) +-* IIQNnt Intrinsic:: (Reserved for future use.) +-* IIShftC Intrinsic:: (Reserved for future use.) +-* IISign Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2C +-* Imag Intrinsic:: Extract imaginary part of complex. +-@end ifset +-@ifset familyGNU +-* ImagPart Intrinsic:: Extract imaginary part of complex. +-@end ifset +-@ifset familyVXT +-* IMax0 Intrinsic:: (Reserved for future use.) +-* IMax1 Intrinsic:: (Reserved for future use.) +-* IMin0 Intrinsic:: (Reserved for future use.) +-* IMin1 Intrinsic:: (Reserved for future use.) +-* IMod Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* Index Intrinsic:: Locate a CHARACTER substring. +-@end ifset +-@ifset familyVXT +-* INInt Intrinsic:: (Reserved for future use.) +-* INot Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* Int Intrinsic:: Convert to @code{INTEGER} value truncated +- to whole number. +-@end ifset +-@ifset familyGNU +-* Int2 Intrinsic:: Convert to @code{INTEGER(KIND=6)} value +- truncated to whole number. +-* Int8 Intrinsic:: Convert to @code{INTEGER(KIND=2)} value +- truncated to whole number. +-@end ifset +-@ifset familyMIL +-* IOr Intrinsic:: Boolean OR. +-@end ifset +-@ifset familyF2U +-* IRand Intrinsic:: Random number. +-* IsaTty Intrinsic:: Is unit connected to a terminal? +-@end ifset +-@ifset familyMIL +-* IShft Intrinsic:: Logical bit shift. +-* IShftC Intrinsic:: Circular bit shift. +-@end ifset +-@ifset familyF77 +-* ISign Intrinsic:: Apply sign to magnitude (archaic). +-@end ifset +-@ifset familyF2U +-* ITime Intrinsic:: Get local time of day. +-@end ifset +-@ifset familyVXT +-* IZExt Intrinsic:: (Reserved for future use.) +-* JIAbs Intrinsic:: (Reserved for future use.) +-* JIAnd Intrinsic:: (Reserved for future use.) +-* JIBClr Intrinsic:: (Reserved for future use.) +-* JIBits Intrinsic:: (Reserved for future use.) +-* JIBSet Intrinsic:: (Reserved for future use.) +-* JIDiM Intrinsic:: (Reserved for future use.) +-* JIDInt Intrinsic:: (Reserved for future use.) +-* JIDNnt Intrinsic:: (Reserved for future use.) +-* JIEOr Intrinsic:: (Reserved for future use.) +-* JIFix Intrinsic:: (Reserved for future use.) +-* JInt Intrinsic:: (Reserved for future use.) +-* JIOr Intrinsic:: (Reserved for future use.) +-* JIQint Intrinsic:: (Reserved for future use.) +-* JIQNnt Intrinsic:: (Reserved for future use.) +-* JIShft Intrinsic:: (Reserved for future use.) +-* JIShftC Intrinsic:: (Reserved for future use.) +-* JISign Intrinsic:: (Reserved for future use.) +-* JMax0 Intrinsic:: (Reserved for future use.) +-* JMax1 Intrinsic:: (Reserved for future use.) +-* JMin0 Intrinsic:: (Reserved for future use.) +-* JMin1 Intrinsic:: (Reserved for future use.) +-* JMod Intrinsic:: (Reserved for future use.) +-* JNInt Intrinsic:: (Reserved for future use.) +-* JNot Intrinsic:: (Reserved for future use.) +-* JZExt Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* Kill Intrinsic (subroutine):: Signal a process. +-@end ifset +-@ifset familyBADU77 +-* Kill Intrinsic (function):: Signal a process. +-@end ifset +-@ifset familyF90 +-* Kind Intrinsic:: (Reserved for future use.) +-* LBound Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* Len Intrinsic:: Length of character entity. +-@end ifset +-@ifset familyF90 +-* Len_Trim Intrinsic:: Get last non-blank character in string. +-@end ifset +-@ifset familyF77 +-* LGe Intrinsic:: Lexically greater than or equal. +-* LGt Intrinsic:: Lexically greater than. +-@end ifset +-@ifset familyF2U +-* Link Intrinsic (subroutine):: Make hard link in file system. +-@end ifset +-@ifset familyBADU77 +-* Link Intrinsic (function):: Make hard link in file system. +-@end ifset +-@ifset familyF77 +-* LLe Intrinsic:: Lexically less than or equal. +-* LLt Intrinsic:: Lexically less than. +-@end ifset +-@ifset familyF2U +-* LnBlnk Intrinsic:: Get last non-blank character in string. +-* Loc Intrinsic:: Address of entity in core. +-@end ifset +-@ifset familyF77 +-* Log Intrinsic:: Natural logarithm. +-* Log10 Intrinsic:: Common logarithm. +-@end ifset +-@ifset familyF90 +-* Logical Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* Long Intrinsic:: Conversion to @code{INTEGER(KIND=1)} (archaic). +-@end ifset +-@ifset familyF2C +-* LShift Intrinsic:: Left-shift bits. +-@end ifset +-@ifset familyF2U +-* LStat Intrinsic (subroutine):: Get file information. +-* LStat Intrinsic (function):: Get file information. +-* LTime Intrinsic:: Convert time to local time info. +-@end ifset +-@ifset familyF90 +-* MatMul Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* Max Intrinsic:: Maximum value. +-* Max0 Intrinsic:: Maximum value (archaic). +-* Max1 Intrinsic:: Maximum value (archaic). +-@end ifset +-@ifset familyF90 +-* MaxExponent Intrinsic:: (Reserved for future use.) +-* MaxLoc Intrinsic:: (Reserved for future use.) +-* MaxVal Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* MClock Intrinsic:: Get number of clock ticks for process. +-* MClock8 Intrinsic:: Get number of clock ticks for process. +-@end ifset +-@ifset familyF90 +-* Merge Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* Min Intrinsic:: Minimum value. +-* Min0 Intrinsic:: Minimum value (archaic). +-* Min1 Intrinsic:: Minimum value (archaic). +-@end ifset +-@ifset familyF90 +-* MinExponent Intrinsic:: (Reserved for future use.) +-* MinLoc Intrinsic:: (Reserved for future use.) +-* MinVal Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* Mod Intrinsic:: Remainder. +-@end ifset +-@ifset familyF90 +-* Modulo Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyMIL +-* MvBits Intrinsic:: Moving a bit field. +-@end ifset +-@ifset familyF90 +-* Nearest Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* NInt Intrinsic:: Convert to @code{INTEGER} value rounded +- to nearest whole number. +-@end ifset +-@ifset familyMIL +-* Not Intrinsic:: Boolean NOT. +-@end ifset +-@ifset familyF2C +-* Or Intrinsic:: Boolean OR. +-@end ifset +-@ifset familyF90 +-* Pack Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* PError Intrinsic:: Print error message for last error. +-@end ifset +-@ifset familyF90 +-* Precision Intrinsic:: (Reserved for future use.) +-* Present Intrinsic:: (Reserved for future use.) +-* Product Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyVXT +-* QAbs Intrinsic:: (Reserved for future use.) +-* QACos Intrinsic:: (Reserved for future use.) +-* QACosD Intrinsic:: (Reserved for future use.) +-* QASin Intrinsic:: (Reserved for future use.) +-* QASinD Intrinsic:: (Reserved for future use.) +-* QATan Intrinsic:: (Reserved for future use.) +-* QATan2 Intrinsic:: (Reserved for future use.) +-* QATan2D Intrinsic:: (Reserved for future use.) +-* QATanD Intrinsic:: (Reserved for future use.) +-* QCos Intrinsic:: (Reserved for future use.) +-* QCosD Intrinsic:: (Reserved for future use.) +-* QCosH Intrinsic:: (Reserved for future use.) +-* QDiM Intrinsic:: (Reserved for future use.) +-* QExp Intrinsic:: (Reserved for future use.) +-* QExt Intrinsic:: (Reserved for future use.) +-* QExtD Intrinsic:: (Reserved for future use.) +-* QFloat Intrinsic:: (Reserved for future use.) +-* QInt Intrinsic:: (Reserved for future use.) +-* QLog Intrinsic:: (Reserved for future use.) +-* QLog10 Intrinsic:: (Reserved for future use.) +-* QMax1 Intrinsic:: (Reserved for future use.) +-* QMin1 Intrinsic:: (Reserved for future use.) +-* QMod Intrinsic:: (Reserved for future use.) +-* QNInt Intrinsic:: (Reserved for future use.) +-* QSin Intrinsic:: (Reserved for future use.) +-* QSinD Intrinsic:: (Reserved for future use.) +-* QSinH Intrinsic:: (Reserved for future use.) +-* QSqRt Intrinsic:: (Reserved for future use.) +-* QTan Intrinsic:: (Reserved for future use.) +-* QTanD Intrinsic:: (Reserved for future use.) +-* QTanH Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF90 +-* Radix Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* Rand Intrinsic:: Random number. +-@end ifset +-@ifset familyF90 +-* Random_Number Intrinsic:: (Reserved for future use.) +-* Random_Seed Intrinsic:: (Reserved for future use.) +-* Range Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* Real Intrinsic:: Convert value to type @code{REAL(KIND=1)}. +-@end ifset +-@ifset familyGNU +-* RealPart Intrinsic:: Extract real part of complex. +-@end ifset +-@ifset familyF2U +-* Rename Intrinsic (subroutine):: Rename file. +-@end ifset +-@ifset familyBADU77 +-* Rename Intrinsic (function):: Rename file. +-@end ifset +-@ifset familyF90 +-* Repeat Intrinsic:: (Reserved for future use.) +-* Reshape Intrinsic:: (Reserved for future use.) +-* RRSpacing Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2C +-* RShift Intrinsic:: Right-shift bits. +-@end ifset +-@ifset familyF90 +-* Scale Intrinsic:: (Reserved for future use.) +-* Scan Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyVXT +-* Secnds Intrinsic:: Get local time offset since midnight. +-@end ifset +-@ifset familyF2U +-* Second Intrinsic (function):: Get CPU time for process in seconds. +-* Second Intrinsic (subroutine):: Get CPU time for process +- in seconds. +-@end ifset +-@ifset familyF90 +-* Selected_Int_Kind Intrinsic:: (Reserved for future use.) +-* Selected_Real_Kind Intrinsic:: (Reserved for future use.) +-* Set_Exponent Intrinsic:: (Reserved for future use.) +-* Shape Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* Short Intrinsic:: Convert to @code{INTEGER(KIND=6)} value +- truncated to whole number. +-@end ifset +-@ifset familyF77 +-* Sign Intrinsic:: Apply sign to magnitude. +-@end ifset +-@ifset familyF2U +-* Signal Intrinsic (subroutine):: Muck with signal handling. +-@end ifset +-@ifset familyBADU77 +-* Signal Intrinsic (function):: Muck with signal handling. +-@end ifset +-@ifset familyF77 +-* Sin Intrinsic:: Sine. +-@end ifset +-@ifset familyVXT +-* SinD Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* SinH Intrinsic:: Hyperbolic sine. +-@end ifset +-@ifset familyF2U +-* Sleep Intrinsic:: Sleep for a specified time. +-@end ifset +-@ifset familyF77 +-* Sngl Intrinsic:: Convert (archaic). +-@end ifset +-@ifset familyVXT +-* SnglQ Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF90 +-* Spacing Intrinsic:: (Reserved for future use.) +-* Spread Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* SqRt Intrinsic:: Square root. +-@end ifset +-@ifset familyF2U +-* SRand Intrinsic:: Random seed. +-* Stat Intrinsic (subroutine):: Get file information. +-* Stat Intrinsic (function):: Get file information. +-@end ifset +-@ifset familyF90 +-* Sum Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* SymLnk Intrinsic (subroutine):: Make symbolic link in file system. +-@end ifset +-@ifset familyBADU77 +-* SymLnk Intrinsic (function):: Make symbolic link in file system. +-@end ifset +-@ifset familyF2U +-* System Intrinsic (subroutine):: Invoke shell (system) command. +-@end ifset +-@ifset familyBADU77 +-* System Intrinsic (function):: Invoke shell (system) command. +-@end ifset +-@ifset familyF90 +-* System_Clock Intrinsic:: Get current system clock value. +-@end ifset +-@ifset familyF77 +-* Tan Intrinsic:: Tangent. +-@end ifset +-@ifset familyVXT +-* TanD Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF77 +-* TanH Intrinsic:: Hyperbolic tangent. +-@end ifset +-@ifset familyF2U +-* Time Intrinsic (UNIX):: Get current time as time value. +-@end ifset +-@ifset familyVXT +-* Time Intrinsic (VXT):: Get the time as a character value. +-@end ifset +-@ifset familyF2U +-* Time8 Intrinsic:: Get current time as time value. +-@end ifset +-@ifset familyF90 +-* Tiny Intrinsic:: (Reserved for future use.) +-* Transfer Intrinsic:: (Reserved for future use.) +-* Transpose Intrinsic:: (Reserved for future use.) +-* Trim Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* TtyNam Intrinsic (subroutine):: Get name of terminal device for unit. +-* TtyNam Intrinsic (function):: Get name of terminal device for unit. +-@end ifset +-@ifset familyF90 +-* UBound Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2U +-* UMask Intrinsic (subroutine):: Set file creation permissions mask. +-@end ifset +-@ifset familyBADU77 +-* UMask Intrinsic (function):: Set file creation permissions mask. +-@end ifset +-@ifset familyF2U +-* Unlink Intrinsic (subroutine):: Unlink file. +-@end ifset +-@ifset familyBADU77 +-* Unlink Intrinsic (function):: Unlink file. +-@end ifset +-@ifset familyF90 +-* Unpack Intrinsic:: (Reserved for future use.) +-* Verify Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2C +-* XOr Intrinsic:: Boolean XOR. +-* ZAbs Intrinsic:: Absolute value (archaic). +-* ZCos Intrinsic:: Cosine (archaic). +-* ZExp Intrinsic:: Exponential (archaic). +-@end ifset +-@ifset familyVXT +-* ZExt Intrinsic:: (Reserved for future use.) +-@end ifset +-@ifset familyF2C +-* ZLog Intrinsic:: Natural logarithm (archaic). +-* ZSin Intrinsic:: Sine (archaic). +-* ZSqRt Intrinsic:: Square root (archaic). +-@end ifset +-@end menu +- +-@ifset familyF2U +-@node Abort Intrinsic +-@subsubsection Abort Intrinsic +-@cindex Abort intrinsic +-@cindex intrinsics, Abort +- +-@noindent +-@example +-CALL Abort() +-@end example +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Prints a message and potentially causes a core dump via @code{abort(3)}. +- +-@end ifset +-@ifset familyF77 +-@node Abs Intrinsic +-@subsubsection Abs Intrinsic +-@cindex Abs intrinsic +-@cindex intrinsics, Abs +- +-@noindent +-@example +-Abs(@var{A}) +-@end example +- +-@noindent +-Abs: @code{INTEGER} or @code{REAL} function. +-The exact type depends on that of argument @var{A}---if @var{A} is +-@code{COMPLEX}, this function's type is @code{REAL} +-with the same @samp{KIND=} value as the type of @var{A}. +-Otherwise, this function's type is the same as that of @var{A}. +- +-@noindent +-@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the absolute value of @var{A}. +- +-If @var{A} is type @code{COMPLEX}, the absolute +-value is computed as: +- +-@example +-SQRT(REALPART(@var{A})**2, IMAGPART(@var{A})**2) +-@end example +- +-@noindent +-Otherwise, it is computed by negating the @var{A} if +-it is negative, or returning @var{A}. +- +-@xref{Sign Intrinsic}, for how to explicitly +-compute the positive or negative form of the absolute +-value of an expression. +- +-@end ifset +-@ifset familyF2U +-@node Access Intrinsic +-@subsubsection Access Intrinsic +-@cindex Access intrinsic +-@cindex intrinsics, Access +- +-@noindent +-@example +-Access(@var{Name}, @var{Mode}) +-@end example +- +-@noindent +-Access: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Name}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Mode}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Checks file @var{Name} for accessibility in the mode specified by @var{Mode} and +-returns 0 if the file is accessible in that mode, otherwise an error +-code if the file is inaccessible or @var{Mode} is invalid. +-See @code{access(2)}. +-A null character (@samp{CHAR(0)}) marks the end of +-the name in @var{Name}---otherwise, +-trailing blanks in @var{Name} are ignored. +-@var{Mode} may be a concatenation of any of the following characters: +- +-@table @samp +-@item r +-Read permission +- +-@item w +-Write permission +- +-@item x +-Execute permission +- +-@item @kbd{SPC} +-Existence +-@end table +- +-@end ifset +-@ifset familyASC +-@node AChar Intrinsic +-@subsubsection AChar Intrinsic +-@cindex AChar intrinsic +-@cindex intrinsics, AChar +- +-@noindent +-@example +-AChar(@var{I}) +-@end example +- +-@noindent +-AChar: @code{CHARACTER*1} function. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{f90}. +- +-@noindent +-Description: +- +-Returns the ASCII character corresponding to the +-code specified by @var{I}. +- +-@xref{IAChar Intrinsic}, for the inverse of this function. +- +-@xref{Char Intrinsic}, for the function corresponding +-to the system's native character set. +- +-@end ifset +-@ifset familyF77 +-@node ACos Intrinsic +-@subsubsection ACos Intrinsic +-@cindex ACos intrinsic +-@cindex intrinsics, ACos +- +-@noindent +-@example +-ACos(@var{X}) +-@end example +- +-@noindent +-ACos: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the arc-cosine (inverse cosine) of @var{X} +-in radians. +- +-@xref{Cos Intrinsic}, for the inverse of this function. +- +-@end ifset +-@ifset familyVXT +-@node ACosD Intrinsic +-@subsubsection ACosD Intrinsic +-@cindex ACosD intrinsic +-@cindex intrinsics, ACosD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL ACosD} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF90 +-@node AdjustL Intrinsic +-@subsubsection AdjustL Intrinsic +-@cindex AdjustL intrinsic +-@cindex intrinsics, AdjustL +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL AdjustL} to use this name for an +-external procedure. +- +-@node AdjustR Intrinsic +-@subsubsection AdjustR Intrinsic +-@cindex AdjustR intrinsic +-@cindex intrinsics, AdjustR +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL AdjustR} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node AImag Intrinsic +-@subsubsection AImag Intrinsic +-@cindex AImag intrinsic +-@cindex intrinsics, AImag +- +-@noindent +-@example +-AImag(@var{Z}) +-@end example +- +-@noindent +-AImag: @code{REAL} function. +-This intrinsic is valid when argument @var{Z} is +-@code{COMPLEX(KIND=1)}. +-When @var{Z} is any other @code{COMPLEX} type, +-this intrinsic is valid only when used as the argument to +-@code{REAL()}, as explained below. +- +-@noindent +-@var{Z}: @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the (possibly converted) imaginary part of @var{Z}. +- +-Use of @code{AIMAG()} with an argument of a type +-other than @code{COMPLEX(KIND=1)} is restricted to the following case: +- +-@example +-REAL(AIMAG(Z)) +-@end example +- +-@noindent +-This expression converts the imaginary part of Z to +-@code{REAL(KIND=1)}. +- +-@xref{REAL() and AIMAG() of Complex}, for more information. +- +-@end ifset +-@ifset familyVXT +-@node AIMax0 Intrinsic +-@subsubsection AIMax0 Intrinsic +-@cindex AIMax0 intrinsic +-@cindex intrinsics, AIMax0 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL AIMax0} to use this name for an +-external procedure. +- +-@node AIMin0 Intrinsic +-@subsubsection AIMin0 Intrinsic +-@cindex AIMin0 intrinsic +-@cindex intrinsics, AIMin0 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL AIMin0} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node AInt Intrinsic +-@subsubsection AInt Intrinsic +-@cindex AInt intrinsic +-@cindex intrinsics, AInt +- +-@noindent +-@example +-AInt(@var{A}) +-@end example +- +-@noindent +-AInt: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{A}. +- +-@noindent +-@var{A}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @var{A} with the fractional portion of its +-magnitude truncated and its sign preserved. +-(Also called ``truncation towards zero''.) +- +-@xref{ANInt Intrinsic}, for how to round to nearest +-whole number. +- +-@xref{Int Intrinsic}, for how to truncate and then convert +-number to @code{INTEGER}. +- +-@end ifset +-@ifset familyVXT +-@node AJMax0 Intrinsic +-@subsubsection AJMax0 Intrinsic +-@cindex AJMax0 intrinsic +-@cindex intrinsics, AJMax0 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL AJMax0} to use this name for an +-external procedure. +- +-@node AJMin0 Intrinsic +-@subsubsection AJMin0 Intrinsic +-@cindex AJMin0 intrinsic +-@cindex intrinsics, AJMin0 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL AJMin0} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node Alarm Intrinsic +-@subsubsection Alarm Intrinsic +-@cindex Alarm intrinsic +-@cindex intrinsics, Alarm +- +-@noindent +-@example +-CALL Alarm(@var{Seconds}, @var{Handler}, @var{Status}) +-@end example +- +-@noindent +-@var{Seconds}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Handler}: Signal handler (@code{INTEGER FUNCTION} or @code{SUBROUTINE}) +-or dummy/global @code{INTEGER(KIND=1)} scalar. +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Causes external subroutine @var{Handler} to be executed after a delay of +-@var{Seconds} seconds by using @code{alarm(1)} to set up a signal and +-@code{signal(2)} to catch it. +-If @var{Status} is supplied, it will be +-returned with the number of seconds remaining until any previously +-scheduled alarm was due to be delivered, or zero if there was no +-previously scheduled alarm. +-@xref{Signal Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF90 +-@node All Intrinsic +-@subsubsection All Intrinsic +-@cindex All intrinsic +-@cindex intrinsics, All +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL All} to use this name for an +-external procedure. +- +-@node Allocated Intrinsic +-@subsubsection Allocated Intrinsic +-@cindex Allocated intrinsic +-@cindex intrinsics, Allocated +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Allocated} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node ALog Intrinsic +-@subsubsection ALog Intrinsic +-@cindex ALog intrinsic +-@cindex intrinsics, ALog +- +-@noindent +-@example +-ALog(@var{X}) +-@end example +- +-@noindent +-ALog: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{LOG()} that is specific +-to one type for @var{X}. +-@xref{Log Intrinsic}. +- +-@node ALog10 Intrinsic +-@subsubsection ALog10 Intrinsic +-@cindex ALog10 intrinsic +-@cindex intrinsics, ALog10 +- +-@noindent +-@example +-ALog10(@var{X}) +-@end example +- +-@noindent +-ALog10: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{LOG10()} that is specific +-to one type for @var{X}. +-@xref{Log10 Intrinsic}. +- +-@node AMax0 Intrinsic +-@subsubsection AMax0 Intrinsic +-@cindex AMax0 intrinsic +-@cindex intrinsics, AMax0 +- +-@noindent +-@example +-AMax0(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-AMax0: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{A}: @code{INTEGER(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MAX()} that is specific +-to one type for @var{A} and a different return type. +-@xref{Max Intrinsic}. +- +-@node AMax1 Intrinsic +-@subsubsection AMax1 Intrinsic +-@cindex AMax1 intrinsic +-@cindex intrinsics, AMax1 +- +-@noindent +-@example +-AMax1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-AMax1: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MAX()} that is specific +-to one type for @var{A}. +-@xref{Max Intrinsic}. +- +-@node AMin0 Intrinsic +-@subsubsection AMin0 Intrinsic +-@cindex AMin0 intrinsic +-@cindex intrinsics, AMin0 +- +-@noindent +-@example +-AMin0(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-AMin0: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{A}: @code{INTEGER(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MIN()} that is specific +-to one type for @var{A} and a different return type. +-@xref{Min Intrinsic}. +- +-@node AMin1 Intrinsic +-@subsubsection AMin1 Intrinsic +-@cindex AMin1 intrinsic +-@cindex intrinsics, AMin1 +- +-@noindent +-@example +-AMin1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-AMin1: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MIN()} that is specific +-to one type for @var{A}. +-@xref{Min Intrinsic}. +- +-@node AMod Intrinsic +-@subsubsection AMod Intrinsic +-@cindex AMod intrinsic +-@cindex intrinsics, AMod +- +-@noindent +-@example +-AMod(@var{A}, @var{P}) +-@end example +- +-@noindent +-AMod: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-@var{P}: @code{REAL(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MOD()} that is specific +-to one type for @var{A}. +-@xref{Mod Intrinsic}. +- +-@end ifset +-@ifset familyF2C +-@node And Intrinsic +-@subsubsection And Intrinsic +-@cindex And intrinsic +-@cindex intrinsics, And +- +-@noindent +-@example +-And(@var{I}, @var{J}) +-@end example +- +-@noindent +-And: @code{INTEGER} or @code{LOGICAL} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{I}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN). +- +-@noindent +-@var{J}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-Returns value resulting from boolean AND of +-pair of bits in each of @var{I} and @var{J}. +- +-@end ifset +-@ifset familyF77 +-@node ANInt Intrinsic +-@subsubsection ANInt Intrinsic +-@cindex ANInt intrinsic +-@cindex intrinsics, ANInt +- +-@noindent +-@example +-ANInt(@var{A}) +-@end example +- +-@noindent +-ANInt: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{A}. +- +-@noindent +-@var{A}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @var{A} with the fractional portion of its +-magnitude eliminated by rounding to the nearest whole +-number and with its sign preserved. +- +-A fractional portion exactly equal to +-@samp{.5} is rounded to the whole number that +-is larger in magnitude. +-(Also called ``Fortran round''.) +- +-@xref{AInt Intrinsic}, for how to truncate to +-whole number. +- +-@xref{NInt Intrinsic}, for how to round and then convert +-number to @code{INTEGER}. +- +-@end ifset +-@ifset familyF90 +-@node Any Intrinsic +-@subsubsection Any Intrinsic +-@cindex Any intrinsic +-@cindex intrinsics, Any +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Any} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node ASin Intrinsic +-@subsubsection ASin Intrinsic +-@cindex ASin intrinsic +-@cindex intrinsics, ASin +- +-@noindent +-@example +-ASin(@var{X}) +-@end example +- +-@noindent +-ASin: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the arc-sine (inverse sine) of @var{X} +-in radians. +- +-@xref{Sin Intrinsic}, for the inverse of this function. +- +-@end ifset +-@ifset familyVXT +-@node ASinD Intrinsic +-@subsubsection ASinD Intrinsic +-@cindex ASinD intrinsic +-@cindex intrinsics, ASinD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL ASinD} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF90 +-@node Associated Intrinsic +-@subsubsection Associated Intrinsic +-@cindex Associated intrinsic +-@cindex intrinsics, Associated +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Associated} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node ATan Intrinsic +-@subsubsection ATan Intrinsic +-@cindex ATan intrinsic +-@cindex intrinsics, ATan +- +-@noindent +-@example +-ATan(@var{X}) +-@end example +- +-@noindent +-ATan: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the arc-tangent (inverse tangent) of @var{X} +-in radians. +- +-@xref{Tan Intrinsic}, for the inverse of this function. +- +-@node ATan2 Intrinsic +-@subsubsection ATan2 Intrinsic +-@cindex ATan2 intrinsic +-@cindex intrinsics, ATan2 +- +-@noindent +-@example +-ATan2(@var{Y}, @var{X}) +-@end example +- +-@noindent +-ATan2: @code{REAL} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{Y}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the arc-tangent (inverse tangent) of the complex +-number (@var{Y}, @var{X}) in radians. +- +-@xref{Tan Intrinsic}, for the inverse of this function. +- +-@end ifset +-@ifset familyVXT +-@node ATan2D Intrinsic +-@subsubsection ATan2D Intrinsic +-@cindex ATan2D intrinsic +-@cindex intrinsics, ATan2D +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL ATan2D} to use this name for an +-external procedure. +- +-@node ATanD Intrinsic +-@subsubsection ATanD Intrinsic +-@cindex ATanD intrinsic +-@cindex intrinsics, ATanD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL ATanD} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node BesJ0 Intrinsic +-@subsubsection BesJ0 Intrinsic +-@cindex BesJ0 intrinsic +-@cindex intrinsics, BesJ0 +- +-@noindent +-@example +-BesJ0(@var{X}) +-@end example +- +-@noindent +-BesJ0: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Calculates the Bessel function of the first kind of order 0 of @var{X}. +-See @code{bessel(3m)}, on whose implementation the function depends. +-@node BesJ1 Intrinsic +-@subsubsection BesJ1 Intrinsic +-@cindex BesJ1 intrinsic +-@cindex intrinsics, BesJ1 +- +-@noindent +-@example +-BesJ1(@var{X}) +-@end example +- +-@noindent +-BesJ1: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Calculates the Bessel function of the first kind of order 1 of @var{X}. +-See @code{bessel(3m)}, on whose implementation the function depends. +-@node BesJN Intrinsic +-@subsubsection BesJN Intrinsic +-@cindex BesJN intrinsic +-@cindex intrinsics, BesJN +- +-@noindent +-@example +-BesJN(@var{N}, @var{X}) +-@end example +- +-@noindent +-BesJN: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{N}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Calculates the Bessel function of the first kind of order @var{N} of @var{X}. +-See @code{bessel(3m)}, on whose implementation the function depends. +-@node BesY0 Intrinsic +-@subsubsection BesY0 Intrinsic +-@cindex BesY0 intrinsic +-@cindex intrinsics, BesY0 +- +-@noindent +-@example +-BesY0(@var{X}) +-@end example +- +-@noindent +-BesY0: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Calculates the Bessel function of the second kind of order 0 of @var{X}. +-See @code{bessel(3m)}, on whose implementation the function depends. +-@node BesY1 Intrinsic +-@subsubsection BesY1 Intrinsic +-@cindex BesY1 intrinsic +-@cindex intrinsics, BesY1 +- +-@noindent +-@example +-BesY1(@var{X}) +-@end example +- +-@noindent +-BesY1: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Calculates the Bessel function of the second kind of order 1 of @var{X}. +-See @code{bessel(3m)}, on whose implementation the function depends. +-@node BesYN Intrinsic +-@subsubsection BesYN Intrinsic +-@cindex BesYN intrinsic +-@cindex intrinsics, BesYN +- +-@noindent +-@example +-BesYN(@var{N}, @var{X}) +-@end example +- +-@noindent +-BesYN: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{N}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Calculates the Bessel function of the second kind of order @var{N} of @var{X}. +-See @code{bessel(3m)}, on whose implementation the function depends. +-@end ifset +-@ifset familyVXT +-@node BITest Intrinsic +-@subsubsection BITest Intrinsic +-@cindex BITest intrinsic +-@cindex intrinsics, BITest +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL BITest} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF90 +-@node Bit_Size Intrinsic +-@subsubsection Bit_Size Intrinsic +-@cindex Bit_Size intrinsic +-@cindex intrinsics, Bit_Size +- +-@noindent +-@example +-Bit_Size(@var{I}) +-@end example +- +-@noindent +-Bit_Size: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar. +- +-@noindent +-Intrinsic groups: @code{f90}. +- +-@noindent +-Description: +- +-Returns the number of bits (integer precision plus sign bit) +-represented by the type for @var{I}. +- +-@xref{BTest Intrinsic}, for how to test the value of a +-bit in a variable or array. +- +-@xref{IBSet Intrinsic}, for how to set a bit in a variable to 1. +- +-@xref{IBClr Intrinsic}, for how to set a bit in a variable to 0. +- +- +-@end ifset +-@ifset familyVXT +-@node BJTest Intrinsic +-@subsubsection BJTest Intrinsic +-@cindex BJTest intrinsic +-@cindex intrinsics, BJTest +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL BJTest} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyMIL +-@node BTest Intrinsic +-@subsubsection BTest Intrinsic +-@cindex BTest intrinsic +-@cindex intrinsics, BTest +- +-@noindent +-@example +-BTest(@var{I}, @var{Pos}) +-@end example +- +-@noindent +-BTest: @code{LOGICAL(KIND=1)} function. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Pos}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}. +- +-@noindent +-Description: +- +-Returns @code{.TRUE.} if bit @var{Pos} in @var{I} is +-1, @code{.FALSE.} otherwise. +- +-(Bit 0 is the low-order (rightmost) bit, adding the value +-@ifinfo +-2**0, +-@end ifinfo +-@iftex +-@tex +-$2^0$, +-@end tex +-@end iftex +-or 1, +-to the number if set to 1; +-bit 1 is the next-higher-order bit, adding +-@ifinfo +-2**1, +-@end ifinfo +-@iftex +-@tex +-$2^1$, +-@end tex +-@end iftex +-or 2; +-bit 2 adds +-@ifinfo +-2**2, +-@end ifinfo +-@iftex +-@tex +-$2^2$, +-@end tex +-@end iftex +-or 4; and so on.) +- +-@xref{Bit_Size Intrinsic}, for how to obtain the number of bits +-in a type. +-The leftmost bit of @var{I} is @samp{BIT_SIZE(@var{I}-1)}. +- +-@end ifset +-@ifset familyF77 +-@node CAbs Intrinsic +-@subsubsection CAbs Intrinsic +-@cindex CAbs intrinsic +-@cindex intrinsics, CAbs +- +-@noindent +-@example +-CAbs(@var{A}) +-@end example +- +-@noindent +-CAbs: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{A}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{ABS()} that is specific +-to one type for @var{A}. +-@xref{Abs Intrinsic}. +- +-@node CCos Intrinsic +-@subsubsection CCos Intrinsic +-@cindex CCos intrinsic +-@cindex intrinsics, CCos +- +-@noindent +-@example +-CCos(@var{X}) +-@end example +- +-@noindent +-CCos: @code{COMPLEX(KIND=1)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{COS()} that is specific +-to one type for @var{X}. +-@xref{Cos Intrinsic}. +- +-@end ifset +-@ifset familyFVZ +-@node CDAbs Intrinsic +-@subsubsection CDAbs Intrinsic +-@cindex CDAbs intrinsic +-@cindex intrinsics, CDAbs +- +-@noindent +-@example +-CDAbs(@var{A}) +-@end example +- +-@noindent +-CDAbs: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{vxt}. +- +-@noindent +-Description: +- +-Archaic form of @code{ABS()} that is specific +-to one type for @var{A}. +-@xref{Abs Intrinsic}. +- +-@node CDCos Intrinsic +-@subsubsection CDCos Intrinsic +-@cindex CDCos intrinsic +-@cindex intrinsics, CDCos +- +-@noindent +-@example +-CDCos(@var{X}) +-@end example +- +-@noindent +-CDCos: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{vxt}. +- +-@noindent +-Description: +- +-Archaic form of @code{COS()} that is specific +-to one type for @var{X}. +-@xref{Cos Intrinsic}. +- +-@node CDExp Intrinsic +-@subsubsection CDExp Intrinsic +-@cindex CDExp intrinsic +-@cindex intrinsics, CDExp +- +-@noindent +-@example +-CDExp(@var{X}) +-@end example +- +-@noindent +-CDExp: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{vxt}. +- +-@noindent +-Description: +- +-Archaic form of @code{EXP()} that is specific +-to one type for @var{X}. +-@xref{Exp Intrinsic}. +- +-@node CDLog Intrinsic +-@subsubsection CDLog Intrinsic +-@cindex CDLog intrinsic +-@cindex intrinsics, CDLog +- +-@noindent +-@example +-CDLog(@var{X}) +-@end example +- +-@noindent +-CDLog: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{vxt}. +- +-@noindent +-Description: +- +-Archaic form of @code{LOG()} that is specific +-to one type for @var{X}. +-@xref{Log Intrinsic}. +- +-@node CDSin Intrinsic +-@subsubsection CDSin Intrinsic +-@cindex CDSin intrinsic +-@cindex intrinsics, CDSin +- +-@noindent +-@example +-CDSin(@var{X}) +-@end example +- +-@noindent +-CDSin: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{vxt}. +- +-@noindent +-Description: +- +-Archaic form of @code{SIN()} that is specific +-to one type for @var{X}. +-@xref{Sin Intrinsic}. +- +-@node CDSqRt Intrinsic +-@subsubsection CDSqRt Intrinsic +-@cindex CDSqRt intrinsic +-@cindex intrinsics, CDSqRt +- +-@noindent +-@example +-CDSqRt(@var{X}) +-@end example +- +-@noindent +-CDSqRt: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{vxt}. +- +-@noindent +-Description: +- +-Archaic form of @code{SQRT()} that is specific +-to one type for @var{X}. +-@xref{SqRt Intrinsic}. +- +-@end ifset +-@ifset familyF90 +-@node Ceiling Intrinsic +-@subsubsection Ceiling Intrinsic +-@cindex Ceiling intrinsic +-@cindex intrinsics, Ceiling +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Ceiling} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node CExp Intrinsic +-@subsubsection CExp Intrinsic +-@cindex CExp intrinsic +-@cindex intrinsics, CExp +- +-@noindent +-@example +-CExp(@var{X}) +-@end example +- +-@noindent +-CExp: @code{COMPLEX(KIND=1)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{EXP()} that is specific +-to one type for @var{X}. +-@xref{Exp Intrinsic}. +- +-@node Char Intrinsic +-@subsubsection Char Intrinsic +-@cindex Char intrinsic +-@cindex intrinsics, Char +- +-@noindent +-@example +-Char(@var{I}) +-@end example +- +-@noindent +-Char: @code{CHARACTER*1} function. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the character corresponding to the +-code specified by @var{I}, using the system's +-native character set. +- +-Because the system's native character set is used, +-the correspondence between character and their codes +-is not necessarily the same between GNU Fortran +-implementations. +- +-Note that no intrinsic exists to convert a numerical +-value to a printable character string. +-For example, there is no intrinsic that, given +-an @code{INTEGER} or @code{REAL} argument with the +-value @samp{154}, returns the @code{CHARACTER} +-result @samp{'154'}. +- +-Instead, you can use internal-file I/O to do this kind +-of conversion. +-For example: +- +-@smallexample +-INTEGER VALUE +-CHARACTER*10 STRING +-VALUE = 154 +-WRITE (STRING, '(I10)'), VALUE +-PRINT *, STRING +-END +-@end smallexample +- +-The above program, when run, prints: +- +-@smallexample +- 154 +-@end smallexample +- +-@xref{IChar Intrinsic}, for the inverse of the @code{CHAR} function. +- +-@xref{AChar Intrinsic}, for the function corresponding +-to the ASCII character set. +- +-@end ifset +-@ifset familyF2U +-@node ChDir Intrinsic (subroutine) +-@subsubsection ChDir Intrinsic (subroutine) +-@cindex ChDir intrinsic +-@cindex intrinsics, ChDir +- +-@noindent +-@example +-CALL ChDir(@var{Dir}, @var{Status}) +-@end example +- +-@noindent +-@var{Dir}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Sets the current working directory to be @var{Dir}. +-If the @var{Status} argument is supplied, it contains 0 +-on success or a non-zero error code otherwise upon return. +-See @code{chdir(3)}. +- +-@emph{Caution:} Using this routine during I/O to a unit connected with a +-non-absolute file name can cause subsequent I/O on such a unit to fail +-because the I/O library might reopen files by name. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{ChDir Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node ChDir Intrinsic (function) +-@subsubsection ChDir Intrinsic (function) +-@cindex ChDir intrinsic +-@cindex intrinsics, ChDir +- +-@noindent +-@example +-ChDir(@var{Dir}) +-@end example +- +-@noindent +-ChDir: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Dir}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Sets the current working directory to be @var{Dir}. +-Returns 0 on success or a non-zero error code. +-See @code{chdir(3)}. +- +-@emph{Caution:} Using this routine during I/O to a unit connected with a +-non-absolute file name can cause subsequent I/O on such a unit to fail +-because the I/O library might reopen files by name. +- +-Due to the side effects performed by this intrinsic, the function +-form is not recommended. +- +-For information on other intrinsics with the same name: +-@xref{ChDir Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF2U +-@node ChMod Intrinsic (subroutine) +-@subsubsection ChMod Intrinsic (subroutine) +-@cindex ChMod intrinsic +-@cindex intrinsics, ChMod +- +-@noindent +-@example +-CALL ChMod(@var{Name}, @var{Mode}, @var{Status}) +-@end example +- +-@noindent +-@var{Name}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Mode}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Changes the access mode of file @var{Name} according to the +-specification @var{Mode}, which is given in the format of +-@code{chmod(1)}. +-A null character (@samp{CHAR(0)}) marks the end of +-the name in @var{Name}---otherwise, +-trailing blanks in @var{Name} are ignored. +-Currently, @var{Name} must not contain the single quote +-character. +- +-If the @var{Status} argument is supplied, it contains +-0 on success or a non-zero error code upon return. +- +-Note that this currently works +-by actually invoking @code{/bin/chmod} (or the @code{chmod} found when +-the library was configured) and so might fail in some circumstances and +-will, anyway, be slow. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{ChMod Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node ChMod Intrinsic (function) +-@subsubsection ChMod Intrinsic (function) +-@cindex ChMod intrinsic +-@cindex intrinsics, ChMod +- +-@noindent +-@example +-ChMod(@var{Name}, @var{Mode}) +-@end example +- +-@noindent +-ChMod: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Name}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Mode}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Changes the access mode of file @var{Name} according to the +-specification @var{Mode}, which is given in the format of +-@code{chmod(1)}. +-A null character (@samp{CHAR(0)}) marks the end of +-the name in @var{Name}---otherwise, +-trailing blanks in @var{Name} are ignored. +-Currently, @var{Name} must not contain the single quote +-character. +- +-Returns 0 on success or a non-zero error code otherwise. +- +-Note that this currently works +-by actually invoking @code{/bin/chmod} (or the @code{chmod} found when +-the library was configured) and so might fail in some circumstances and +-will, anyway, be slow. +- +-Due to the side effects performed by this intrinsic, the function +-form is not recommended. +- +-For information on other intrinsics with the same name: +-@xref{ChMod Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF77 +-@node CLog Intrinsic +-@subsubsection CLog Intrinsic +-@cindex CLog intrinsic +-@cindex intrinsics, CLog +- +-@noindent +-@example +-CLog(@var{X}) +-@end example +- +-@noindent +-CLog: @code{COMPLEX(KIND=1)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{LOG()} that is specific +-to one type for @var{X}. +-@xref{Log Intrinsic}. +- +-@node Cmplx Intrinsic +-@subsubsection Cmplx Intrinsic +-@cindex Cmplx intrinsic +-@cindex intrinsics, Cmplx +- +-@noindent +-@example +-Cmplx(@var{X}, @var{Y}) +-@end example +- +-@noindent +-Cmplx: @code{COMPLEX(KIND=1)} function. +- +-@noindent +-@var{X}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-@var{Y}: @code{INTEGER} or @code{REAL}; OPTIONAL (must be omitted if @var{X} is @code{COMPLEX}); scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-If @var{X} is not type @code{COMPLEX}, +-constructs a value of type @code{COMPLEX(KIND=1)} from the +-real and imaginary values specified by @var{X} and +-@var{Y}, respectively. +-If @var{Y} is omitted, @samp{0.} is assumed. +- +-If @var{X} is type @code{COMPLEX}, +-converts it to type @code{COMPLEX(KIND=1)}. +- +-@xref{Complex Intrinsic}, for information on easily constructing +-a @code{COMPLEX} value of arbitrary precision from @code{REAL} +-arguments. +- +-@end ifset +-@ifset familyGNU +-@node Complex Intrinsic +-@subsubsection Complex Intrinsic +-@cindex Complex intrinsic +-@cindex intrinsics, Complex +- +-@noindent +-@example +-Complex(@var{Real}, @var{Imag}) +-@end example +- +-@noindent +-Complex: @code{COMPLEX} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{Real}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-@var{Imag}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{gnu}. +- +-@noindent +-Description: +- +-Returns a @code{COMPLEX} value that has @samp{Real} and @samp{Imag} as its +-real and imaginary parts, respectively. +- +-If @var{Real} and @var{Imag} are the same type, and that type is not +-@code{INTEGER}, no data conversion is performed, and the type of +-the resulting value has the same kind value as the types +-of @var{Real} and @var{Imag}. +- +-If @var{Real} and @var{Imag} are not the same type, the usual type-promotion +-rules are applied to both, converting either or both to the +-appropriate @code{REAL} type. +-The type of the resulting value has the same kind value as the +-type to which both @var{Real} and @var{Imag} were converted, in this case. +- +-If @var{Real} and @var{Imag} are both @code{INTEGER}, they are both converted +-to @code{REAL(KIND=1)}, and the result of the @code{COMPLEX()} +-invocation is type @code{COMPLEX(KIND=1)}. +- +-@emph{Note:} The way to do this in standard Fortran 90 +-is too hairy to describe here, but it is important to +-note that @samp{CMPLX(D1,D2)} returns a @code{COMPLEX(KIND=1)} +-result even if @samp{D1} and @samp{D2} are type @code{REAL(KIND=2)}. +-Hence the availability of @code{COMPLEX()} in GNU Fortran. +- +-@end ifset +-@ifset familyF77 +-@node Conjg Intrinsic +-@subsubsection Conjg Intrinsic +-@cindex Conjg intrinsic +-@cindex intrinsics, Conjg +- +-@noindent +-@example +-Conjg(@var{Z}) +-@end example +- +-@noindent +-Conjg: @code{COMPLEX} function, the @samp{KIND=} value of the type being that of argument @var{Z}. +- +-@noindent +-@var{Z}: @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the complex conjugate: +- +-@example +-COMPLEX(REALPART(@var{Z}), -IMAGPART(@var{Z})) +-@end example +- +-@node Cos Intrinsic +-@subsubsection Cos Intrinsic +-@cindex Cos intrinsic +-@cindex intrinsics, Cos +- +-@noindent +-@example +-Cos(@var{X}) +-@end example +- +-@noindent +-Cos: @code{REAL} or @code{COMPLEX} function, the exact type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL} or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the cosine of @var{X}, an angle measured +-in radians. +- +-@xref{ACos Intrinsic}, for the inverse of this function. +- +-@end ifset +-@ifset familyVXT +-@node CosD Intrinsic +-@subsubsection CosD Intrinsic +-@cindex CosD intrinsic +-@cindex intrinsics, CosD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL CosD} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node CosH Intrinsic +-@subsubsection CosH Intrinsic +-@cindex CosH intrinsic +-@cindex intrinsics, CosH +- +-@noindent +-@example +-CosH(@var{X}) +-@end example +- +-@noindent +-CosH: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the hyperbolic cosine of @var{X}. +- +-@end ifset +-@ifset familyF90 +-@node Count Intrinsic +-@subsubsection Count Intrinsic +-@cindex Count intrinsic +-@cindex intrinsics, Count +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Count} to use this name for an +-external procedure. +- +-@node CPU_Time Intrinsic +-@subsubsection CPU_Time Intrinsic +-@cindex CPU_Time intrinsic +-@cindex intrinsics, CPU_Time +- +-@noindent +-@example +-CALL CPU_Time(@var{Seconds}) +-@end example +- +-@noindent +-@var{Seconds}: @code{REAL}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{f90}. +- +-@noindent +-Description: +- +-Returns in @var{Seconds} the current value of the system time. +-This implementation of the Fortran 95 intrinsic is just an alias for +-@code{second} @xref{Second Intrinsic (subroutine)}. +- +-@cindex wraparound, timings +-@cindex limits, timings +-On some systems, the underlying timings are represented +-using types with sufficiently small limits that overflows +-(wraparounds) are possible, such as 32-bit types. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-@node CShift Intrinsic +-@subsubsection CShift Intrinsic +-@cindex CShift intrinsic +-@cindex intrinsics, CShift +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL CShift} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node CSin Intrinsic +-@subsubsection CSin Intrinsic +-@cindex CSin intrinsic +-@cindex intrinsics, CSin +- +-@noindent +-@example +-CSin(@var{X}) +-@end example +- +-@noindent +-CSin: @code{COMPLEX(KIND=1)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{SIN()} that is specific +-to one type for @var{X}. +-@xref{Sin Intrinsic}. +- +-@node CSqRt Intrinsic +-@subsubsection CSqRt Intrinsic +-@cindex CSqRt intrinsic +-@cindex intrinsics, CSqRt +- +-@noindent +-@example +-CSqRt(@var{X}) +-@end example +- +-@noindent +-CSqRt: @code{COMPLEX(KIND=1)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{SQRT()} that is specific +-to one type for @var{X}. +-@xref{SqRt Intrinsic}. +- +-@end ifset +-@ifset familyF2U +-@node CTime Intrinsic (subroutine) +-@subsubsection CTime Intrinsic (subroutine) +-@cindex CTime intrinsic +-@cindex intrinsics, CTime +- +-@noindent +-@example +-CALL CTime(@var{STime}, @var{Result}) +-@end example +- +-@noindent +-@var{STime}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Result}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Converts @var{STime}, a system time value, such as returned by +-@code{TIME8()}, to a string of the form @samp{Sat Aug 19 18:13:14 1995}, +-and returns that string in @var{Result}. +- +-@xref{Time8 Intrinsic}. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine. +- +-For information on other intrinsics with the same name: +-@xref{CTime Intrinsic (function)}. +- +-@node CTime Intrinsic (function) +-@subsubsection CTime Intrinsic (function) +-@cindex CTime intrinsic +-@cindex intrinsics, CTime +- +-@noindent +-@example +-CTime(@var{STime}) +-@end example +- +-@noindent +-CTime: @code{CHARACTER*(*)} function. +- +-@noindent +-@var{STime}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Converts @var{STime}, a system time value, such as returned by +-@code{TIME8()}, to a string of the form @samp{Sat Aug 19 18:13:14 1995}, +-and returns that string as the function value. +- +-@xref{Time8 Intrinsic}. +- +-For information on other intrinsics with the same name: +-@xref{CTime Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF77 +-@node DAbs Intrinsic +-@subsubsection DAbs Intrinsic +-@cindex DAbs intrinsic +-@cindex intrinsics, DAbs +- +-@noindent +-@example +-DAbs(@var{A}) +-@end example +- +-@noindent +-DAbs: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{ABS()} that is specific +-to one type for @var{A}. +-@xref{Abs Intrinsic}. +- +-@node DACos Intrinsic +-@subsubsection DACos Intrinsic +-@cindex DACos intrinsic +-@cindex intrinsics, DACos +- +-@noindent +-@example +-DACos(@var{X}) +-@end example +- +-@noindent +-DACos: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{ACOS()} that is specific +-to one type for @var{X}. +-@xref{ACos Intrinsic}. +- +-@end ifset +-@ifset familyVXT +-@node DACosD Intrinsic +-@subsubsection DACosD Intrinsic +-@cindex DACosD intrinsic +-@cindex intrinsics, DACosD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL DACosD} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node DASin Intrinsic +-@subsubsection DASin Intrinsic +-@cindex DASin intrinsic +-@cindex intrinsics, DASin +- +-@noindent +-@example +-DASin(@var{X}) +-@end example +- +-@noindent +-DASin: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{ASIN()} that is specific +-to one type for @var{X}. +-@xref{ASin Intrinsic}. +- +-@end ifset +-@ifset familyVXT +-@node DASinD Intrinsic +-@subsubsection DASinD Intrinsic +-@cindex DASinD intrinsic +-@cindex intrinsics, DASinD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL DASinD} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node DATan Intrinsic +-@subsubsection DATan Intrinsic +-@cindex DATan intrinsic +-@cindex intrinsics, DATan +- +-@noindent +-@example +-DATan(@var{X}) +-@end example +- +-@noindent +-DATan: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{ATAN()} that is specific +-to one type for @var{X}. +-@xref{ATan Intrinsic}. +- +-@node DATan2 Intrinsic +-@subsubsection DATan2 Intrinsic +-@cindex DATan2 intrinsic +-@cindex intrinsics, DATan2 +- +-@noindent +-@example +-DATan2(@var{Y}, @var{X}) +-@end example +- +-@noindent +-DATan2: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{Y}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{ATAN2()} that is specific +-to one type for @var{Y} and @var{X}. +-@xref{ATan2 Intrinsic}. +- +-@end ifset +-@ifset familyVXT +-@node DATan2D Intrinsic +-@subsubsection DATan2D Intrinsic +-@cindex DATan2D intrinsic +-@cindex intrinsics, DATan2D +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL DATan2D} to use this name for an +-external procedure. +- +-@node DATanD Intrinsic +-@subsubsection DATanD Intrinsic +-@cindex DATanD intrinsic +-@cindex intrinsics, DATanD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL DATanD} to use this name for an +-external procedure. +- +-@node Date Intrinsic +-@subsubsection Date Intrinsic +-@cindex Date intrinsic +-@cindex intrinsics, Date +- +-@noindent +-@example +-CALL Date(@var{Date}) +-@end example +- +-@noindent +-@var{Date}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{vxt}. +- +-@noindent +-Description: +- +-Returns @var{Date} in the form @samp{@var{dd}-@var{mmm}-@var{yy}}, +-representing the numeric day of the month @var{dd}, a three-character +-abbreviation of the month name @var{mmm} and the last two digits of +-the year @var{yy}, e.g.@: @samp{25-Nov-96}. +- +-@cindex Y2K compliance +-@cindex Year 2000 compliance +-This intrinsic is not recommended, due to the year 2000 approaching. +-Therefore, programs making use of this intrinsic +-might not be Year 2000 (Y2K) compliant. +-@xref{CTime Intrinsic (subroutine)}, for information on obtaining more digits +-for the current (or any) date. +- +-@end ifset +-@ifset familyF90 +-@node Date_and_Time Intrinsic +-@subsubsection Date_and_Time Intrinsic +-@cindex Date_and_Time intrinsic +-@cindex intrinsics, Date_and_Time +- +-@noindent +-@example +-CALL Date_and_Time(@var{Date}, @var{Time}, @var{Zone}, @var{Values}) +-@end example +- +-@noindent +-@var{Date}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-@var{Time}: @code{CHARACTER}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-@var{Zone}: @code{CHARACTER}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-@var{Values}: @code{INTEGER(KIND=1)}; OPTIONAL; DIMENSION(8); INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{f90}. +- +-@noindent +-Description: +- +-Returns: +-@table @var +-@item Date +-The date in the form @var{ccyymmdd}: century, year, month and day; +-@item Time +-The time in the form @samp{@var{hhmmss.ss}}: hours, minutes, seconds +-and milliseconds; +-@item Zone +-The difference between local time and UTC (GMT) in the form @var{Shhmm}: +-sign, hours and minutes, e.g.@: @samp{-0500} (winter in New York); +-@item Values +-The year, month of the year, day of the month, time difference in +-minutes from UTC, hour of the day, minutes of the hour, seconds +-of the minute, and milliseconds +-of the second in successive values of the array. +-@end table +- +-@cindex Y10K compliance +-@cindex Year 10000 compliance +-@cindex wraparound, Y10K +-@cindex limits, Y10K +-Programs making use of this intrinsic +-might not be Year 10000 (Y10K) compliant. +-For example, the date might appear, +-to such programs, to wrap around +-(change from a larger value to a smaller one) +-as of the Year 10000. +- +-On systems where a millisecond timer isn't available, the millisecond +-value is returned as zero. +- +-@end ifset +-@ifset familyF2U +-@node DbesJ0 Intrinsic +-@subsubsection DbesJ0 Intrinsic +-@cindex DbesJ0 intrinsic +-@cindex intrinsics, DbesJ0 +- +-@noindent +-@example +-DbesJ0(@var{X}) +-@end example +- +-@noindent +-DbesJ0: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Archaic form of @code{BESJ0()} that is specific +-to one type for @var{X}. +-@xref{BesJ0 Intrinsic}. +- +-@node DbesJ1 Intrinsic +-@subsubsection DbesJ1 Intrinsic +-@cindex DbesJ1 intrinsic +-@cindex intrinsics, DbesJ1 +- +-@noindent +-@example +-DbesJ1(@var{X}) +-@end example +- +-@noindent +-DbesJ1: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Archaic form of @code{BESJ1()} that is specific +-to one type for @var{X}. +-@xref{BesJ1 Intrinsic}. +- +-@node DbesJN Intrinsic +-@subsubsection DbesJN Intrinsic +-@cindex DbesJN intrinsic +-@cindex intrinsics, DbesJN +- +-@noindent +-@example +-DbesJN(@var{N}, @var{X}) +-@end example +- +-@noindent +-DbesJN: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{N}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Archaic form of @code{BESJN()} that is specific +-to one type for @var{X}. +-@xref{BesJN Intrinsic}. +- +-@node DbesY0 Intrinsic +-@subsubsection DbesY0 Intrinsic +-@cindex DbesY0 intrinsic +-@cindex intrinsics, DbesY0 +- +-@noindent +-@example +-DbesY0(@var{X}) +-@end example +- +-@noindent +-DbesY0: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Archaic form of @code{BESY0()} that is specific +-to one type for @var{X}. +-@xref{BesY0 Intrinsic}. +- +-@node DbesY1 Intrinsic +-@subsubsection DbesY1 Intrinsic +-@cindex DbesY1 intrinsic +-@cindex intrinsics, DbesY1 +- +-@noindent +-@example +-DbesY1(@var{X}) +-@end example +- +-@noindent +-DbesY1: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Archaic form of @code{BESY1()} that is specific +-to one type for @var{X}. +-@xref{BesY1 Intrinsic}. +- +-@node DbesYN Intrinsic +-@subsubsection DbesYN Intrinsic +-@cindex DbesYN intrinsic +-@cindex intrinsics, DbesYN +- +-@noindent +-@example +-DbesYN(@var{N}, @var{X}) +-@end example +- +-@noindent +-DbesYN: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{N}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Archaic form of @code{BESYN()} that is specific +-to one type for @var{X}. +-@xref{BesYN Intrinsic}. +- +-@end ifset +-@ifset familyF77 +-@node Dble Intrinsic +-@subsubsection Dble Intrinsic +-@cindex Dble intrinsic +-@cindex intrinsics, Dble +- +-@noindent +-@example +-Dble(@var{A}) +-@end example +- +-@noindent +-Dble: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @var{A} converted to double precision +-(@code{REAL(KIND=2)}). +-If @var{A} is @code{COMPLEX}, the real part of +-@var{A} is used for the conversion +-and the imaginary part disregarded. +- +-@xref{Sngl Intrinsic}, for the function that converts +-to single precision. +- +-@xref{Int Intrinsic}, for the function that converts +-to @code{INTEGER}. +- +-@xref{Complex Intrinsic}, for the function that converts +-to @code{COMPLEX}. +- +-@end ifset +-@ifset familyVXT +-@node DbleQ Intrinsic +-@subsubsection DbleQ Intrinsic +-@cindex DbleQ intrinsic +-@cindex intrinsics, DbleQ +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL DbleQ} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyFVZ +-@node DCmplx Intrinsic +-@subsubsection DCmplx Intrinsic +-@cindex DCmplx intrinsic +-@cindex intrinsics, DCmplx +- +-@noindent +-@example +-DCmplx(@var{X}, @var{Y}) +-@end example +- +-@noindent +-DCmplx: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{X}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-@var{Y}: @code{INTEGER} or @code{REAL}; OPTIONAL (must be omitted if @var{X} is @code{COMPLEX}); scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{vxt}. +- +-@noindent +-Description: +- +-If @var{X} is not type @code{COMPLEX}, +-constructs a value of type @code{COMPLEX(KIND=2)} from the +-real and imaginary values specified by @var{X} and +-@var{Y}, respectively. +-If @var{Y} is omitted, @samp{0D0} is assumed. +- +-If @var{X} is type @code{COMPLEX}, +-converts it to type @code{COMPLEX(KIND=2)}. +- +-Although this intrinsic is not standard Fortran, +-it is a popular extension offered by many compilers +-that support @code{DOUBLE COMPLEX}, since it offers +-the easiest way to convert to @code{DOUBLE COMPLEX} +-without using Fortran 90 features (such as the @samp{KIND=} +-argument to the @code{CMPLX()} intrinsic). +- +-(@samp{CMPLX(0D0, 0D0)} returns a single-precision +-@code{COMPLEX} result, as required by standard FORTRAN 77. +-That's why so many compilers provide @code{DCMPLX()}, since +-@samp{DCMPLX(0D0, 0D0)} returns a @code{DOUBLE COMPLEX} +-result. +-Still, @code{DCMPLX()} converts even @code{REAL*16} arguments +-to their @code{REAL*8} equivalents in most dialects of +-Fortran, so neither it nor @code{CMPLX()} allow easy +-construction of arbitrary-precision values without +-potentially forcing a conversion involving extending or +-reducing precision. +-GNU Fortran provides such an intrinsic, called @code{COMPLEX()}.) +- +-@xref{Complex Intrinsic}, for information on easily constructing +-a @code{COMPLEX} value of arbitrary precision from @code{REAL} +-arguments. +- +-@node DConjg Intrinsic +-@subsubsection DConjg Intrinsic +-@cindex DConjg intrinsic +-@cindex intrinsics, DConjg +- +-@noindent +-@example +-DConjg(@var{Z}) +-@end example +- +-@noindent +-DConjg: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{Z}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{vxt}. +- +-@noindent +-Description: +- +-Archaic form of @code{CONJG()} that is specific +-to one type for @var{Z}. +-@xref{Conjg Intrinsic}. +- +-@end ifset +-@ifset familyF77 +-@node DCos Intrinsic +-@subsubsection DCos Intrinsic +-@cindex DCos intrinsic +-@cindex intrinsics, DCos +- +-@noindent +-@example +-DCos(@var{X}) +-@end example +- +-@noindent +-DCos: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{COS()} that is specific +-to one type for @var{X}. +-@xref{Cos Intrinsic}. +- +-@end ifset +-@ifset familyVXT +-@node DCosD Intrinsic +-@subsubsection DCosD Intrinsic +-@cindex DCosD intrinsic +-@cindex intrinsics, DCosD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL DCosD} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node DCosH Intrinsic +-@subsubsection DCosH Intrinsic +-@cindex DCosH intrinsic +-@cindex intrinsics, DCosH +- +-@noindent +-@example +-DCosH(@var{X}) +-@end example +- +-@noindent +-DCosH: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{COSH()} that is specific +-to one type for @var{X}. +-@xref{CosH Intrinsic}. +- +-@node DDiM Intrinsic +-@subsubsection DDiM Intrinsic +-@cindex DDiM intrinsic +-@cindex intrinsics, DDiM +- +-@noindent +-@example +-DDiM(@var{X}, @var{Y}) +-@end example +- +-@noindent +-DDiM: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-@var{Y}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{DIM()} that is specific +-to one type for @var{X} and @var{Y}. +-@xref{DiM Intrinsic}. +- +-@end ifset +-@ifset familyF2U +-@node DErF Intrinsic +-@subsubsection DErF Intrinsic +-@cindex DErF intrinsic +-@cindex intrinsics, DErF +- +-@noindent +-@example +-DErF(@var{X}) +-@end example +- +-@noindent +-DErF: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Archaic form of @code{ERF()} that is specific +-to one type for @var{X}. +-@xref{ErF Intrinsic}. +- +-@node DErFC Intrinsic +-@subsubsection DErFC Intrinsic +-@cindex DErFC intrinsic +-@cindex intrinsics, DErFC +- +-@noindent +-@example +-DErFC(@var{X}) +-@end example +- +-@noindent +-DErFC: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Archaic form of @code{ERFC()} that is specific +-to one type for @var{X}. +-@xref{ErFC Intrinsic}. +- +-@end ifset +-@ifset familyF77 +-@node DExp Intrinsic +-@subsubsection DExp Intrinsic +-@cindex DExp intrinsic +-@cindex intrinsics, DExp +- +-@noindent +-@example +-DExp(@var{X}) +-@end example +- +-@noindent +-DExp: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{EXP()} that is specific +-to one type for @var{X}. +-@xref{Exp Intrinsic}. +- +-@end ifset +-@ifset familyFVZ +-@node DFloat Intrinsic +-@subsubsection DFloat Intrinsic +-@cindex DFloat intrinsic +-@cindex intrinsics, DFloat +- +-@noindent +-@example +-DFloat(@var{A}) +-@end example +- +-@noindent +-DFloat: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{vxt}. +- +-@noindent +-Description: +- +-Archaic form of @code{REAL()} that is specific +-to one type for @var{A}. +-@xref{Real Intrinsic}. +- +-@end ifset +-@ifset familyVXT +-@node DFlotI Intrinsic +-@subsubsection DFlotI Intrinsic +-@cindex DFlotI intrinsic +-@cindex intrinsics, DFlotI +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL DFlotI} to use this name for an +-external procedure. +- +-@node DFlotJ Intrinsic +-@subsubsection DFlotJ Intrinsic +-@cindex DFlotJ intrinsic +-@cindex intrinsics, DFlotJ +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL DFlotJ} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF90 +-@node Digits Intrinsic +-@subsubsection Digits Intrinsic +-@cindex Digits intrinsic +-@cindex intrinsics, Digits +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Digits} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node DiM Intrinsic +-@subsubsection DiM Intrinsic +-@cindex DiM intrinsic +-@cindex intrinsics, DiM +- +-@noindent +-@example +-DiM(@var{X}, @var{Y}) +-@end example +- +-@noindent +-DiM: @code{INTEGER} or @code{REAL} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{X}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-@var{Y}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @samp{@var{X}-@var{Y}} if @var{X} is greater than +-@var{Y}; otherwise returns zero. +- +-@end ifset +-@ifset familyFVZ +-@node DImag Intrinsic +-@subsubsection DImag Intrinsic +-@cindex DImag intrinsic +-@cindex intrinsics, DImag +- +-@noindent +-@example +-DImag(@var{Z}) +-@end example +- +-@noindent +-DImag: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{Z}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{vxt}. +- +-@noindent +-Description: +- +-Archaic form of @code{AIMAG()} that is specific +-to one type for @var{Z}. +-@xref{AImag Intrinsic}. +- +-@end ifset +-@ifset familyF77 +-@node DInt Intrinsic +-@subsubsection DInt Intrinsic +-@cindex DInt intrinsic +-@cindex intrinsics, DInt +- +-@noindent +-@example +-DInt(@var{A}) +-@end example +- +-@noindent +-DInt: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{AINT()} that is specific +-to one type for @var{A}. +-@xref{AInt Intrinsic}. +- +-@node DLog Intrinsic +-@subsubsection DLog Intrinsic +-@cindex DLog intrinsic +-@cindex intrinsics, DLog +- +-@noindent +-@example +-DLog(@var{X}) +-@end example +- +-@noindent +-DLog: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{LOG()} that is specific +-to one type for @var{X}. +-@xref{Log Intrinsic}. +- +-@node DLog10 Intrinsic +-@subsubsection DLog10 Intrinsic +-@cindex DLog10 intrinsic +-@cindex intrinsics, DLog10 +- +-@noindent +-@example +-DLog10(@var{X}) +-@end example +- +-@noindent +-DLog10: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{LOG10()} that is specific +-to one type for @var{X}. +-@xref{Log10 Intrinsic}. +- +-@node DMax1 Intrinsic +-@subsubsection DMax1 Intrinsic +-@cindex DMax1 intrinsic +-@cindex intrinsics, DMax1 +- +-@noindent +-@example +-DMax1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-DMax1: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=2)}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MAX()} that is specific +-to one type for @var{A}. +-@xref{Max Intrinsic}. +- +-@node DMin1 Intrinsic +-@subsubsection DMin1 Intrinsic +-@cindex DMin1 intrinsic +-@cindex intrinsics, DMin1 +- +-@noindent +-@example +-DMin1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-DMin1: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=2)}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MIN()} that is specific +-to one type for @var{A}. +-@xref{Min Intrinsic}. +- +-@node DMod Intrinsic +-@subsubsection DMod Intrinsic +-@cindex DMod intrinsic +-@cindex intrinsics, DMod +- +-@noindent +-@example +-DMod(@var{A}, @var{P}) +-@end example +- +-@noindent +-DMod: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-@var{P}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MOD()} that is specific +-to one type for @var{A}. +-@xref{Mod Intrinsic}. +- +-@node DNInt Intrinsic +-@subsubsection DNInt Intrinsic +-@cindex DNInt intrinsic +-@cindex intrinsics, DNInt +- +-@noindent +-@example +-DNInt(@var{A}) +-@end example +- +-@noindent +-DNInt: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{ANINT()} that is specific +-to one type for @var{A}. +-@xref{ANInt Intrinsic}. +- +-@end ifset +-@ifset familyF90 +-@node Dot_Product Intrinsic +-@subsubsection Dot_Product Intrinsic +-@cindex Dot_Product intrinsic +-@cindex intrinsics, Dot_Product +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Dot_Product} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node DProd Intrinsic +-@subsubsection DProd Intrinsic +-@cindex DProd intrinsic +-@cindex intrinsics, DProd +- +-@noindent +-@example +-DProd(@var{X}, @var{Y}) +-@end example +- +-@noindent +-DProd: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-@var{Y}: @code{REAL(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @samp{DBLE(@var{X})*DBLE(@var{Y})}. +- +-@end ifset +-@ifset familyVXT +-@node DReal Intrinsic +-@subsubsection DReal Intrinsic +-@cindex DReal intrinsic +-@cindex intrinsics, DReal +- +-@noindent +-@example +-DReal(@var{A}) +-@end example +- +-@noindent +-DReal: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{vxt}. +- +-@noindent +-Description: +- +-Converts @var{A} to @code{REAL(KIND=2)}. +- +-If @var{A} is type @code{COMPLEX}, its real part +-is converted (if necessary) to @code{REAL(KIND=2)}, +-and its imaginary part is disregarded. +- +-Although this intrinsic is not standard Fortran, +-it is a popular extension offered by many compilers +-that support @code{DOUBLE COMPLEX}, since it offers +-the easiest way to extract the real part of a @code{DOUBLE COMPLEX} +-value without using the Fortran 90 @code{REAL()} intrinsic +-in a way that produces a return value inconsistent with +-the way many FORTRAN 77 compilers handle @code{REAL()} of +-a @code{DOUBLE COMPLEX} value. +- +-@xref{RealPart Intrinsic}, for information on a GNU Fortran +-intrinsic that avoids these areas of confusion. +- +-@xref{Dble Intrinsic}, for information on the standard FORTRAN 77 +-replacement for @code{DREAL()}. +- +-@xref{REAL() and AIMAG() of Complex}, for more information on +-this issue. +- +-@end ifset +-@ifset familyF77 +-@node DSign Intrinsic +-@subsubsection DSign Intrinsic +-@cindex DSign intrinsic +-@cindex intrinsics, DSign +- +-@noindent +-@example +-DSign(@var{A}, @var{B}) +-@end example +- +-@noindent +-DSign: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-@var{B}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{SIGN()} that is specific +-to one type for @var{A} and @var{B}. +-@xref{Sign Intrinsic}. +- +-@node DSin Intrinsic +-@subsubsection DSin Intrinsic +-@cindex DSin intrinsic +-@cindex intrinsics, DSin +- +-@noindent +-@example +-DSin(@var{X}) +-@end example +- +-@noindent +-DSin: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{SIN()} that is specific +-to one type for @var{X}. +-@xref{Sin Intrinsic}. +- +-@end ifset +-@ifset familyVXT +-@node DSinD Intrinsic +-@subsubsection DSinD Intrinsic +-@cindex DSinD intrinsic +-@cindex intrinsics, DSinD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL DSinD} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node DSinH Intrinsic +-@subsubsection DSinH Intrinsic +-@cindex DSinH intrinsic +-@cindex intrinsics, DSinH +- +-@noindent +-@example +-DSinH(@var{X}) +-@end example +- +-@noindent +-DSinH: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{SINH()} that is specific +-to one type for @var{X}. +-@xref{SinH Intrinsic}. +- +-@node DSqRt Intrinsic +-@subsubsection DSqRt Intrinsic +-@cindex DSqRt intrinsic +-@cindex intrinsics, DSqRt +- +-@noindent +-@example +-DSqRt(@var{X}) +-@end example +- +-@noindent +-DSqRt: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{SQRT()} that is specific +-to one type for @var{X}. +-@xref{SqRt Intrinsic}. +- +-@node DTan Intrinsic +-@subsubsection DTan Intrinsic +-@cindex DTan intrinsic +-@cindex intrinsics, DTan +- +-@noindent +-@example +-DTan(@var{X}) +-@end example +- +-@noindent +-DTan: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{TAN()} that is specific +-to one type for @var{X}. +-@xref{Tan Intrinsic}. +- +-@end ifset +-@ifset familyVXT +-@node DTanD Intrinsic +-@subsubsection DTanD Intrinsic +-@cindex DTanD intrinsic +-@cindex intrinsics, DTanD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL DTanD} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node DTanH Intrinsic +-@subsubsection DTanH Intrinsic +-@cindex DTanH intrinsic +-@cindex intrinsics, DTanH +- +-@noindent +-@example +-DTanH(@var{X}) +-@end example +- +-@noindent +-DTanH: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{TANH()} that is specific +-to one type for @var{X}. +-@xref{TanH Intrinsic}. +- +-@end ifset +-@ifset familyF2U +-@node DTime Intrinsic (subroutine) +-@subsubsection DTime Intrinsic (subroutine) +-@cindex DTime intrinsic +-@cindex intrinsics, DTime +- +-@noindent +-@example +-CALL DTime(@var{TArray}, @var{Result}) +-@end example +- +-@noindent +-@var{TArray}: @code{REAL(KIND=1)}; DIMENSION(2); INTENT(OUT). +- +-@noindent +-@var{Result}: @code{REAL(KIND=1)}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Initially, return the number of seconds of runtime +-since the start of the process's execution +-in @var{Result}, +-and the user and system components of this in @samp{@var{TArray}(1)} +-and @samp{@var{TArray}(2)} respectively. +-The value of @var{Result} is equal to @samp{@var{TArray}(1) + @var{TArray}(2)}. +- +-Subsequent invocations of @samp{DTIME()} set values based on accumulations +-since the previous invocation. +- +-@cindex wraparound, timings +-@cindex limits, timings +-On some systems, the underlying timings are represented +-using types with sufficiently small limits that overflows +-(wraparounds) are possible, such as 32-bit types. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine. +- +-For information on other intrinsics with the same name: +-@xref{DTime Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node DTime Intrinsic (function) +-@subsubsection DTime Intrinsic (function) +-@cindex DTime intrinsic +-@cindex intrinsics, DTime +- +-@noindent +-@example +-DTime(@var{TArray}) +-@end example +- +-@noindent +-DTime: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{TArray}: @code{REAL(KIND=1)}; DIMENSION(2); INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Initially, return the number of seconds of runtime +-since the start of the process's execution +-as the function value, +-and the user and system components of this in @samp{@var{TArray}(1)} +-and @samp{@var{TArray}(2)} respectively. +-The functions' value is equal to @samp{@var{TArray}(1) + @var{TArray}(2)}. +- +-Subsequent invocations of @samp{DTIME()} return values accumulated since the +-previous invocation. +- +-@cindex wraparound, timings +-@cindex limits, timings +-On some systems, the underlying timings are represented +-using types with sufficiently small limits that overflows +-(wraparounds) are possible, such as 32-bit types. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-Due to the side effects performed by this intrinsic, the function +-form is not recommended. +- +-For information on other intrinsics with the same name: +-@xref{DTime Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF90 +-@node EOShift Intrinsic +-@subsubsection EOShift Intrinsic +-@cindex EOShift intrinsic +-@cindex intrinsics, EOShift +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL EOShift} to use this name for an +-external procedure. +- +-@node Epsilon Intrinsic +-@subsubsection Epsilon Intrinsic +-@cindex Epsilon intrinsic +-@cindex intrinsics, Epsilon +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Epsilon} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node ErF Intrinsic +-@subsubsection ErF Intrinsic +-@cindex ErF intrinsic +-@cindex intrinsics, ErF +- +-@noindent +-@example +-ErF(@var{X}) +-@end example +- +-@noindent +-ErF: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the error function of @var{X}. +-See @code{erf(3m)}, which provides the implementation. +- +-@node ErFC Intrinsic +-@subsubsection ErFC Intrinsic +-@cindex ErFC intrinsic +-@cindex intrinsics, ErFC +- +-@noindent +-@example +-ErFC(@var{X}) +-@end example +- +-@noindent +-ErFC: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the complementary error function of @var{X}: +-@samp{ERFC(R) = 1 - ERF(R)} (except that the result might be more +-accurate than explicitly evaluating that formulae would give). +-See @code{erfc(3m)}, which provides the implementation. +- +-@node ETime Intrinsic (subroutine) +-@subsubsection ETime Intrinsic (subroutine) +-@cindex ETime intrinsic +-@cindex intrinsics, ETime +- +-@noindent +-@example +-CALL ETime(@var{TArray}, @var{Result}) +-@end example +- +-@noindent +-@var{TArray}: @code{REAL(KIND=1)}; DIMENSION(2); INTENT(OUT). +- +-@noindent +-@var{Result}: @code{REAL(KIND=1)}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Return the number of seconds of runtime +-since the start of the process's execution +-in @var{Result}, +-and the user and system components of this in @samp{@var{TArray}(1)} +-and @samp{@var{TArray}(2)} respectively. +-The value of @var{Result} is equal to @samp{@var{TArray}(1) + @var{TArray}(2)}. +- +-@cindex wraparound, timings +-@cindex limits, timings +-On some systems, the underlying timings are represented +-using types with sufficiently small limits that overflows +-(wraparounds) are possible, such as 32-bit types. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine. +- +-For information on other intrinsics with the same name: +-@xref{ETime Intrinsic (function)}. +- +-@node ETime Intrinsic (function) +-@subsubsection ETime Intrinsic (function) +-@cindex ETime intrinsic +-@cindex intrinsics, ETime +- +-@noindent +-@example +-ETime(@var{TArray}) +-@end example +- +-@noindent +-ETime: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{TArray}: @code{REAL(KIND=1)}; DIMENSION(2); INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Return the number of seconds of runtime +-since the start of the process's execution +-as the function value, +-and the user and system components of this in @samp{@var{TArray}(1)} +-and @samp{@var{TArray}(2)} respectively. +-The functions' value is equal to @samp{@var{TArray}(1) + @var{TArray}(2)}. +- +-@cindex wraparound, timings +-@cindex limits, timings +-On some systems, the underlying timings are represented +-using types with sufficiently small limits that overflows +-(wraparounds) are possible, such as 32-bit types. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-For information on other intrinsics with the same name: +-@xref{ETime Intrinsic (subroutine)}. +- +-@node Exit Intrinsic +-@subsubsection Exit Intrinsic +-@cindex Exit intrinsic +-@cindex intrinsics, Exit +- +-@noindent +-@example +-CALL Exit(@var{Status}) +-@end example +- +-@noindent +-@var{Status}: @code{INTEGER}; OPTIONAL; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Exit the program with status @var{Status} after closing open Fortran +-I/O units and otherwise behaving as @code{exit(2)}. +-If @var{Status} is omitted the canonical `success' value +-will be returned to the system. +- +-@end ifset +-@ifset familyF77 +-@node Exp Intrinsic +-@subsubsection Exp Intrinsic +-@cindex Exp intrinsic +-@cindex intrinsics, Exp +- +-@noindent +-@example +-Exp(@var{X}) +-@end example +- +-@noindent +-Exp: @code{REAL} or @code{COMPLEX} function, the exact type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL} or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @samp{@var{e}**@var{X}}, where +-@var{e} is approximately 2.7182818. +- +-@xref{Log Intrinsic}, for the inverse of this function. +- +-@end ifset +-@ifset familyF90 +-@node Exponent Intrinsic +-@subsubsection Exponent Intrinsic +-@cindex Exponent intrinsic +-@cindex intrinsics, Exponent +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Exponent} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node FDate Intrinsic (subroutine) +-@subsubsection FDate Intrinsic (subroutine) +-@cindex FDate intrinsic +-@cindex intrinsics, FDate +- +-@noindent +-@example +-CALL FDate(@var{Date}) +-@end example +- +-@noindent +-@var{Date}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the current date (using the same format as @code{CTIME()}) +-in @var{Date}. +- +-Equivalent to: +- +-@example +-CALL CTIME(@var{Date}, TIME8()) +-@end example +- +-@cindex Y10K compliance +-@cindex Year 10000 compliance +-@cindex wraparound, Y10K +-@cindex limits, Y10K +-Programs making use of this intrinsic +-might not be Year 10000 (Y10K) compliant. +-For example, the date might appear, +-to such programs, to wrap around +-(change from a larger value to a smaller one) +-as of the Year 10000. +- +-@xref{CTime Intrinsic (subroutine)}. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine. +- +-For information on other intrinsics with the same name: +-@xref{FDate Intrinsic (function)}. +- +-@node FDate Intrinsic (function) +-@subsubsection FDate Intrinsic (function) +-@cindex FDate intrinsic +-@cindex intrinsics, FDate +- +-@noindent +-@example +-FDate() +-@end example +- +-@noindent +-FDate: @code{CHARACTER*(*)} function. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the current date (using the same format as @code{CTIME()}). +- +-Equivalent to: +- +-@example +-CTIME(TIME8()) +-@end example +- +-@cindex Y10K compliance +-@cindex Year 10000 compliance +-@cindex wraparound, Y10K +-@cindex limits, Y10K +-Programs making use of this intrinsic +-might not be Year 10000 (Y10K) compliant. +-For example, the date might appear, +-to such programs, to wrap around +-(change from a larger value to a smaller one) +-as of the Year 10000. +- +-@xref{CTime Intrinsic (function)}. +- +-For information on other intrinsics with the same name: +-@xref{FDate Intrinsic (subroutine)}. +- +-@node FGet Intrinsic (subroutine) +-@subsubsection FGet Intrinsic (subroutine) +-@cindex FGet intrinsic +-@cindex intrinsics, FGet +- +-@noindent +-@example +-CALL FGet(@var{C}, @var{Status}) +-@end example +- +-@noindent +-@var{C}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Reads a single character into @var{C} in stream mode from unit 5 +-(by-passing normal formatted output) using @code{getc(3)}. +-Returns in +-@var{Status} 0 on success, @minus{}1 on end-of-file, and the error code +-from @code{ferror(3)} otherwise. +- +-Stream I/O should not be mixed with normal record-oriented (formatted or +-unformatted) I/O on the same unit; the results are unpredictable. +- +-For information on other intrinsics with the same name: +-@xref{FGet Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node FGet Intrinsic (function) +-@subsubsection FGet Intrinsic (function) +-@cindex FGet intrinsic +-@cindex intrinsics, FGet +- +-@noindent +-@example +-FGet(@var{C}) +-@end example +- +-@noindent +-FGet: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{C}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Reads a single character into @var{C} in stream mode from unit 5 +-(by-passing normal formatted input) using @code{getc(3)}. +-Returns 0 on +-success, @minus{}1 on end-of-file, and the error code from +-@code{ferror(3)} otherwise. +- +-Stream I/O should not be mixed with normal record-oriented (formatted or +-unformatted) I/O on the same unit; the results are unpredictable. +- +-For information on other intrinsics with the same name: +-@xref{FGet Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF2U +-@node FGetC Intrinsic (subroutine) +-@subsubsection FGetC Intrinsic (subroutine) +-@cindex FGetC intrinsic +-@cindex intrinsics, FGetC +- +-@noindent +-@example +-CALL FGetC(@var{Unit}, @var{C}, @var{Status}) +-@end example +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{C}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Reads a single character into @var{C} in stream mode from unit @var{Unit} +-(by-passing normal formatted output) using @code{getc(3)}. +-Returns in +-@var{Status} 0 on success, @minus{}1 on end-of-file, and the error code from +-@code{ferror(3)} otherwise. +- +-Stream I/O should not be mixed with normal record-oriented (formatted or +-unformatted) I/O on the same unit; the results are unpredictable. +- +-For information on other intrinsics with the same name: +-@xref{FGetC Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node FGetC Intrinsic (function) +-@subsubsection FGetC Intrinsic (function) +-@cindex FGetC intrinsic +-@cindex intrinsics, FGetC +- +-@noindent +-@example +-FGetC(@var{Unit}, @var{C}) +-@end example +- +-@noindent +-FGetC: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{C}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Reads a single character into @var{C} in stream mode from unit @var{Unit} +-(by-passing normal formatted output) using @code{getc(3)}. +-Returns 0 on +-success, @minus{}1 on end-of-file, and the error code from +-@code{ferror(3)} otherwise. +- +-Stream I/O should not be mixed with normal record-oriented (formatted or +-unformatted) I/O on the same unit; the results are unpredictable. +- +-For information on other intrinsics with the same name: +-@xref{FGetC Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF77 +-@node Float Intrinsic +-@subsubsection Float Intrinsic +-@cindex Float intrinsic +-@cindex intrinsics, Float +- +-@noindent +-@example +-Float(@var{A}) +-@end example +- +-@noindent +-Float: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{A}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{REAL()} that is specific +-to one type for @var{A}. +-@xref{Real Intrinsic}. +- +-@end ifset +-@ifset familyVXT +-@node FloatI Intrinsic +-@subsubsection FloatI Intrinsic +-@cindex FloatI intrinsic +-@cindex intrinsics, FloatI +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL FloatI} to use this name for an +-external procedure. +- +-@node FloatJ Intrinsic +-@subsubsection FloatJ Intrinsic +-@cindex FloatJ intrinsic +-@cindex intrinsics, FloatJ +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL FloatJ} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF90 +-@node Floor Intrinsic +-@subsubsection Floor Intrinsic +-@cindex Floor intrinsic +-@cindex intrinsics, Floor +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Floor} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node Flush Intrinsic +-@subsubsection Flush Intrinsic +-@cindex Flush intrinsic +-@cindex intrinsics, Flush +- +-@noindent +-@example +-CALL Flush(@var{Unit}) +-@end example +- +-@noindent +-@var{Unit}: @code{INTEGER}; OPTIONAL; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Flushes Fortran unit(s) currently open for output. +-Without the optional argument, all such units are flushed, +-otherwise just the unit specified by @var{Unit}. +- +-Some non-GNU implementations of Fortran provide this intrinsic +-as a library procedure that might or might not support the +-(optional) @var{Unit} argument. +- +-@node FNum Intrinsic +-@subsubsection FNum Intrinsic +-@cindex FNum intrinsic +-@cindex intrinsics, FNum +- +-@noindent +-@example +-FNum(@var{Unit}) +-@end example +- +-@noindent +-FNum: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the Unix file descriptor number corresponding to the open +-Fortran I/O unit @var{Unit}. +-This could be passed to an interface to C I/O routines. +- +-@node FPut Intrinsic (subroutine) +-@subsubsection FPut Intrinsic (subroutine) +-@cindex FPut intrinsic +-@cindex intrinsics, FPut +- +-@noindent +-@example +-CALL FPut(@var{C}, @var{Status}) +-@end example +- +-@noindent +-@var{C}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Writes the single character @var{C} in stream mode to unit 6 +-(by-passing normal formatted output) using @code{putc(3)}. +-Returns in +-@var{Status} 0 on success, the error code from @code{ferror(3)} otherwise. +- +-Stream I/O should not be mixed with normal record-oriented (formatted or +-unformatted) I/O on the same unit; the results are unpredictable. +- +-For information on other intrinsics with the same name: +-@xref{FPut Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node FPut Intrinsic (function) +-@subsubsection FPut Intrinsic (function) +-@cindex FPut intrinsic +-@cindex intrinsics, FPut +- +-@noindent +-@example +-FPut(@var{C}) +-@end example +- +-@noindent +-FPut: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{C}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Writes the single character @var{C} in stream mode to unit 6 +-(by-passing normal formatted output) using @code{getc(3)}. +-Returns 0 on +-success, the error code from @code{ferror(3)} otherwise. +- +-Stream I/O should not be mixed with normal record-oriented (formatted or +-unformatted) I/O on the same unit; the results are unpredictable. +- +-For information on other intrinsics with the same name: +-@xref{FPut Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF2U +-@node FPutC Intrinsic (subroutine) +-@subsubsection FPutC Intrinsic (subroutine) +-@cindex FPutC intrinsic +-@cindex intrinsics, FPutC +- +-@noindent +-@example +-CALL FPutC(@var{Unit}, @var{C}, @var{Status}) +-@end example +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{C}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Writes the single character @var{Unit} in stream mode to unit 6 +-(by-passing normal formatted output) using @code{putc(3)}. +-Returns in +-@var{C} 0 on success, the error code from @code{ferror(3)} otherwise. +- +-Stream I/O should not be mixed with normal record-oriented (formatted or +-unformatted) I/O on the same unit; the results are unpredictable. +- +-For information on other intrinsics with the same name: +-@xref{FPutC Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node FPutC Intrinsic (function) +-@subsubsection FPutC Intrinsic (function) +-@cindex FPutC intrinsic +-@cindex intrinsics, FPutC +- +-@noindent +-@example +-FPutC(@var{Unit}, @var{C}) +-@end example +- +-@noindent +-FPutC: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{C}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Writes the single character @var{C} in stream mode to unit @var{Unit} +-(by-passing normal formatted output) using @code{putc(3)}. +-Returns 0 on +-success, the error code from @code{ferror(3)} otherwise. +- +-Stream I/O should not be mixed with normal record-oriented (formatted or +-unformatted) I/O on the same unit; the results are unpredictable. +- +-For information on other intrinsics with the same name: +-@xref{FPutC Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF90 +-@node Fraction Intrinsic +-@subsubsection Fraction Intrinsic +-@cindex Fraction intrinsic +-@cindex intrinsics, Fraction +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Fraction} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node FSeek Intrinsic +-@subsubsection FSeek Intrinsic +-@cindex FSeek intrinsic +-@cindex intrinsics, FSeek +- +-@noindent +-@example +-CALL FSeek(@var{Unit}, @var{Offset}, @var{Whence}, @var{ErrLab}) +-@end example +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Offset}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Whence}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{ErrLab}: @samp{*@var{label}}, where @var{label} is the label +-of an executable statement; OPTIONAL. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Attempts to move Fortran unit @var{Unit} to the specified +-@var{Offset}: absolute offset if @var{Whence}=0; relative to the +-current offset if @var{Whence}=1; relative to the end of the file if +-@var{Whence}=2. +-It branches to label @var{ErrLab} if @var{Unit} is +-not open or if the call otherwise fails. +- +-@node FStat Intrinsic (subroutine) +-@subsubsection FStat Intrinsic (subroutine) +-@cindex FStat intrinsic +-@cindex intrinsics, FStat +- +-@noindent +-@example +-CALL FStat(@var{Unit}, @var{SArray}, @var{Status}) +-@end example +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Obtains data about the file open on Fortran I/O unit @var{Unit} and +-places them in the array @var{SArray}. +-The values in this array are +-extracted from the @code{stat} structure as returned by +-@code{fstat(2)} q.v., as follows: +- +-@enumerate +-@item +-Device ID +- +-@item +-Inode number +- +-@item +-File mode +- +-@item +-Number of links +- +-@item +-Owner's uid +- +-@item +-Owner's gid +- +-@item +-ID of device containing directory entry for file +-(0 if not available) +- +-@item +-File size (bytes) +- +-@item +-Last access time +- +-@item +-Last modification time +- +-@item +-Last file status change time +- +-@item +-Preferred I/O block size (-1 if not available) +- +-@item +-Number of blocks allocated (-1 if not available) +-@end enumerate +- +-Not all these elements are relevant on all systems. +-If an element is not relevant, it is returned as 0. +- +-If the @var{Status} argument is supplied, it contains +-0 on success or a non-zero error code upon return. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{FStat Intrinsic (function)}. +- +-@node FStat Intrinsic (function) +-@subsubsection FStat Intrinsic (function) +-@cindex FStat intrinsic +-@cindex intrinsics, FStat +- +-@noindent +-@example +-FStat(@var{Unit}, @var{SArray}) +-@end example +- +-@noindent +-FStat: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Obtains data about the file open on Fortran I/O unit @var{Unit} and +-places them in the array @var{SArray}. +-The values in this array are +-extracted from the @code{stat} structure as returned by +-@code{fstat(2)} q.v., as follows: +- +-@enumerate +-@item +-Device ID +- +-@item +-Inode number +- +-@item +-File mode +- +-@item +-Number of links +- +-@item +-Owner's uid +- +-@item +-Owner's gid +- +-@item +-ID of device containing directory entry for file +-(0 if not available) +- +-@item +-File size (bytes) +- +-@item +-Last access time +- +-@item +-Last modification time +- +-@item +-Last file status change time +- +-@item +-Preferred I/O block size (-1 if not available) +- +-@item +-Number of blocks allocated (-1 if not available) +-@end enumerate +- +-Not all these elements are relevant on all systems. +-If an element is not relevant, it is returned as 0. +- +-Returns 0 on success or a non-zero error code. +- +-For information on other intrinsics with the same name: +-@xref{FStat Intrinsic (subroutine)}. +- +-@node FTell Intrinsic (subroutine) +-@subsubsection FTell Intrinsic (subroutine) +-@cindex FTell intrinsic +-@cindex intrinsics, FTell +- +-@noindent +-@example +-CALL FTell(@var{Unit}, @var{Offset}) +-@end example +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Offset}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Sets @var{Offset} to the current offset of Fortran unit @var{Unit} +-(or to @minus{}1 if @var{Unit} is not open). +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine. +- +-For information on other intrinsics with the same name: +-@xref{FTell Intrinsic (function)}. +- +-@node FTell Intrinsic (function) +-@subsubsection FTell Intrinsic (function) +-@cindex FTell intrinsic +-@cindex intrinsics, FTell +- +-@noindent +-@example +-FTell(@var{Unit}) +-@end example +- +-@noindent +-FTell: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the current offset of Fortran unit @var{Unit} +-(or @minus{}1 if @var{Unit} is not open). +- +-For information on other intrinsics with the same name: +-@xref{FTell Intrinsic (subroutine)}. +- +-@node GError Intrinsic +-@subsubsection GError Intrinsic +-@cindex GError intrinsic +-@cindex intrinsics, GError +- +-@noindent +-@example +-CALL GError(@var{Message}) +-@end example +- +-@noindent +-@var{Message}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the system error message corresponding to the last system +-error (C @code{errno}). +- +-@node GetArg Intrinsic +-@subsubsection GetArg Intrinsic +-@cindex GetArg intrinsic +-@cindex intrinsics, GetArg +- +-@noindent +-@example +-CALL GetArg(@var{Pos}, @var{Value}) +-@end example +- +-@noindent +-@var{Pos}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Value}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Sets @var{Value} to the @var{Pos}-th command-line argument (or to all +-blanks if there are fewer than @var{Value} command-line arguments); +-@code{CALL GETARG(0, @var{value})} sets @var{value} to the name of the +-program (on systems that support this feature). +- +-@xref{IArgC Intrinsic}, for information on how to get the number +-of arguments. +- +-@node GetCWD Intrinsic (subroutine) +-@subsubsection GetCWD Intrinsic (subroutine) +-@cindex GetCWD intrinsic +-@cindex intrinsics, GetCWD +- +-@noindent +-@example +-CALL GetCWD(@var{Name}, @var{Status}) +-@end example +- +-@noindent +-@var{Name}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Places the current working directory in @var{Name}. +-If the @var{Status} argument is supplied, it contains 0 +-success or a non-zero error code upon return +-(@code{ENOSYS} if the system does not provide @code{getcwd(3)} +-or @code{getwd(3)}). +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{GetCWD Intrinsic (function)}. +- +-@node GetCWD Intrinsic (function) +-@subsubsection GetCWD Intrinsic (function) +-@cindex GetCWD intrinsic +-@cindex intrinsics, GetCWD +- +-@noindent +-@example +-GetCWD(@var{Name}) +-@end example +- +-@noindent +-GetCWD: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Name}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Places the current working directory in @var{Name}. +-Returns 0 on +-success, otherwise a non-zero error code +-(@code{ENOSYS} if the system does not provide @code{getcwd(3)} +-or @code{getwd(3)}). +- +-For information on other intrinsics with the same name: +-@xref{GetCWD Intrinsic (subroutine)}. +- +-@node GetEnv Intrinsic +-@subsubsection GetEnv Intrinsic +-@cindex GetEnv intrinsic +-@cindex intrinsics, GetEnv +- +-@noindent +-@example +-CALL GetEnv(@var{Name}, @var{Value}) +-@end example +- +-@noindent +-@var{Name}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Value}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Sets @var{Value} to the value of environment variable given by the +-value of @var{Name} (@code{$name} in shell terms) or to blanks if +-@code{$name} has not been set. +-A null character (@samp{CHAR(0)}) marks the end of +-the name in @var{Name}---otherwise, +-trailing blanks in @var{Name} are ignored. +- +-@node GetGId Intrinsic +-@subsubsection GetGId Intrinsic +-@cindex GetGId intrinsic +-@cindex intrinsics, GetGId +- +-@noindent +-@example +-GetGId() +-@end example +- +-@noindent +-GetGId: @code{INTEGER(KIND=1)} function. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the group id for the current process. +- +-@node GetLog Intrinsic +-@subsubsection GetLog Intrinsic +-@cindex GetLog intrinsic +-@cindex intrinsics, GetLog +- +-@noindent +-@example +-CALL GetLog(@var{Login}) +-@end example +- +-@noindent +-@var{Login}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the login name for the process in @var{Login}. +- +-@emph{Caution:} On some systems, the @code{getlogin(3)} +-function, which this intrinsic calls at run time, +-is either not implemented or returns a null pointer. +-In the latter case, this intrinsic returns blanks +-in @var{Login}. +- +-@node GetPId Intrinsic +-@subsubsection GetPId Intrinsic +-@cindex GetPId intrinsic +-@cindex intrinsics, GetPId +- +-@noindent +-@example +-GetPId() +-@end example +- +-@noindent +-GetPId: @code{INTEGER(KIND=1)} function. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the process id for the current process. +- +-@node GetUId Intrinsic +-@subsubsection GetUId Intrinsic +-@cindex GetUId intrinsic +-@cindex intrinsics, GetUId +- +-@noindent +-@example +-GetUId() +-@end example +- +-@noindent +-GetUId: @code{INTEGER(KIND=1)} function. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the user id for the current process. +- +-@node GMTime Intrinsic +-@subsubsection GMTime Intrinsic +-@cindex GMTime intrinsic +-@cindex intrinsics, GMTime +- +-@noindent +-@example +-CALL GMTime(@var{STime}, @var{TArray}) +-@end example +- +-@noindent +-@var{STime}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-@var{TArray}: @code{INTEGER(KIND=1)}; DIMENSION(9); INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Given a system time value @var{STime}, fills @var{TArray} with values +-extracted from it appropriate to the GMT time zone using +-@code{gmtime(3)}. +- +-The array elements are as follows: +- +-@enumerate +-@item +-Seconds after the minute, range 0--59 or 0--61 to allow for leap +-seconds +- +-@item +-Minutes after the hour, range 0--59 +- +-@item +-Hours past midnight, range 0--23 +- +-@item +-Day of month, range 0--31 +- +-@item +-Number of months since January, range 0--12 +- +-@item +-Years since 1900 +- +-@item +-Number of days since Sunday, range 0--6 +- +-@item +-Days since January 1 +- +-@item +-Daylight savings indicator: positive if daylight savings is in effect, +-zero if not, and negative if the information isn't available. +-@end enumerate +- +-@node HostNm Intrinsic (subroutine) +-@subsubsection HostNm Intrinsic (subroutine) +-@cindex HostNm intrinsic +-@cindex intrinsics, HostNm +- +-@noindent +-@example +-CALL HostNm(@var{Name}, @var{Status}) +-@end example +- +-@noindent +-@var{Name}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Fills @var{Name} with the system's host name returned by +-@code{gethostname(2)}. +-If the @var{Status} argument is supplied, it contains +-0 on success or a non-zero error code upon return +-(@code{ENOSYS} if the system does not provide @code{gethostname(2)}). +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-On some systems (specifically SCO) it might be necessary to link the +-``socket'' library if you call this routine. +-Typically this means adding @samp{-lg2c -lsocket -lm} +-to the @code{g77} command line when linking the program. +- +-For information on other intrinsics with the same name: +-@xref{HostNm Intrinsic (function)}. +- +-@node HostNm Intrinsic (function) +-@subsubsection HostNm Intrinsic (function) +-@cindex HostNm intrinsic +-@cindex intrinsics, HostNm +- +-@noindent +-@example +-HostNm(@var{Name}) +-@end example +- +-@noindent +-HostNm: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Name}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Fills @var{Name} with the system's host name returned by +-@code{gethostname(2)}, returning 0 on success or a non-zero error code +-(@code{ENOSYS} if the system does not provide @code{gethostname(2)}). +- +-On some systems (specifically SCO) it might be necessary to link the +-``socket'' library if you call this routine. +-Typically this means adding @samp{-lg2c -lsocket -lm} +-to the @code{g77} command line when linking the program. +- +-For information on other intrinsics with the same name: +-@xref{HostNm Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF90 +-@node Huge Intrinsic +-@subsubsection Huge Intrinsic +-@cindex Huge intrinsic +-@cindex intrinsics, Huge +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Huge} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node IAbs Intrinsic +-@subsubsection IAbs Intrinsic +-@cindex IAbs intrinsic +-@cindex intrinsics, IAbs +- +-@noindent +-@example +-IAbs(@var{A}) +-@end example +- +-@noindent +-IAbs: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{ABS()} that is specific +-to one type for @var{A}. +-@xref{Abs Intrinsic}. +- +-@end ifset +-@ifset familyASC +-@node IAChar Intrinsic +-@subsubsection IAChar Intrinsic +-@cindex IAChar intrinsic +-@cindex intrinsics, IAChar +- +-@noindent +-@example +-IAChar(@var{C}) +-@end example +- +-@noindent +-IAChar: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{C}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}, @code{f90}. +- +-@noindent +-Description: +- +-Returns the code for the ASCII character in the +-first character position of @var{C}. +- +-@xref{AChar Intrinsic}, for the inverse of this function. +- +-@xref{IChar Intrinsic}, for the function corresponding +-to the system's native character set. +- +-@end ifset +-@ifset familyMIL +-@node IAnd Intrinsic +-@subsubsection IAnd Intrinsic +-@cindex IAnd intrinsic +-@cindex intrinsics, IAnd +- +-@noindent +-@example +-IAnd(@var{I}, @var{J}) +-@end example +- +-@noindent +-IAnd: @code{INTEGER} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{J}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}. +- +-@noindent +-Description: +- +-Returns value resulting from boolean AND of +-pair of bits in each of @var{I} and @var{J}. +- +-@end ifset +-@ifset familyF2U +-@node IArgC Intrinsic +-@subsubsection IArgC Intrinsic +-@cindex IArgC intrinsic +-@cindex intrinsics, IArgC +- +-@noindent +-@example +-IArgC() +-@end example +- +-@noindent +-IArgC: @code{INTEGER(KIND=1)} function. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the number of command-line arguments. +- +-This count does not include the specification of the program +-name itself. +- +-@end ifset +-@ifset familyMIL +-@node IBClr Intrinsic +-@subsubsection IBClr Intrinsic +-@cindex IBClr intrinsic +-@cindex intrinsics, IBClr +- +-@noindent +-@example +-IBClr(@var{I}, @var{Pos}) +-@end example +- +-@noindent +-IBClr: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Pos}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}. +- +-@noindent +-Description: +- +-Returns the value of @var{I} with bit @var{Pos} cleared (set to +-zero). +-@xref{BTest Intrinsic}, for information on bit positions. +- +-@node IBits Intrinsic +-@subsubsection IBits Intrinsic +-@cindex IBits intrinsic +-@cindex intrinsics, IBits +- +-@noindent +-@example +-IBits(@var{I}, @var{Pos}, @var{Len}) +-@end example +- +-@noindent +-IBits: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Pos}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Len}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}. +- +-@noindent +-Description: +- +-Extracts a subfield of length @var{Len} from @var{I}, starting from +-bit position @var{Pos} and extending left for @var{Len} bits. +-The result is right-justified and the remaining bits are zeroed. +-The value +-of @samp{@var{Pos}+@var{Len}} must be less than or equal to the value +-@samp{BIT_SIZE(@var{I})}. +-@xref{Bit_Size Intrinsic}. +- +-@node IBSet Intrinsic +-@subsubsection IBSet Intrinsic +-@cindex IBSet intrinsic +-@cindex intrinsics, IBSet +- +-@noindent +-@example +-IBSet(@var{I}, @var{Pos}) +-@end example +- +-@noindent +-IBSet: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Pos}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}. +- +-@noindent +-Description: +- +-Returns the value of @var{I} with bit @var{Pos} set (to one). +-@xref{BTest Intrinsic}, for information on bit positions. +- +-@end ifset +-@ifset familyF77 +-@node IChar Intrinsic +-@subsubsection IChar Intrinsic +-@cindex IChar intrinsic +-@cindex intrinsics, IChar +- +-@noindent +-@example +-IChar(@var{C}) +-@end example +- +-@noindent +-IChar: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{C}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the code for the character in the +-first character position of @var{C}. +- +-Because the system's native character set is used, +-the correspondence between character and their codes +-is not necessarily the same between GNU Fortran +-implementations. +- +-Note that no intrinsic exists to convert a printable +-character string to a numerical value. +-For example, there is no intrinsic that, given +-the @code{CHARACTER} value @samp{'154'}, returns an +-@code{INTEGER} or @code{REAL} value with the value @samp{154}. +- +-Instead, you can use internal-file I/O to do this kind +-of conversion. +-For example: +- +-@smallexample +-INTEGER VALUE +-CHARACTER*10 STRING +-STRING = '154' +-READ (STRING, '(I10)'), VALUE +-PRINT *, VALUE +-END +-@end smallexample +- +-The above program, when run, prints: +- +-@smallexample +- 154 +-@end smallexample +- +-@xref{Char Intrinsic}, for the inverse of the @code{ICHAR} function. +- +-@xref{IAChar Intrinsic}, for the function corresponding +-to the ASCII character set. +- +-@end ifset +-@ifset familyF2U +-@node IDate Intrinsic (UNIX) +-@subsubsection IDate Intrinsic (UNIX) +-@cindex IDate intrinsic +-@cindex intrinsics, IDate +- +-@noindent +-@example +-CALL IDate(@var{TArray}) +-@end example +- +-@noindent +-@var{TArray}: @code{INTEGER(KIND=1)}; DIMENSION(3); INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Fills @var{TArray} with the numerical values at the current local time +-of day, month (in the range 1--12), and year in elements 1, 2, and 3, +-respectively. +-The year has four significant digits. +- +-@cindex Y10K compliance +-@cindex Year 10000 compliance +-@cindex wraparound, Y10K +-@cindex limits, Y10K +-Programs making use of this intrinsic +-might not be Year 10000 (Y10K) compliant. +-For example, the date might appear, +-to such programs, to wrap around +-(change from a larger value to a smaller one) +-as of the Year 10000. +- +-For information on other intrinsics with the same name: +-@xref{IDate Intrinsic (VXT)}. +- +-@end ifset +-@ifset familyVXT +-@node IDate Intrinsic (VXT) +-@subsubsection IDate Intrinsic (VXT) +-@cindex IDate intrinsic +-@cindex intrinsics, IDate +- +-@noindent +-@example +-CALL IDate(@var{M}, @var{D}, @var{Y}) +-@end example +- +-@noindent +-@var{M}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT). +- +-@noindent +-@var{D}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT). +- +-@noindent +-@var{Y}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{vxt}. +- +-@noindent +-Description: +- +-Returns the numerical values of the current local time. +-The month (in the range 1--12) is returned in @var{M}, +-the day (in the range 1--7) in @var{D}, +-and the year in @var{Y} (in the range 0--99). +- +-@cindex Y2K compliance +-@cindex Year 2000 compliance +-@cindex wraparound, Y2K +-@cindex limits, Y2K +-This intrinsic is not recommended, due to the year 2000 approaching. +-Therefore, programs making use of this intrinsic +-might not be Year 2000 (Y2K) compliant. +-For example, the date might appear, +-to such programs, to wrap around +-(change from a larger value to a smaller one) +-as of the Year 2000. +- +-@xref{IDate Intrinsic (UNIX)}, for information on obtaining more digits +-for the current date. +- +-For information on other intrinsics with the same name: +-@xref{IDate Intrinsic (UNIX)}. +- +-@end ifset +-@ifset familyF77 +-@node IDiM Intrinsic +-@subsubsection IDiM Intrinsic +-@cindex IDiM intrinsic +-@cindex intrinsics, IDiM +- +-@noindent +-@example +-IDiM(@var{X}, @var{Y}) +-@end example +- +-@noindent +-IDiM: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{X}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-@var{Y}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{DIM()} that is specific +-to one type for @var{X} and @var{Y}. +-@xref{DiM Intrinsic}. +- +-@node IDInt Intrinsic +-@subsubsection IDInt Intrinsic +-@cindex IDInt intrinsic +-@cindex intrinsics, IDInt +- +-@noindent +-@example +-IDInt(@var{A}) +-@end example +- +-@noindent +-IDInt: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{INT()} that is specific +-to one type for @var{A}. +-@xref{Int Intrinsic}. +- +-@node IDNInt Intrinsic +-@subsubsection IDNInt Intrinsic +-@cindex IDNInt intrinsic +-@cindex intrinsics, IDNInt +- +-@noindent +-@example +-IDNInt(@var{A}) +-@end example +- +-@noindent +-IDNInt: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{NINT()} that is specific +-to one type for @var{A}. +-@xref{NInt Intrinsic}. +- +-@end ifset +-@ifset familyMIL +-@node IEOr Intrinsic +-@subsubsection IEOr Intrinsic +-@cindex IEOr intrinsic +-@cindex intrinsics, IEOr +- +-@noindent +-@example +-IEOr(@var{I}, @var{J}) +-@end example +- +-@noindent +-IEOr: @code{INTEGER} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{J}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}. +- +-@noindent +-Description: +- +-Returns value resulting from boolean exclusive-OR of +-pair of bits in each of @var{I} and @var{J}. +- +-@end ifset +-@ifset familyF2U +-@node IErrNo Intrinsic +-@subsubsection IErrNo Intrinsic +-@cindex IErrNo intrinsic +-@cindex intrinsics, IErrNo +- +-@noindent +-@example +-IErrNo() +-@end example +- +-@noindent +-IErrNo: @code{INTEGER(KIND=1)} function. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the last system error number (corresponding to the C +-@code{errno}). +- +-@end ifset +-@ifset familyF77 +-@node IFix Intrinsic +-@subsubsection IFix Intrinsic +-@cindex IFix intrinsic +-@cindex intrinsics, IFix +- +-@noindent +-@example +-IFix(@var{A}) +-@end example +- +-@noindent +-IFix: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{INT()} that is specific +-to one type for @var{A}. +-@xref{Int Intrinsic}. +- +-@end ifset +-@ifset familyVXT +-@node IIAbs Intrinsic +-@subsubsection IIAbs Intrinsic +-@cindex IIAbs intrinsic +-@cindex intrinsics, IIAbs +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIAbs} to use this name for an +-external procedure. +- +-@node IIAnd Intrinsic +-@subsubsection IIAnd Intrinsic +-@cindex IIAnd intrinsic +-@cindex intrinsics, IIAnd +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIAnd} to use this name for an +-external procedure. +- +-@node IIBClr Intrinsic +-@subsubsection IIBClr Intrinsic +-@cindex IIBClr intrinsic +-@cindex intrinsics, IIBClr +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIBClr} to use this name for an +-external procedure. +- +-@node IIBits Intrinsic +-@subsubsection IIBits Intrinsic +-@cindex IIBits intrinsic +-@cindex intrinsics, IIBits +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIBits} to use this name for an +-external procedure. +- +-@node IIBSet Intrinsic +-@subsubsection IIBSet Intrinsic +-@cindex IIBSet intrinsic +-@cindex intrinsics, IIBSet +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIBSet} to use this name for an +-external procedure. +- +-@node IIDiM Intrinsic +-@subsubsection IIDiM Intrinsic +-@cindex IIDiM intrinsic +-@cindex intrinsics, IIDiM +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIDiM} to use this name for an +-external procedure. +- +-@node IIDInt Intrinsic +-@subsubsection IIDInt Intrinsic +-@cindex IIDInt intrinsic +-@cindex intrinsics, IIDInt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIDInt} to use this name for an +-external procedure. +- +-@node IIDNnt Intrinsic +-@subsubsection IIDNnt Intrinsic +-@cindex IIDNnt intrinsic +-@cindex intrinsics, IIDNnt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIDNnt} to use this name for an +-external procedure. +- +-@node IIEOr Intrinsic +-@subsubsection IIEOr Intrinsic +-@cindex IIEOr intrinsic +-@cindex intrinsics, IIEOr +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIEOr} to use this name for an +-external procedure. +- +-@node IIFix Intrinsic +-@subsubsection IIFix Intrinsic +-@cindex IIFix intrinsic +-@cindex intrinsics, IIFix +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIFix} to use this name for an +-external procedure. +- +-@node IInt Intrinsic +-@subsubsection IInt Intrinsic +-@cindex IInt intrinsic +-@cindex intrinsics, IInt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IInt} to use this name for an +-external procedure. +- +-@node IIOr Intrinsic +-@subsubsection IIOr Intrinsic +-@cindex IIOr intrinsic +-@cindex intrinsics, IIOr +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIOr} to use this name for an +-external procedure. +- +-@node IIQint Intrinsic +-@subsubsection IIQint Intrinsic +-@cindex IIQint intrinsic +-@cindex intrinsics, IIQint +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIQint} to use this name for an +-external procedure. +- +-@node IIQNnt Intrinsic +-@subsubsection IIQNnt Intrinsic +-@cindex IIQNnt intrinsic +-@cindex intrinsics, IIQNnt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIQNnt} to use this name for an +-external procedure. +- +-@node IIShftC Intrinsic +-@subsubsection IIShftC Intrinsic +-@cindex IIShftC intrinsic +-@cindex intrinsics, IIShftC +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IIShftC} to use this name for an +-external procedure. +- +-@node IISign Intrinsic +-@subsubsection IISign Intrinsic +-@cindex IISign intrinsic +-@cindex intrinsics, IISign +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IISign} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2C +-@node Imag Intrinsic +-@subsubsection Imag Intrinsic +-@cindex Imag intrinsic +-@cindex intrinsics, Imag +- +-@noindent +-@example +-Imag(@var{Z}) +-@end example +- +-@noindent +-Imag: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{Z}. +- +-@noindent +-@var{Z}: @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-The imaginary part of @var{Z} is returned, without conversion. +- +-@emph{Note:} The way to do this in standard Fortran 90 +-is @samp{AIMAG(@var{Z})}. +-However, when, for example, @var{Z} is @code{DOUBLE COMPLEX}, +-@samp{AIMAG(@var{Z})} means something different for some compilers +-that are not true Fortran 90 compilers but offer some +-extensions standardized by Fortran 90 (such as the +-@code{DOUBLE COMPLEX} type, also known as @code{COMPLEX(KIND=2)}). +- +-The advantage of @code{IMAG()} is that, while not necessarily +-more or less portable than @code{AIMAG()}, it is more likely to +-cause a compiler that doesn't support it to produce a diagnostic +-than generate incorrect code. +- +-@xref{REAL() and AIMAG() of Complex}, for more information. +- +-@end ifset +-@ifset familyGNU +-@node ImagPart Intrinsic +-@subsubsection ImagPart Intrinsic +-@cindex ImagPart intrinsic +-@cindex intrinsics, ImagPart +- +-@noindent +-@example +-ImagPart(@var{Z}) +-@end example +- +-@noindent +-ImagPart: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{Z}. +- +-@noindent +-@var{Z}: @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{gnu}. +- +-@noindent +-Description: +- +-The imaginary part of @var{Z} is returned, without conversion. +- +-@emph{Note:} The way to do this in standard Fortran 90 +-is @samp{AIMAG(@var{Z})}. +-However, when, for example, @var{Z} is @code{DOUBLE COMPLEX}, +-@samp{AIMAG(@var{Z})} means something different for some compilers +-that are not true Fortran 90 compilers but offer some +-extensions standardized by Fortran 90 (such as the +-@code{DOUBLE COMPLEX} type, also known as @code{COMPLEX(KIND=2)}). +- +-The advantage of @code{IMAGPART()} is that, while not necessarily +-more or less portable than @code{AIMAG()}, it is more likely to +-cause a compiler that doesn't support it to produce a diagnostic +-than generate incorrect code. +- +-@xref{REAL() and AIMAG() of Complex}, for more information. +- +-@end ifset +-@ifset familyVXT +-@node IMax0 Intrinsic +-@subsubsection IMax0 Intrinsic +-@cindex IMax0 intrinsic +-@cindex intrinsics, IMax0 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IMax0} to use this name for an +-external procedure. +- +-@node IMax1 Intrinsic +-@subsubsection IMax1 Intrinsic +-@cindex IMax1 intrinsic +-@cindex intrinsics, IMax1 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IMax1} to use this name for an +-external procedure. +- +-@node IMin0 Intrinsic +-@subsubsection IMin0 Intrinsic +-@cindex IMin0 intrinsic +-@cindex intrinsics, IMin0 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IMin0} to use this name for an +-external procedure. +- +-@node IMin1 Intrinsic +-@subsubsection IMin1 Intrinsic +-@cindex IMin1 intrinsic +-@cindex intrinsics, IMin1 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IMin1} to use this name for an +-external procedure. +- +-@node IMod Intrinsic +-@subsubsection IMod Intrinsic +-@cindex IMod intrinsic +-@cindex intrinsics, IMod +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IMod} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node Index Intrinsic +-@subsubsection Index Intrinsic +-@cindex Index intrinsic +-@cindex intrinsics, Index +- +-@noindent +-@example +-Index(@var{String}, @var{Substring}) +-@end example +- +-@noindent +-Index: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{String}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Substring}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the position of the start of the first occurrence of string +-@var{Substring} as a substring in @var{String}, counting from one. +-If @var{Substring} doesn't occur in @var{String}, zero is returned. +- +-@end ifset +-@ifset familyVXT +-@node INInt Intrinsic +-@subsubsection INInt Intrinsic +-@cindex INInt intrinsic +-@cindex intrinsics, INInt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL INInt} to use this name for an +-external procedure. +- +-@node INot Intrinsic +-@subsubsection INot Intrinsic +-@cindex INot intrinsic +-@cindex intrinsics, INot +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL INot} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node Int Intrinsic +-@subsubsection Int Intrinsic +-@cindex Int intrinsic +-@cindex intrinsics, Int +- +-@noindent +-@example +-Int(@var{A}) +-@end example +- +-@noindent +-Int: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @var{A} with the fractional portion of its +-magnitude truncated and its sign preserved, converted +-to type @code{INTEGER(KIND=1)}. +- +-If @var{A} is type @code{COMPLEX}, its real part is +-truncated and converted, and its imaginary part is disregarded. +- +-@xref{NInt Intrinsic}, for how to convert, rounded to nearest +-whole number. +- +-@xref{AInt Intrinsic}, for how to truncate to whole number +-without converting. +- +-@end ifset +-@ifset familyGNU +-@node Int2 Intrinsic +-@subsubsection Int2 Intrinsic +-@cindex Int2 intrinsic +-@cindex intrinsics, Int2 +- +-@noindent +-@example +-Int2(@var{A}) +-@end example +- +-@noindent +-Int2: @code{INTEGER(KIND=6)} function. +- +-@noindent +-@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{gnu}. +- +-@noindent +-Description: +- +-Returns @var{A} with the fractional portion of its +-magnitude truncated and its sign preserved, converted +-to type @code{INTEGER(KIND=6)}. +- +-If @var{A} is type @code{COMPLEX}, its real part +-is truncated and converted, and its imaginary part is disgregarded. +- +-@xref{Int Intrinsic}. +- +-The precise meaning of this intrinsic might change +-in a future version of the GNU Fortran language, +-as more is learned about how it is used. +- +-@node Int8 Intrinsic +-@subsubsection Int8 Intrinsic +-@cindex Int8 intrinsic +-@cindex intrinsics, Int8 +- +-@noindent +-@example +-Int8(@var{A}) +-@end example +- +-@noindent +-Int8: @code{INTEGER(KIND=2)} function. +- +-@noindent +-@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{gnu}. +- +-@noindent +-Description: +- +-Returns @var{A} with the fractional portion of its +-magnitude truncated and its sign preserved, converted +-to type @code{INTEGER(KIND=2)}. +- +-If @var{A} is type @code{COMPLEX}, its real part +-is truncated and converted, and its imaginary part is disgregarded. +- +-@xref{Int Intrinsic}. +- +-The precise meaning of this intrinsic might change +-in a future version of the GNU Fortran language, +-as more is learned about how it is used. +- +-@end ifset +-@ifset familyMIL +-@node IOr Intrinsic +-@subsubsection IOr Intrinsic +-@cindex IOr intrinsic +-@cindex intrinsics, IOr +- +-@noindent +-@example +-IOr(@var{I}, @var{J}) +-@end example +- +-@noindent +-IOr: @code{INTEGER} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{J}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}. +- +-@noindent +-Description: +- +-Returns value resulting from boolean OR of +-pair of bits in each of @var{I} and @var{J}. +- +-@end ifset +-@ifset familyF2U +-@node IRand Intrinsic +-@subsubsection IRand Intrinsic +-@cindex IRand intrinsic +-@cindex intrinsics, IRand +- +-@noindent +-@example +-IRand(@var{Flag}) +-@end example +- +-@noindent +-IRand: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Flag}: @code{INTEGER}; OPTIONAL; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns a uniform quasi-random number up to a system-dependent limit. +-If @var{Flag} is 0, the next number in sequence is returned; if +-@var{Flag} is 1, the generator is restarted by calling the UNIX function +-@samp{srand(0)}; if @var{Flag} has any other value, +-it is used as a new seed with @code{srand()}. +- +-@xref{SRand Intrinsic}. +- +-@emph{Note:} As typically implemented (by the routine of the same +-name in the C library), this random number generator is a very poor +-one, though the BSD and GNU libraries provide a much better +-implementation than the `traditional' one. +-On a different system you almost certainly want to use something better. +- +-@node IsaTty Intrinsic +-@subsubsection IsaTty Intrinsic +-@cindex IsaTty intrinsic +-@cindex intrinsics, IsaTty +- +-@noindent +-@example +-IsaTty(@var{Unit}) +-@end example +- +-@noindent +-IsaTty: @code{LOGICAL(KIND=1)} function. +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns @code{.TRUE.} if and only if the Fortran I/O unit +-specified by @var{Unit} is connected +-to a terminal device. +-See @code{isatty(3)}. +- +-@end ifset +-@ifset familyMIL +-@node IShft Intrinsic +-@subsubsection IShft Intrinsic +-@cindex IShft intrinsic +-@cindex intrinsics, IShft +- +-@noindent +-@example +-IShft(@var{I}, @var{Shift}) +-@end example +- +-@noindent +-IShft: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Shift}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}. +- +-@noindent +-Description: +- +-All bits representing @var{I} are shifted @var{Shift} places. +-@samp{@var{Shift}.GT.0} indicates a left shift, @samp{@var{Shift}.EQ.0} +-indicates no shift and @samp{@var{Shift}.LT.0} indicates a right shift. +-If the absolute value of the shift count is greater than +-@samp{BIT_SIZE(@var{I})}, the result is undefined. +-Bits shifted out from the left end or the right end are lost. +-Zeros are shifted in from the opposite end. +- +-@xref{IShftC Intrinsic}, for the circular-shift equivalent. +- +-@node IShftC Intrinsic +-@subsubsection IShftC Intrinsic +-@cindex IShftC intrinsic +-@cindex intrinsics, IShftC +- +-@noindent +-@example +-IShftC(@var{I}, @var{Shift}, @var{Size}) +-@end example +- +-@noindent +-IShftC: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Shift}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Size}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}. +- +-@noindent +-Description: +- +-The rightmost @var{Size} bits of the argument @var{I} +-are shifted circularly @var{Shift} +-places, i.e.@: the bits shifted out of one end are shifted into +-the opposite end. +-No bits are lost. +-The unshifted bits of the result are the same as +-the unshifted bits of @var{I}. +-The absolute value of the argument @var{Shift} +-must be less than or equal to @var{Size}. +-The value of @var{Size} must be greater than or equal to one and less than +-or equal to @samp{BIT_SIZE(@var{I})}. +- +-@xref{IShft Intrinsic}, for the logical shift equivalent. +- +-@end ifset +-@ifset familyF77 +-@node ISign Intrinsic +-@subsubsection ISign Intrinsic +-@cindex ISign intrinsic +-@cindex intrinsics, ISign +- +-@noindent +-@example +-ISign(@var{A}, @var{B}) +-@end example +- +-@noindent +-ISign: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-@var{B}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{SIGN()} that is specific +-to one type for @var{A} and @var{B}. +-@xref{Sign Intrinsic}. +- +-@end ifset +-@ifset familyF2U +-@node ITime Intrinsic +-@subsubsection ITime Intrinsic +-@cindex ITime intrinsic +-@cindex intrinsics, ITime +- +-@noindent +-@example +-CALL ITime(@var{TArray}) +-@end example +- +-@noindent +-@var{TArray}: @code{INTEGER(KIND=1)}; DIMENSION(3); INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the current local time hour, minutes, and seconds in elements +-1, 2, and 3 of @var{TArray}, respectively. +- +-@end ifset +-@ifset familyVXT +-@node IZExt Intrinsic +-@subsubsection IZExt Intrinsic +-@cindex IZExt intrinsic +-@cindex intrinsics, IZExt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL IZExt} to use this name for an +-external procedure. +- +-@node JIAbs Intrinsic +-@subsubsection JIAbs Intrinsic +-@cindex JIAbs intrinsic +-@cindex intrinsics, JIAbs +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIAbs} to use this name for an +-external procedure. +- +-@node JIAnd Intrinsic +-@subsubsection JIAnd Intrinsic +-@cindex JIAnd intrinsic +-@cindex intrinsics, JIAnd +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIAnd} to use this name for an +-external procedure. +- +-@node JIBClr Intrinsic +-@subsubsection JIBClr Intrinsic +-@cindex JIBClr intrinsic +-@cindex intrinsics, JIBClr +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIBClr} to use this name for an +-external procedure. +- +-@node JIBits Intrinsic +-@subsubsection JIBits Intrinsic +-@cindex JIBits intrinsic +-@cindex intrinsics, JIBits +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIBits} to use this name for an +-external procedure. +- +-@node JIBSet Intrinsic +-@subsubsection JIBSet Intrinsic +-@cindex JIBSet intrinsic +-@cindex intrinsics, JIBSet +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIBSet} to use this name for an +-external procedure. +- +-@node JIDiM Intrinsic +-@subsubsection JIDiM Intrinsic +-@cindex JIDiM intrinsic +-@cindex intrinsics, JIDiM +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIDiM} to use this name for an +-external procedure. +- +-@node JIDInt Intrinsic +-@subsubsection JIDInt Intrinsic +-@cindex JIDInt intrinsic +-@cindex intrinsics, JIDInt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIDInt} to use this name for an +-external procedure. +- +-@node JIDNnt Intrinsic +-@subsubsection JIDNnt Intrinsic +-@cindex JIDNnt intrinsic +-@cindex intrinsics, JIDNnt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIDNnt} to use this name for an +-external procedure. +- +-@node JIEOr Intrinsic +-@subsubsection JIEOr Intrinsic +-@cindex JIEOr intrinsic +-@cindex intrinsics, JIEOr +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIEOr} to use this name for an +-external procedure. +- +-@node JIFix Intrinsic +-@subsubsection JIFix Intrinsic +-@cindex JIFix intrinsic +-@cindex intrinsics, JIFix +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIFix} to use this name for an +-external procedure. +- +-@node JInt Intrinsic +-@subsubsection JInt Intrinsic +-@cindex JInt intrinsic +-@cindex intrinsics, JInt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JInt} to use this name for an +-external procedure. +- +-@node JIOr Intrinsic +-@subsubsection JIOr Intrinsic +-@cindex JIOr intrinsic +-@cindex intrinsics, JIOr +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIOr} to use this name for an +-external procedure. +- +-@node JIQint Intrinsic +-@subsubsection JIQint Intrinsic +-@cindex JIQint intrinsic +-@cindex intrinsics, JIQint +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIQint} to use this name for an +-external procedure. +- +-@node JIQNnt Intrinsic +-@subsubsection JIQNnt Intrinsic +-@cindex JIQNnt intrinsic +-@cindex intrinsics, JIQNnt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIQNnt} to use this name for an +-external procedure. +- +-@node JIShft Intrinsic +-@subsubsection JIShft Intrinsic +-@cindex JIShft intrinsic +-@cindex intrinsics, JIShft +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIShft} to use this name for an +-external procedure. +- +-@node JIShftC Intrinsic +-@subsubsection JIShftC Intrinsic +-@cindex JIShftC intrinsic +-@cindex intrinsics, JIShftC +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JIShftC} to use this name for an +-external procedure. +- +-@node JISign Intrinsic +-@subsubsection JISign Intrinsic +-@cindex JISign intrinsic +-@cindex intrinsics, JISign +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JISign} to use this name for an +-external procedure. +- +-@node JMax0 Intrinsic +-@subsubsection JMax0 Intrinsic +-@cindex JMax0 intrinsic +-@cindex intrinsics, JMax0 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JMax0} to use this name for an +-external procedure. +- +-@node JMax1 Intrinsic +-@subsubsection JMax1 Intrinsic +-@cindex JMax1 intrinsic +-@cindex intrinsics, JMax1 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JMax1} to use this name for an +-external procedure. +- +-@node JMin0 Intrinsic +-@subsubsection JMin0 Intrinsic +-@cindex JMin0 intrinsic +-@cindex intrinsics, JMin0 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JMin0} to use this name for an +-external procedure. +- +-@node JMin1 Intrinsic +-@subsubsection JMin1 Intrinsic +-@cindex JMin1 intrinsic +-@cindex intrinsics, JMin1 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JMin1} to use this name for an +-external procedure. +- +-@node JMod Intrinsic +-@subsubsection JMod Intrinsic +-@cindex JMod intrinsic +-@cindex intrinsics, JMod +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JMod} to use this name for an +-external procedure. +- +-@node JNInt Intrinsic +-@subsubsection JNInt Intrinsic +-@cindex JNInt intrinsic +-@cindex intrinsics, JNInt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JNInt} to use this name for an +-external procedure. +- +-@node JNot Intrinsic +-@subsubsection JNot Intrinsic +-@cindex JNot intrinsic +-@cindex intrinsics, JNot +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JNot} to use this name for an +-external procedure. +- +-@node JZExt Intrinsic +-@subsubsection JZExt Intrinsic +-@cindex JZExt intrinsic +-@cindex intrinsics, JZExt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL JZExt} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node Kill Intrinsic (subroutine) +-@subsubsection Kill Intrinsic (subroutine) +-@cindex Kill intrinsic +-@cindex intrinsics, Kill +- +-@noindent +-@example +-CALL Kill(@var{Pid}, @var{Signal}, @var{Status}) +-@end example +- +-@noindent +-@var{Pid}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Signal}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Sends the signal specified by @var{Signal} to the process @var{Pid}. +-If the @var{Status} argument is supplied, it contains +-0 on success or a non-zero error code upon return. +-See @code{kill(2)}. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{Kill Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node Kill Intrinsic (function) +-@subsubsection Kill Intrinsic (function) +-@cindex Kill intrinsic +-@cindex intrinsics, Kill +- +-@noindent +-@example +-Kill(@var{Pid}, @var{Signal}) +-@end example +- +-@noindent +-Kill: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Pid}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Signal}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Sends the signal specified by @var{Signal} to the process @var{Pid}. +-Returns 0 on success or a non-zero error code. +-See @code{kill(2)}. +- +-Due to the side effects performed by this intrinsic, the function +-form is not recommended. +- +-For information on other intrinsics with the same name: +-@xref{Kill Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF90 +-@node Kind Intrinsic +-@subsubsection Kind Intrinsic +-@cindex Kind intrinsic +-@cindex intrinsics, Kind +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Kind} to use this name for an +-external procedure. +- +-@node LBound Intrinsic +-@subsubsection LBound Intrinsic +-@cindex LBound intrinsic +-@cindex intrinsics, LBound +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL LBound} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node Len Intrinsic +-@subsubsection Len Intrinsic +-@cindex Len intrinsic +-@cindex intrinsics, Len +- +-@noindent +-@example +-Len(@var{String}) +-@end example +- +-@noindent +-Len: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{String}: @code{CHARACTER}; scalar. +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the length of @var{String}. +- +-If @var{String} is an array, the length of an element +-of @var{String} is returned. +- +-Note that @var{String} need not be defined when this +-intrinsic is invoked, since only the length, not +-the content, of @var{String} is needed. +- +-@xref{Bit_Size Intrinsic}, for the function that determines +-the size of its argument in bits. +- +-@end ifset +-@ifset familyF90 +-@node Len_Trim Intrinsic +-@subsubsection Len_Trim Intrinsic +-@cindex Len_Trim intrinsic +-@cindex intrinsics, Len_Trim +- +-@noindent +-@example +-Len_Trim(@var{String}) +-@end example +- +-@noindent +-Len_Trim: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{String}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f90}. +- +-@noindent +-Description: +- +-Returns the index of the last non-blank character in @var{String}. +-@code{LNBLNK} and @code{LEN_TRIM} are equivalent. +- +-@end ifset +-@ifset familyF77 +-@node LGe Intrinsic +-@subsubsection LGe Intrinsic +-@cindex LGe intrinsic +-@cindex intrinsics, LGe +- +-@noindent +-@example +-LGe(@var{String_A}, @var{String_B}) +-@end example +- +-@noindent +-LGe: @code{LOGICAL(KIND=1)} function. +- +-@noindent +-@var{String_A}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{String_B}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @samp{.TRUE.} if @samp{@var{String_A}.GE.@var{String_B}}, +-@samp{.FALSE.} otherwise. +-@var{String_A} and @var{String_B} are interpreted as containing +-ASCII character codes. +-If either value contains a character not in the ASCII +-character set, the result is processor dependent. +- +-If the @var{String_A} and @var{String_B} are not the same length, +-the shorter is compared as if spaces were appended to +-it to form a value that has the same length as the longer. +- +-The lexical comparison intrinsics @code{LGe}, @code{LGt}, +-@code{LLe}, and @code{LLt} differ from the corresponding +-intrinsic operators @code{.GE.}, @code{.GT.}, +-@code{.LE.}, @code{.LT.}. +-Because the ASCII collating sequence is assumed, +-the following expressions always return @samp{.TRUE.}: +- +-@smallexample +-LGE ('0', ' ') +-LGE ('A', '0') +-LGE ('a', 'A') +-@end smallexample +- +-The following related expressions do @emph{not} always +-return @samp{.TRUE.}, as they are not necessarily evaluated +-assuming the arguments use ASCII encoding: +- +-@smallexample +-'0' .GE. ' ' +-'A' .GE. '0' +-'a' .GE. 'A' +-@end smallexample +- +-The same difference exists +-between @code{LGt} and @code{.GT.}; +-between @code{LLe} and @code{.LE.}; and +-between @code{LLt} and @code{.LT.}. +- +-@node LGt Intrinsic +-@subsubsection LGt Intrinsic +-@cindex LGt intrinsic +-@cindex intrinsics, LGt +- +-@noindent +-@example +-LGt(@var{String_A}, @var{String_B}) +-@end example +- +-@noindent +-LGt: @code{LOGICAL(KIND=1)} function. +- +-@noindent +-@var{String_A}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{String_B}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @samp{.TRUE.} if @samp{@var{String_A}.GT.@var{String_B}}, +-@samp{.FALSE.} otherwise. +-@var{String_A} and @var{String_B} are interpreted as containing +-ASCII character codes. +-If either value contains a character not in the ASCII +-character set, the result is processor dependent. +- +-If the @var{String_A} and @var{String_B} are not the same length, +-the shorter is compared as if spaces were appended to +-it to form a value that has the same length as the longer. +- +-@xref{LGe Intrinsic}, for information on the distinction +-between the @code{LGT} intrinsic and the @code{.GT.} +-operator. +- +-@end ifset +-@ifset familyF2U +-@node Link Intrinsic (subroutine) +-@subsubsection Link Intrinsic (subroutine) +-@cindex Link intrinsic +-@cindex intrinsics, Link +- +-@noindent +-@example +-CALL Link(@var{Path1}, @var{Path2}, @var{Status}) +-@end example +- +-@noindent +-@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Makes a (hard) link from file @var{Path1} to @var{Path2}. +-A null character (@samp{CHAR(0)}) marks the end of +-the names in @var{Path1} and @var{Path2}---otherwise, +-trailing blanks in @var{Path1} and @var{Path2} are ignored. +-If the @var{Status} argument is supplied, it contains +-0 on success or a non-zero error code upon return. +-See @code{link(2)}. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{Link Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node Link Intrinsic (function) +-@subsubsection Link Intrinsic (function) +-@cindex Link intrinsic +-@cindex intrinsics, Link +- +-@noindent +-@example +-Link(@var{Path1}, @var{Path2}) +-@end example +- +-@noindent +-Link: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Makes a (hard) link from file @var{Path1} to @var{Path2}. +-A null character (@samp{CHAR(0)}) marks the end of +-the names in @var{Path1} and @var{Path2}---otherwise, +-trailing blanks in @var{Path1} and @var{Path2} are ignored. +-Returns 0 on success or a non-zero error code. +-See @code{link(2)}. +- +-Due to the side effects performed by this intrinsic, the function +-form is not recommended. +- +-For information on other intrinsics with the same name: +-@xref{Link Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF77 +-@node LLe Intrinsic +-@subsubsection LLe Intrinsic +-@cindex LLe intrinsic +-@cindex intrinsics, LLe +- +-@noindent +-@example +-LLe(@var{String_A}, @var{String_B}) +-@end example +- +-@noindent +-LLe: @code{LOGICAL(KIND=1)} function. +- +-@noindent +-@var{String_A}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{String_B}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @samp{.TRUE.} if @samp{@var{String_A}.LE.@var{String_B}}, +-@samp{.FALSE.} otherwise. +-@var{String_A} and @var{String_B} are interpreted as containing +-ASCII character codes. +-If either value contains a character not in the ASCII +-character set, the result is processor dependent. +- +-If the @var{String_A} and @var{String_B} are not the same length, +-the shorter is compared as if spaces were appended to +-it to form a value that has the same length as the longer. +- +-@xref{LGe Intrinsic}, for information on the distinction +-between the @code{LLE} intrinsic and the @code{.LE.} +-operator. +- +-@node LLt Intrinsic +-@subsubsection LLt Intrinsic +-@cindex LLt intrinsic +-@cindex intrinsics, LLt +- +-@noindent +-@example +-LLt(@var{String_A}, @var{String_B}) +-@end example +- +-@noindent +-LLt: @code{LOGICAL(KIND=1)} function. +- +-@noindent +-@var{String_A}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{String_B}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @samp{.TRUE.} if @samp{@var{String_A}.LT.@var{String_B}}, +-@samp{.FALSE.} otherwise. +-@var{String_A} and @var{String_B} are interpreted as containing +-ASCII character codes. +-If either value contains a character not in the ASCII +-character set, the result is processor dependent. +- +-If the @var{String_A} and @var{String_B} are not the same length, +-the shorter is compared as if spaces were appended to +-it to form a value that has the same length as the longer. +- +-@xref{LGe Intrinsic}, for information on the distinction +-between the @code{LLT} intrinsic and the @code{.LT.} +-operator. +- +-@end ifset +-@ifset familyF2U +-@node LnBlnk Intrinsic +-@subsubsection LnBlnk Intrinsic +-@cindex LnBlnk intrinsic +-@cindex intrinsics, LnBlnk +- +-@noindent +-@example +-LnBlnk(@var{String}) +-@end example +- +-@noindent +-LnBlnk: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{String}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the index of the last non-blank character in @var{String}. +-@code{LNBLNK} and @code{LEN_TRIM} are equivalent. +- +-@node Loc Intrinsic +-@subsubsection Loc Intrinsic +-@cindex Loc intrinsic +-@cindex intrinsics, Loc +- +-@noindent +-@example +-Loc(@var{Entity}) +-@end example +- +-@noindent +-Loc: @code{INTEGER(KIND=7)} function. +- +-@noindent +-@var{Entity}: Any type; cannot be a constant or expression. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-The @code{LOC()} intrinsic works the +-same way as the @code{%LOC()} construct. +-@xref{%LOC(),,The @code{%LOC()} Construct}, for +-more information. +- +-@end ifset +-@ifset familyF77 +-@node Log Intrinsic +-@subsubsection Log Intrinsic +-@cindex Log intrinsic +-@cindex intrinsics, Log +- +-@noindent +-@example +-Log(@var{X}) +-@end example +- +-@noindent +-Log: @code{REAL} or @code{COMPLEX} function, the exact type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL} or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the natural logarithm of @var{X}, which must +-be greater than zero or, if type @code{COMPLEX}, must not +-be zero. +- +-@xref{Exp Intrinsic}, for the inverse of this function. +- +-@xref{Log10 Intrinsic}, for the `common' (base-10) logarithm function. +- +-@node Log10 Intrinsic +-@subsubsection Log10 Intrinsic +-@cindex Log10 intrinsic +-@cindex intrinsics, Log10 +- +-@noindent +-@example +-Log10(@var{X}) +-@end example +- +-@noindent +-Log10: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the common logarithm (base 10) of @var{X}, which must +-be greater than zero. +- +-The inverse of this function is @samp{10. ** LOG10(@var{X})}. +- +-@xref{Log Intrinsic}, for the natural logarithm function. +- +-@end ifset +-@ifset familyF90 +-@node Logical Intrinsic +-@subsubsection Logical Intrinsic +-@cindex Logical intrinsic +-@cindex intrinsics, Logical +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Logical} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node Long Intrinsic +-@subsubsection Long Intrinsic +-@cindex Long intrinsic +-@cindex intrinsics, Long +- +-@noindent +-@example +-Long(@var{A}) +-@end example +- +-@noindent +-Long: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{INTEGER(KIND=6)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Archaic form of @code{INT()} that is specific +-to one type for @var{A}. +-@xref{Int Intrinsic}. +- +-The precise meaning of this intrinsic might change +-in a future version of the GNU Fortran language, +-as more is learned about how it is used. +- +-@end ifset +-@ifset familyF2C +-@node LShift Intrinsic +-@subsubsection LShift Intrinsic +-@cindex LShift intrinsic +-@cindex intrinsics, LShift +- +-@noindent +-@example +-LShift(@var{I}, @var{Shift}) +-@end example +- +-@noindent +-LShift: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Shift}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-Returns @var{I} shifted to the left +-@var{Shift} bits. +- +-Although similar to the expression +-@samp{@var{I}*(2**@var{Shift})}, there +-are important differences. +-For example, the sign of the result is +-not necessarily the same as the sign of +-@var{I}. +- +-Currently this intrinsic is defined assuming +-the underlying representation of @var{I} +-is as a two's-complement integer. +-It is unclear at this point whether that +-definition will apply when a different +-representation is involved. +- +-@xref{LShift Intrinsic}, for the inverse of this function. +- +-@xref{IShft Intrinsic}, for information +-on a more widely available left-shifting +-intrinsic that is also more precisely defined. +- +-@end ifset +-@ifset familyF2U +-@node LStat Intrinsic (subroutine) +-@subsubsection LStat Intrinsic (subroutine) +-@cindex LStat intrinsic +-@cindex intrinsics, LStat +- +-@noindent +-@example +-CALL LStat(@var{File}, @var{SArray}, @var{Status}) +-@end example +- +-@noindent +-@var{File}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Obtains data about the given file @var{File} and places them in the array +-@var{SArray}. +-A null character (@samp{CHAR(0)}) marks the end of +-the name in @var{File}---otherwise, +-trailing blanks in @var{File} are ignored. +-If @var{File} is a symbolic link it returns data on the +-link itself, so the routine is available only on systems that support +-symbolic links. +-The values in this array are extracted from the +-@code{stat} structure as returned by @code{fstat(2)} q.v., as follows: +- +-@enumerate +-@item +-Device ID +- +-@item +-Inode number +- +-@item +-File mode +- +-@item +-Number of links +- +-@item +-Owner's uid +- +-@item +-Owner's gid +- +-@item +-ID of device containing directory entry for file +-(0 if not available) +- +-@item +-File size (bytes) +- +-@item +-Last access time +- +-@item +-Last modification time +- +-@item +-Last file status change time +- +-@item +-Preferred I/O block size (-1 if not available) +- +-@item +-Number of blocks allocated (-1 if not available) +-@end enumerate +- +-Not all these elements are relevant on all systems. +-If an element is not relevant, it is returned as 0. +- +-If the @var{Status} argument is supplied, it contains +-0 on success or a non-zero error code upon return +-(@code{ENOSYS} if the system does not provide @code{lstat(2)}). +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{LStat Intrinsic (function)}. +- +-@node LStat Intrinsic (function) +-@subsubsection LStat Intrinsic (function) +-@cindex LStat intrinsic +-@cindex intrinsics, LStat +- +-@noindent +-@example +-LStat(@var{File}, @var{SArray}) +-@end example +- +-@noindent +-LStat: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{File}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Obtains data about the given file @var{File} and places them in the array +-@var{SArray}. +-A null character (@samp{CHAR(0)}) marks the end of +-the name in @var{File}---otherwise, +-trailing blanks in @var{File} are ignored. +-If @var{File} is a symbolic link it returns data on the +-link itself, so the routine is available only on systems that support +-symbolic links. +-The values in this array are extracted from the +-@code{stat} structure as returned by @code{fstat(2)} q.v., as follows: +- +-@enumerate +-@item +-Device ID +- +-@item +-Inode number +- +-@item +-File mode +- +-@item +-Number of links +- +-@item +-Owner's uid +- +-@item +-Owner's gid +- +-@item +-ID of device containing directory entry for file +-(0 if not available) +- +-@item +-File size (bytes) +- +-@item +-Last access time +- +-@item +-Last modification time +- +-@item +-Last file status change time +- +-@item +-Preferred I/O block size (-1 if not available) +- +-@item +-Number of blocks allocated (-1 if not available) +-@end enumerate +- +-Not all these elements are relevant on all systems. +-If an element is not relevant, it is returned as 0. +- +-Returns 0 on success or a non-zero error code +-(@code{ENOSYS} if the system does not provide @code{lstat(2)}). +- +-For information on other intrinsics with the same name: +-@xref{LStat Intrinsic (subroutine)}. +- +-@node LTime Intrinsic +-@subsubsection LTime Intrinsic +-@cindex LTime intrinsic +-@cindex intrinsics, LTime +- +-@noindent +-@example +-CALL LTime(@var{STime}, @var{TArray}) +-@end example +- +-@noindent +-@var{STime}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-@var{TArray}: @code{INTEGER(KIND=1)}; DIMENSION(9); INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Given a system time value @var{STime}, fills @var{TArray} with values +-extracted from it appropriate to the GMT time zone using +-@code{localtime(3)}. +- +-The array elements are as follows: +- +-@enumerate +-@item +-Seconds after the minute, range 0--59 or 0--61 to allow for leap +-seconds +- +-@item +-Minutes after the hour, range 0--59 +- +-@item +-Hours past midnight, range 0--23 +- +-@item +-Day of month, range 0--31 +- +-@item +-Number of months since January, range 0--12 +- +-@item +-Years since 1900 +- +-@item +-Number of days since Sunday, range 0--6 +- +-@item +-Days since January 1 +- +-@item +-Daylight savings indicator: positive if daylight savings is in effect, +-zero if not, and negative if the information isn't available. +-@end enumerate +- +-@end ifset +-@ifset familyF90 +-@node MatMul Intrinsic +-@subsubsection MatMul Intrinsic +-@cindex MatMul intrinsic +-@cindex intrinsics, MatMul +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL MatMul} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node Max Intrinsic +-@subsubsection Max Intrinsic +-@cindex Max intrinsic +-@cindex intrinsics, Max +- +-@noindent +-@example +-Max(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-Max: @code{INTEGER} or @code{REAL} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{A}: @code{INTEGER} or @code{REAL}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the argument with the largest value. +- +-@xref{Min Intrinsic}, for the opposite function. +- +-@node Max0 Intrinsic +-@subsubsection Max0 Intrinsic +-@cindex Max0 intrinsic +-@cindex intrinsics, Max0 +- +-@noindent +-@example +-Max0(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-Max0: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{INTEGER(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MAX()} that is specific +-to one type for @var{A}. +-@xref{Max Intrinsic}. +- +-@node Max1 Intrinsic +-@subsubsection Max1 Intrinsic +-@cindex Max1 intrinsic +-@cindex intrinsics, Max1 +- +-@noindent +-@example +-Max1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-Max1: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MAX()} that is specific +-to one type for @var{A} and a different return type. +-@xref{Max Intrinsic}. +- +-@end ifset +-@ifset familyF90 +-@node MaxExponent Intrinsic +-@subsubsection MaxExponent Intrinsic +-@cindex MaxExponent intrinsic +-@cindex intrinsics, MaxExponent +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL MaxExponent} to use this name for an +-external procedure. +- +-@node MaxLoc Intrinsic +-@subsubsection MaxLoc Intrinsic +-@cindex MaxLoc intrinsic +-@cindex intrinsics, MaxLoc +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL MaxLoc} to use this name for an +-external procedure. +- +-@node MaxVal Intrinsic +-@subsubsection MaxVal Intrinsic +-@cindex MaxVal intrinsic +-@cindex intrinsics, MaxVal +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL MaxVal} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node MClock Intrinsic +-@subsubsection MClock Intrinsic +-@cindex MClock intrinsic +-@cindex intrinsics, MClock +- +-@noindent +-@example +-MClock() +-@end example +- +-@noindent +-MClock: @code{INTEGER(KIND=1)} function. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the number of clock ticks since the start of the process. +-Supported on systems with @code{clock(3)} (q.v.). +- +-@cindex wraparound, timings +-@cindex limits, timings +-This intrinsic is not fully portable, such as to systems +-with 32-bit @code{INTEGER} types but supporting times +-wider than 32 bits. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-@xref{MClock8 Intrinsic}, for information on a +-similar intrinsic that might be portable to more +-GNU Fortran implementations, though to fewer +-Fortran compilers. +- +-If the system does not support @code{clock(3)}, +--1 is returned. +- +-@node MClock8 Intrinsic +-@subsubsection MClock8 Intrinsic +-@cindex MClock8 intrinsic +-@cindex intrinsics, MClock8 +- +-@noindent +-@example +-MClock8() +-@end example +- +-@noindent +-MClock8: @code{INTEGER(KIND=2)} function. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the number of clock ticks since the start of the process. +-Supported on systems with @code{clock(3)} (q.v.). +- +-@cindex wraparound, timings +-@cindex limits, timings +-@emph{Warning:} this intrinsic does not increase the range +-of the timing values over that returned by @code{clock(3)}. +-On a system with a 32-bit @code{clock(3)}, +-@code{MCLOCK8} will return a 32-bit value, +-even though converted to an @samp{INTEGER(KIND=2)} value. +-That means overflows of the 32-bit value can still occur. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-No Fortran implementations other than GNU Fortran are +-known to support this intrinsic at the time of this +-writing. +-@xref{MClock Intrinsic}, for information on a +-similar intrinsic that might be portable to more Fortran +-compilers, though to fewer GNU Fortran implementations. +- +-If the system does not support @code{clock(3)}, +--1 is returned. +- +-@end ifset +-@ifset familyF90 +-@node Merge Intrinsic +-@subsubsection Merge Intrinsic +-@cindex Merge intrinsic +-@cindex intrinsics, Merge +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Merge} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node Min Intrinsic +-@subsubsection Min Intrinsic +-@cindex Min intrinsic +-@cindex intrinsics, Min +- +-@noindent +-@example +-Min(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-Min: @code{INTEGER} or @code{REAL} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{A}: @code{INTEGER} or @code{REAL}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the argument with the smallest value. +- +-@xref{Max Intrinsic}, for the opposite function. +- +-@node Min0 Intrinsic +-@subsubsection Min0 Intrinsic +-@cindex Min0 intrinsic +-@cindex intrinsics, Min0 +- +-@noindent +-@example +-Min0(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-Min0: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{INTEGER(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MIN()} that is specific +-to one type for @var{A}. +-@xref{Min Intrinsic}. +- +-@node Min1 Intrinsic +-@subsubsection Min1 Intrinsic +-@cindex Min1 intrinsic +-@cindex intrinsics, Min1 +- +-@noindent +-@example +-Min1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n) +-@end example +- +-@noindent +-Min1: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{MIN()} that is specific +-to one type for @var{A} and a different return type. +-@xref{Min Intrinsic}. +- +-@end ifset +-@ifset familyF90 +-@node MinExponent Intrinsic +-@subsubsection MinExponent Intrinsic +-@cindex MinExponent intrinsic +-@cindex intrinsics, MinExponent +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL MinExponent} to use this name for an +-external procedure. +- +-@node MinLoc Intrinsic +-@subsubsection MinLoc Intrinsic +-@cindex MinLoc intrinsic +-@cindex intrinsics, MinLoc +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL MinLoc} to use this name for an +-external procedure. +- +-@node MinVal Intrinsic +-@subsubsection MinVal Intrinsic +-@cindex MinVal intrinsic +-@cindex intrinsics, MinVal +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL MinVal} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node Mod Intrinsic +-@subsubsection Mod Intrinsic +-@cindex Mod intrinsic +-@cindex intrinsics, Mod +- +-@noindent +-@example +-Mod(@var{A}, @var{P}) +-@end example +- +-@noindent +-Mod: @code{INTEGER} or @code{REAL} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{A}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-@var{P}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns remainder calculated as: +- +-@smallexample +-@var{A} - (INT(@var{A} / @var{P}) * @var{P}) +-@end smallexample +- +-@var{P} must not be zero. +- +-@end ifset +-@ifset familyF90 +-@node Modulo Intrinsic +-@subsubsection Modulo Intrinsic +-@cindex Modulo intrinsic +-@cindex intrinsics, Modulo +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Modulo} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyMIL +-@node MvBits Intrinsic +-@subsubsection MvBits Intrinsic +-@cindex MvBits intrinsic +-@cindex intrinsics, MvBits +- +-@noindent +-@example +-CALL MvBits(@var{From}, @var{FromPos}, @var{Len}, @var{TO}, @var{ToPos}) +-@end example +- +-@noindent +-@var{From}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{FromPos}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Len}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{TO}: @code{INTEGER} with same @samp{KIND=} value as for @var{From}; scalar; INTENT(INOUT). +- +-@noindent +-@var{ToPos}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}. +- +-@noindent +-Description: +- +-Moves @var{Len} bits from positions @var{FromPos} through +-@samp{@var{FromPos}+@var{Len}-1} of @var{From} to positions @var{ToPos} through +-@samp{@var{FromPos}+@var{Len}-1} of @var{TO}. The portion of argument +-@var{TO} not affected by the movement of bits is unchanged. Arguments +-@var{From} and @var{TO} are permitted to be the same numeric storage +-unit. The values of @samp{@var{FromPos}+@var{Len}} and +-@samp{@var{ToPos}+@var{Len}} must be less than or equal to +-@samp{BIT_SIZE(@var{From})}. +- +-@end ifset +-@ifset familyF90 +-@node Nearest Intrinsic +-@subsubsection Nearest Intrinsic +-@cindex Nearest intrinsic +-@cindex intrinsics, Nearest +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Nearest} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node NInt Intrinsic +-@subsubsection NInt Intrinsic +-@cindex NInt intrinsic +-@cindex intrinsics, NInt +- +-@noindent +-@example +-NInt(@var{A}) +-@end example +- +-@noindent +-NInt: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{A}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @var{A} with the fractional portion of its +-magnitude eliminated by rounding to the nearest whole +-number and with its sign preserved, converted +-to type @code{INTEGER(KIND=1)}. +- +-If @var{A} is type @code{COMPLEX}, its real part is +-rounded and converted. +- +-A fractional portion exactly equal to +-@samp{.5} is rounded to the whole number that +-is larger in magnitude. +-(Also called ``Fortran round''.) +- +-@xref{Int Intrinsic}, for how to convert, truncate to +-whole number. +- +-@xref{ANInt Intrinsic}, for how to round to nearest whole number +-without converting. +- +-@end ifset +-@ifset familyMIL +-@node Not Intrinsic +-@subsubsection Not Intrinsic +-@cindex Not intrinsic +-@cindex intrinsics, Not +- +-@noindent +-@example +-Not(@var{I}) +-@end example +- +-@noindent +-Not: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}. +- +-@noindent +-Description: +- +-Returns value resulting from boolean NOT of each bit +-in @var{I}. +- +-@end ifset +-@ifset familyF2C +-@node Or Intrinsic +-@subsubsection Or Intrinsic +-@cindex Or intrinsic +-@cindex intrinsics, Or +- +-@noindent +-@example +-Or(@var{I}, @var{J}) +-@end example +- +-@noindent +-Or: @code{INTEGER} or @code{LOGICAL} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{I}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN). +- +-@noindent +-@var{J}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-Returns value resulting from boolean OR of +-pair of bits in each of @var{I} and @var{J}. +- +-@end ifset +-@ifset familyF90 +-@node Pack Intrinsic +-@subsubsection Pack Intrinsic +-@cindex Pack intrinsic +-@cindex intrinsics, Pack +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Pack} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node PError Intrinsic +-@subsubsection PError Intrinsic +-@cindex PError intrinsic +-@cindex intrinsics, PError +- +-@noindent +-@example +-CALL PError(@var{String}) +-@end example +- +-@noindent +-@var{String}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Prints (on the C @code{stderr} stream) a newline-terminated error +-message corresponding to the last system error. +-This is prefixed by @var{String}, a colon and a space. +-See @code{perror(3)}. +- +-@end ifset +-@ifset familyF90 +-@node Precision Intrinsic +-@subsubsection Precision Intrinsic +-@cindex Precision intrinsic +-@cindex intrinsics, Precision +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Precision} to use this name for an +-external procedure. +- +-@node Present Intrinsic +-@subsubsection Present Intrinsic +-@cindex Present intrinsic +-@cindex intrinsics, Present +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Present} to use this name for an +-external procedure. +- +-@node Product Intrinsic +-@subsubsection Product Intrinsic +-@cindex Product intrinsic +-@cindex intrinsics, Product +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Product} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyVXT +-@node QAbs Intrinsic +-@subsubsection QAbs Intrinsic +-@cindex QAbs intrinsic +-@cindex intrinsics, QAbs +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QAbs} to use this name for an +-external procedure. +- +-@node QACos Intrinsic +-@subsubsection QACos Intrinsic +-@cindex QACos intrinsic +-@cindex intrinsics, QACos +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QACos} to use this name for an +-external procedure. +- +-@node QACosD Intrinsic +-@subsubsection QACosD Intrinsic +-@cindex QACosD intrinsic +-@cindex intrinsics, QACosD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QACosD} to use this name for an +-external procedure. +- +-@node QASin Intrinsic +-@subsubsection QASin Intrinsic +-@cindex QASin intrinsic +-@cindex intrinsics, QASin +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QASin} to use this name for an +-external procedure. +- +-@node QASinD Intrinsic +-@subsubsection QASinD Intrinsic +-@cindex QASinD intrinsic +-@cindex intrinsics, QASinD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QASinD} to use this name for an +-external procedure. +- +-@node QATan Intrinsic +-@subsubsection QATan Intrinsic +-@cindex QATan intrinsic +-@cindex intrinsics, QATan +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QATan} to use this name for an +-external procedure. +- +-@node QATan2 Intrinsic +-@subsubsection QATan2 Intrinsic +-@cindex QATan2 intrinsic +-@cindex intrinsics, QATan2 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QATan2} to use this name for an +-external procedure. +- +-@node QATan2D Intrinsic +-@subsubsection QATan2D Intrinsic +-@cindex QATan2D intrinsic +-@cindex intrinsics, QATan2D +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QATan2D} to use this name for an +-external procedure. +- +-@node QATanD Intrinsic +-@subsubsection QATanD Intrinsic +-@cindex QATanD intrinsic +-@cindex intrinsics, QATanD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QATanD} to use this name for an +-external procedure. +- +-@node QCos Intrinsic +-@subsubsection QCos Intrinsic +-@cindex QCos intrinsic +-@cindex intrinsics, QCos +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QCos} to use this name for an +-external procedure. +- +-@node QCosD Intrinsic +-@subsubsection QCosD Intrinsic +-@cindex QCosD intrinsic +-@cindex intrinsics, QCosD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QCosD} to use this name for an +-external procedure. +- +-@node QCosH Intrinsic +-@subsubsection QCosH Intrinsic +-@cindex QCosH intrinsic +-@cindex intrinsics, QCosH +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QCosH} to use this name for an +-external procedure. +- +-@node QDiM Intrinsic +-@subsubsection QDiM Intrinsic +-@cindex QDiM intrinsic +-@cindex intrinsics, QDiM +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QDiM} to use this name for an +-external procedure. +- +-@node QExp Intrinsic +-@subsubsection QExp Intrinsic +-@cindex QExp intrinsic +-@cindex intrinsics, QExp +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QExp} to use this name for an +-external procedure. +- +-@node QExt Intrinsic +-@subsubsection QExt Intrinsic +-@cindex QExt intrinsic +-@cindex intrinsics, QExt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QExt} to use this name for an +-external procedure. +- +-@node QExtD Intrinsic +-@subsubsection QExtD Intrinsic +-@cindex QExtD intrinsic +-@cindex intrinsics, QExtD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QExtD} to use this name for an +-external procedure. +- +-@node QFloat Intrinsic +-@subsubsection QFloat Intrinsic +-@cindex QFloat intrinsic +-@cindex intrinsics, QFloat +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QFloat} to use this name for an +-external procedure. +- +-@node QInt Intrinsic +-@subsubsection QInt Intrinsic +-@cindex QInt intrinsic +-@cindex intrinsics, QInt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QInt} to use this name for an +-external procedure. +- +-@node QLog Intrinsic +-@subsubsection QLog Intrinsic +-@cindex QLog intrinsic +-@cindex intrinsics, QLog +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QLog} to use this name for an +-external procedure. +- +-@node QLog10 Intrinsic +-@subsubsection QLog10 Intrinsic +-@cindex QLog10 intrinsic +-@cindex intrinsics, QLog10 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QLog10} to use this name for an +-external procedure. +- +-@node QMax1 Intrinsic +-@subsubsection QMax1 Intrinsic +-@cindex QMax1 intrinsic +-@cindex intrinsics, QMax1 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QMax1} to use this name for an +-external procedure. +- +-@node QMin1 Intrinsic +-@subsubsection QMin1 Intrinsic +-@cindex QMin1 intrinsic +-@cindex intrinsics, QMin1 +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QMin1} to use this name for an +-external procedure. +- +-@node QMod Intrinsic +-@subsubsection QMod Intrinsic +-@cindex QMod intrinsic +-@cindex intrinsics, QMod +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QMod} to use this name for an +-external procedure. +- +-@node QNInt Intrinsic +-@subsubsection QNInt Intrinsic +-@cindex QNInt intrinsic +-@cindex intrinsics, QNInt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QNInt} to use this name for an +-external procedure. +- +-@node QSin Intrinsic +-@subsubsection QSin Intrinsic +-@cindex QSin intrinsic +-@cindex intrinsics, QSin +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QSin} to use this name for an +-external procedure. +- +-@node QSinD Intrinsic +-@subsubsection QSinD Intrinsic +-@cindex QSinD intrinsic +-@cindex intrinsics, QSinD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QSinD} to use this name for an +-external procedure. +- +-@node QSinH Intrinsic +-@subsubsection QSinH Intrinsic +-@cindex QSinH intrinsic +-@cindex intrinsics, QSinH +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QSinH} to use this name for an +-external procedure. +- +-@node QSqRt Intrinsic +-@subsubsection QSqRt Intrinsic +-@cindex QSqRt intrinsic +-@cindex intrinsics, QSqRt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QSqRt} to use this name for an +-external procedure. +- +-@node QTan Intrinsic +-@subsubsection QTan Intrinsic +-@cindex QTan intrinsic +-@cindex intrinsics, QTan +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QTan} to use this name for an +-external procedure. +- +-@node QTanD Intrinsic +-@subsubsection QTanD Intrinsic +-@cindex QTanD intrinsic +-@cindex intrinsics, QTanD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QTanD} to use this name for an +-external procedure. +- +-@node QTanH Intrinsic +-@subsubsection QTanH Intrinsic +-@cindex QTanH intrinsic +-@cindex intrinsics, QTanH +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL QTanH} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF90 +-@node Radix Intrinsic +-@subsubsection Radix Intrinsic +-@cindex Radix intrinsic +-@cindex intrinsics, Radix +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Radix} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node Rand Intrinsic +-@subsubsection Rand Intrinsic +-@cindex Rand intrinsic +-@cindex intrinsics, Rand +- +-@noindent +-@example +-Rand(@var{Flag}) +-@end example +- +-@noindent +-Rand: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{Flag}: @code{INTEGER}; OPTIONAL; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns a uniform quasi-random number between 0 and 1. +-If @var{Flag} is 0, the next number in sequence is returned; if +-@var{Flag} is 1, the generator is restarted by calling @samp{srand(0)}; +-if @var{Flag} has any other value, it is used as a new seed with +-@code{srand}. +- +-@xref{SRand Intrinsic}. +- +-@emph{Note:} As typically implemented (by the routine of the same +-name in the C library), this random number generator is a very poor +-one, though the BSD and GNU libraries provide a much better +-implementation than the `traditional' one. +-On a different system you +-almost certainly want to use something better. +- +-@end ifset +-@ifset familyF90 +-@node Random_Number Intrinsic +-@subsubsection Random_Number Intrinsic +-@cindex Random_Number intrinsic +-@cindex intrinsics, Random_Number +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Random_Number} to use this name for an +-external procedure. +- +-@node Random_Seed Intrinsic +-@subsubsection Random_Seed Intrinsic +-@cindex Random_Seed intrinsic +-@cindex intrinsics, Random_Seed +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Random_Seed} to use this name for an +-external procedure. +- +-@node Range Intrinsic +-@subsubsection Range Intrinsic +-@cindex Range intrinsic +-@cindex intrinsics, Range +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Range} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node Real Intrinsic +-@subsubsection Real Intrinsic +-@cindex Real intrinsic +-@cindex intrinsics, Real +- +-@noindent +-@example +-Real(@var{A}) +-@end example +- +-@noindent +-Real: @code{REAL} function. +-The exact type is @samp{REAL(KIND=1)} when argument @var{A} is +-any type other than @code{COMPLEX}, or when it is @code{COMPLEX(KIND=1)}. +-When @var{A} is any @code{COMPLEX} type other than @code{COMPLEX(KIND=1)}, +-this intrinsic is valid only when used as the argument to +-@code{REAL()}, as explained below. +- +-@noindent +-@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Converts @var{A} to @code{REAL(KIND=1)}. +- +-Use of @code{REAL()} with a @code{COMPLEX} argument +-(other than @code{COMPLEX(KIND=1)}) is restricted to the following case: +- +-@example +-REAL(REAL(A)) +-@end example +- +-@noindent +-This expression converts the real part of A to +-@code{REAL(KIND=1)}. +- +-@xref{RealPart Intrinsic}, for information on a GNU Fortran +-intrinsic that extracts the real part of an arbitrary +-@code{COMPLEX} value. +- +-@xref{REAL() and AIMAG() of Complex}, for more information. +- +-@end ifset +-@ifset familyGNU +-@node RealPart Intrinsic +-@subsubsection RealPart Intrinsic +-@cindex RealPart intrinsic +-@cindex intrinsics, RealPart +- +-@noindent +-@example +-RealPart(@var{Z}) +-@end example +- +-@noindent +-RealPart: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{Z}. +- +-@noindent +-@var{Z}: @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{gnu}. +- +-@noindent +-Description: +- +-The real part of @var{Z} is returned, without conversion. +- +-@emph{Note:} The way to do this in standard Fortran 90 +-is @samp{REAL(@var{Z})}. +-However, when, for example, @var{Z} is @code{COMPLEX(KIND=2)}, +-@samp{REAL(@var{Z})} means something different for some compilers +-that are not true Fortran 90 compilers but offer some +-extensions standardized by Fortran 90 (such as the +-@code{DOUBLE COMPLEX} type, also known as @code{COMPLEX(KIND=2)}). +- +-The advantage of @code{REALPART()} is that, while not necessarily +-more or less portable than @code{REAL()}, it is more likely to +-cause a compiler that doesn't support it to produce a diagnostic +-than generate incorrect code. +- +-@xref{REAL() and AIMAG() of Complex}, for more information. +- +-@end ifset +-@ifset familyF2U +-@node Rename Intrinsic (subroutine) +-@subsubsection Rename Intrinsic (subroutine) +-@cindex Rename intrinsic +-@cindex intrinsics, Rename +- +-@noindent +-@example +-CALL Rename(@var{Path1}, @var{Path2}, @var{Status}) +-@end example +- +-@noindent +-@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Renames the file @var{Path1} to @var{Path2}. +-A null character (@samp{CHAR(0)}) marks the end of +-the names in @var{Path1} and @var{Path2}---otherwise, +-trailing blanks in @var{Path1} and @var{Path2} are ignored. +-See @code{rename(2)}. +-If the @var{Status} argument is supplied, it contains +-0 on success or a non-zero error code upon return. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{Rename Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node Rename Intrinsic (function) +-@subsubsection Rename Intrinsic (function) +-@cindex Rename intrinsic +-@cindex intrinsics, Rename +- +-@noindent +-@example +-Rename(@var{Path1}, @var{Path2}) +-@end example +- +-@noindent +-Rename: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Renames the file @var{Path1} to @var{Path2}. +-A null character (@samp{CHAR(0)}) marks the end of +-the names in @var{Path1} and @var{Path2}---otherwise, +-trailing blanks in @var{Path1} and @var{Path2} are ignored. +-See @code{rename(2)}. +-Returns 0 on success or a non-zero error code. +- +-Due to the side effects performed by this intrinsic, the function +-form is not recommended. +- +-For information on other intrinsics with the same name: +-@xref{Rename Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF90 +-@node Repeat Intrinsic +-@subsubsection Repeat Intrinsic +-@cindex Repeat intrinsic +-@cindex intrinsics, Repeat +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Repeat} to use this name for an +-external procedure. +- +-@node Reshape Intrinsic +-@subsubsection Reshape Intrinsic +-@cindex Reshape intrinsic +-@cindex intrinsics, Reshape +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Reshape} to use this name for an +-external procedure. +- +-@node RRSpacing Intrinsic +-@subsubsection RRSpacing Intrinsic +-@cindex RRSpacing intrinsic +-@cindex intrinsics, RRSpacing +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL RRSpacing} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2C +-@node RShift Intrinsic +-@subsubsection RShift Intrinsic +-@cindex RShift intrinsic +-@cindex intrinsics, RShift +- +-@noindent +-@example +-RShift(@var{I}, @var{Shift}) +-@end example +- +-@noindent +-RShift: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}. +- +-@noindent +-@var{I}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Shift}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-Returns @var{I} shifted to the right +-@var{Shift} bits. +- +-Although similar to the expression +-@samp{@var{I}/(2**@var{Shift})}, there +-are important differences. +-For example, the sign of the result is +-undefined. +- +-Currently this intrinsic is defined assuming +-the underlying representation of @var{I} +-is as a two's-complement integer. +-It is unclear at this point whether that +-definition will apply when a different +-representation is involved. +- +-@xref{RShift Intrinsic}, for the inverse of this function. +- +-@xref{IShft Intrinsic}, for information +-on a more widely available right-shifting +-intrinsic that is also more precisely defined. +- +-@end ifset +-@ifset familyF90 +-@node Scale Intrinsic +-@subsubsection Scale Intrinsic +-@cindex Scale intrinsic +-@cindex intrinsics, Scale +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Scale} to use this name for an +-external procedure. +- +-@node Scan Intrinsic +-@subsubsection Scan Intrinsic +-@cindex Scan intrinsic +-@cindex intrinsics, Scan +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Scan} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyVXT +-@node Secnds Intrinsic +-@subsubsection Secnds Intrinsic +-@cindex Secnds intrinsic +-@cindex intrinsics, Secnds +- +-@noindent +-@example +-Secnds(@var{T}) +-@end example +- +-@noindent +-Secnds: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{T}: @code{REAL(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{vxt}. +- +-@noindent +-Description: +- +-Returns the local time in seconds since midnight minus the value +-@var{T}. +- +-@cindex wraparound, timings +-@cindex limits, timings +-This values returned by this intrinsic +-become numerically less than previous values +-(they wrap around) during a single run of the +-compiler program, under normal circumstances +-(such as running through the midnight hour). +- +-@end ifset +-@ifset familyF2U +-@node Second Intrinsic (function) +-@subsubsection Second Intrinsic (function) +-@cindex Second intrinsic +-@cindex intrinsics, Second +- +-@noindent +-@example +-Second() +-@end example +- +-@noindent +-Second: @code{REAL(KIND=1)} function. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the process's runtime in seconds---the same value as the +-UNIX function @code{etime} returns. +- +-@cindex wraparound, timings +-@cindex limits, timings +-On some systems, the underlying timings are represented +-using types with sufficiently small limits that overflows +-(wraparounds) are possible, such as 32-bit types. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-For information on other intrinsics with the same name: +-@xref{Second Intrinsic (subroutine)}. +- +-@node Second Intrinsic (subroutine) +-@subsubsection Second Intrinsic (subroutine) +-@cindex Second intrinsic +-@cindex intrinsics, Second +- +-@noindent +-@example +-CALL Second(@var{Seconds}) +-@end example +- +-@noindent +-@var{Seconds}: @code{REAL}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the process's runtime in seconds in @var{Seconds}---the same value +-as the UNIX function @code{etime} returns. +- +-@cindex wraparound, timings +-@cindex limits, timings +-On some systems, the underlying timings are represented +-using types with sufficiently small limits that overflows +-(wraparounds) are possible, such as 32-bit types. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-This routine is known from Cray Fortran. @xref{CPU_Time Intrinsic}, +-for a standard equivalent. +- +-For information on other intrinsics with the same name: +-@xref{Second Intrinsic (function)}. +- +-@end ifset +-@ifset familyF90 +-@node Selected_Int_Kind Intrinsic +-@subsubsection Selected_Int_Kind Intrinsic +-@cindex Selected_Int_Kind intrinsic +-@cindex intrinsics, Selected_Int_Kind +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Selected_Int_Kind} to use this name for an +-external procedure. +- +-@node Selected_Real_Kind Intrinsic +-@subsubsection Selected_Real_Kind Intrinsic +-@cindex Selected_Real_Kind intrinsic +-@cindex intrinsics, Selected_Real_Kind +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Selected_Real_Kind} to use this name for an +-external procedure. +- +-@node Set_Exponent Intrinsic +-@subsubsection Set_Exponent Intrinsic +-@cindex Set_Exponent intrinsic +-@cindex intrinsics, Set_Exponent +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Set_Exponent} to use this name for an +-external procedure. +- +-@node Shape Intrinsic +-@subsubsection Shape Intrinsic +-@cindex Shape intrinsic +-@cindex intrinsics, Shape +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Shape} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node Short Intrinsic +-@subsubsection Short Intrinsic +-@cindex Short intrinsic +-@cindex intrinsics, Short +- +-@noindent +-@example +-Short(@var{A}) +-@end example +- +-@noindent +-Short: @code{INTEGER(KIND=6)} function. +- +-@noindent +-@var{A}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns @var{A} with the fractional portion of its +-magnitude truncated and its sign preserved, converted +-to type @code{INTEGER(KIND=6)}. +- +-If @var{A} is type @code{COMPLEX}, its real part +-is truncated and converted, and its imaginary part is disgregarded. +- +-@xref{Int Intrinsic}. +- +-The precise meaning of this intrinsic might change +-in a future version of the GNU Fortran language, +-as more is learned about how it is used. +- +-@end ifset +-@ifset familyF77 +-@node Sign Intrinsic +-@subsubsection Sign Intrinsic +-@cindex Sign intrinsic +-@cindex intrinsics, Sign +- +-@noindent +-@example +-Sign(@var{A}, @var{B}) +-@end example +- +-@noindent +-Sign: @code{INTEGER} or @code{REAL} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{A}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-@var{B}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns @samp{ABS(@var{A})*@var{s}}, where +-@var{s} is +1 if @samp{@var{B}.GE.0}, +--1 otherwise. +- +-@xref{Abs Intrinsic}, for the function that returns +-the magnitude of a value. +- +-@end ifset +-@ifset familyF2U +-@node Signal Intrinsic (subroutine) +-@subsubsection Signal Intrinsic (subroutine) +-@cindex Signal intrinsic +-@cindex intrinsics, Signal +- +-@noindent +-@example +-CALL Signal(@var{Number}, @var{Handler}, @var{Status}) +-@end example +- +-@noindent +-@var{Number}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Handler}: Signal handler (@code{INTEGER FUNCTION} or @code{SUBROUTINE}) +-or dummy/global @code{INTEGER(KIND=1)} scalar. +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=7)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-If @var{Handler} is a an @code{EXTERNAL} routine, arranges for it to be +-invoked with a single integer argument (of system-dependent length) +-when signal @var{Number} occurs. +-If @var{Handler} is an integer, it can be +-used to turn off handling of signal @var{Number} or revert to its default +-action. +-See @code{signal(2)}. +- +-Note that @var{Handler} will be called using C conventions, +-so the value of its argument in Fortran terms +-Fortran terms is obtained by applying @code{%LOC()} (or @var{LOC()}) to it. +- +-The value returned by @code{signal(2)} is written to @var{Status}, if +-that argument is supplied. +-Otherwise the return value is ignored. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-@emph{Warning:} Use of the @code{libf2c} run-time library function +-@samp{signal_} directly +-(such as via @samp{EXTERNAL SIGNAL}) +-requires use of the @code{%VAL()} construct +-to pass an @code{INTEGER} value +-(such as @samp{SIG_IGN} or @samp{SIG_DFL}) +-for the @var{Handler} argument. +- +-However, while @samp{CALL SIGNAL(@var{signum}, %VAL(SIG_IGN))} +-works when @samp{SIGNAL} is treated as an external procedure +-(and resolves, at link time, to @code{libf2c}'s @samp{signal_} routine), +-this construct is not valid when @samp{SIGNAL} is recognized +-as the intrinsic of that name. +- +-Therefore, for maximum portability and reliability, +-code such references to the @samp{SIGNAL} facility as follows: +- +-@smallexample +-INTRINSIC SIGNAL +-@dots{} +-CALL SIGNAL(@var{signum}, SIG_IGN) +-@end smallexample +- +-@code{g77} will compile such a call correctly, +-while other compilers will generally either do so as well +-or reject the @samp{INTRINSIC SIGNAL} statement via a diagnostic, +-allowing you to take appropriate action. +- +-For information on other intrinsics with the same name: +-@xref{Signal Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node Signal Intrinsic (function) +-@subsubsection Signal Intrinsic (function) +-@cindex Signal intrinsic +-@cindex intrinsics, Signal +- +-@noindent +-@example +-Signal(@var{Number}, @var{Handler}) +-@end example +- +-@noindent +-Signal: @code{INTEGER(KIND=7)} function. +- +-@noindent +-@var{Number}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Handler}: Signal handler (@code{INTEGER FUNCTION} or @code{SUBROUTINE}) +-or dummy/global @code{INTEGER(KIND=1)} scalar. +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-If @var{Handler} is a an @code{EXTERNAL} routine, arranges for it to be +-invoked with a single integer argument (of system-dependent length) +-when signal @var{Number} occurs. +-If @var{Handler} is an integer, it can be +-used to turn off handling of signal @var{Number} or revert to its default +-action. +-See @code{signal(2)}. +- +-Note that @var{Handler} will be called using C conventions, +-so the value of its argument in Fortran terms +-is obtained by applying @code{%LOC()} (or @var{LOC()}) to it. +- +-The value returned by @code{signal(2)} is returned. +- +-Due to the side effects performed by this intrinsic, the function +-form is not recommended. +- +-@emph{Warning:} If the returned value is stored in +-an @code{INTEGER(KIND=1)} (default @code{INTEGER}) argument, +-truncation of the original return value occurs on some systems +-(such as Alphas, which have 64-bit pointers but 32-bit default integers), +-with no warning issued by @code{g77} under normal circumstances. +- +-Therefore, the following code fragment might silently fail on +-some systems: +- +-@smallexample +-INTEGER RTN +-EXTERNAL MYHNDL +-RTN = SIGNAL(@var{signum}, MYHNDL) +-@dots{} +-! Restore original handler: +-RTN = SIGNAL(@var{signum}, RTN) +-@end smallexample +- +-The reason for the failure is that @samp{RTN} might not hold +-all the information on the original handler for the signal, +-thus restoring an invalid handler. +-This bug could manifest itself as a spurious run-time failure +-at an arbitrary point later during the program's execution, +-for example. +- +-@emph{Warning:} Use of the @code{libf2c} run-time library function +-@samp{signal_} directly +-(such as via @samp{EXTERNAL SIGNAL}) +-requires use of the @code{%VAL()} construct +-to pass an @code{INTEGER} value +-(such as @samp{SIG_IGN} or @samp{SIG_DFL}) +-for the @var{Handler} argument. +- +-However, while @samp{RTN = SIGNAL(@var{signum}, %VAL(SIG_IGN))} +-works when @samp{SIGNAL} is treated as an external procedure +-(and resolves, at link time, to @code{libf2c}'s @samp{signal_} routine), +-this construct is not valid when @samp{SIGNAL} is recognized +-as the intrinsic of that name. +- +-Therefore, for maximum portability and reliability, +-code such references to the @samp{SIGNAL} facility as follows: +- +-@smallexample +-INTRINSIC SIGNAL +-@dots{} +-RTN = SIGNAL(@var{signum}, SIG_IGN) +-@end smallexample +- +-@code{g77} will compile such a call correctly, +-while other compilers will generally either do so as well +-or reject the @samp{INTRINSIC SIGNAL} statement via a diagnostic, +-allowing you to take appropriate action. +- +-For information on other intrinsics with the same name: +-@xref{Signal Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF77 +-@node Sin Intrinsic +-@subsubsection Sin Intrinsic +-@cindex Sin intrinsic +-@cindex intrinsics, Sin +- +-@noindent +-@example +-Sin(@var{X}) +-@end example +- +-@noindent +-Sin: @code{REAL} or @code{COMPLEX} function, the exact type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL} or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the sine of @var{X}, an angle measured +-in radians. +- +-@xref{ASin Intrinsic}, for the inverse of this function. +- +-@end ifset +-@ifset familyVXT +-@node SinD Intrinsic +-@subsubsection SinD Intrinsic +-@cindex SinD intrinsic +-@cindex intrinsics, SinD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL SinD} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node SinH Intrinsic +-@subsubsection SinH Intrinsic +-@cindex SinH intrinsic +-@cindex intrinsics, SinH +- +-@noindent +-@example +-SinH(@var{X}) +-@end example +- +-@noindent +-SinH: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the hyperbolic sine of @var{X}. +- +-@end ifset +-@ifset familyF2U +-@node Sleep Intrinsic +-@subsubsection Sleep Intrinsic +-@cindex Sleep intrinsic +-@cindex intrinsics, Sleep +- +-@noindent +-@example +-CALL Sleep(@var{Seconds}) +-@end example +- +-@noindent +-@var{Seconds}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Causes the process to pause for @var{Seconds} seconds. +-See @code{sleep(2)}. +- +-@end ifset +-@ifset familyF77 +-@node Sngl Intrinsic +-@subsubsection Sngl Intrinsic +-@cindex Sngl intrinsic +-@cindex intrinsics, Sngl +- +-@noindent +-@example +-Sngl(@var{A}) +-@end example +- +-@noindent +-Sngl: @code{REAL(KIND=1)} function. +- +-@noindent +-@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Archaic form of @code{REAL()} that is specific +-to one type for @var{A}. +-@xref{Real Intrinsic}. +- +-@end ifset +-@ifset familyVXT +-@node SnglQ Intrinsic +-@subsubsection SnglQ Intrinsic +-@cindex SnglQ intrinsic +-@cindex intrinsics, SnglQ +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL SnglQ} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF90 +-@node Spacing Intrinsic +-@subsubsection Spacing Intrinsic +-@cindex Spacing intrinsic +-@cindex intrinsics, Spacing +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Spacing} to use this name for an +-external procedure. +- +-@node Spread Intrinsic +-@subsubsection Spread Intrinsic +-@cindex Spread intrinsic +-@cindex intrinsics, Spread +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Spread} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node SqRt Intrinsic +-@subsubsection SqRt Intrinsic +-@cindex SqRt intrinsic +-@cindex intrinsics, SqRt +- +-@noindent +-@example +-SqRt(@var{X}) +-@end example +- +-@noindent +-SqRt: @code{REAL} or @code{COMPLEX} function, the exact type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL} or @code{COMPLEX}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the square root of @var{X}, which must +-not be negative. +- +-To calculate and represent the square root of a negative +-number, complex arithmetic must be used. +-For example, @samp{SQRT(COMPLEX(@var{X}))}. +- +-The inverse of this function is @samp{SQRT(@var{X}) * SQRT(@var{X})}. +- +-@end ifset +-@ifset familyF2U +-@node SRand Intrinsic +-@subsubsection SRand Intrinsic +-@cindex SRand intrinsic +-@cindex intrinsics, SRand +- +-@noindent +-@example +-CALL SRand(@var{Seed}) +-@end example +- +-@noindent +-@var{Seed}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Reinitialises the generator with the seed in @var{Seed}. +-@xref{IRand Intrinsic}. +-@xref{Rand Intrinsic}. +- +-@node Stat Intrinsic (subroutine) +-@subsubsection Stat Intrinsic (subroutine) +-@cindex Stat intrinsic +-@cindex intrinsics, Stat +- +-@noindent +-@example +-CALL Stat(@var{File}, @var{SArray}, @var{Status}) +-@end example +- +-@noindent +-@var{File}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Obtains data about the given file @var{File} and places them in the array +-@var{SArray}. +-A null character (@samp{CHAR(0)}) marks the end of +-the name in @var{File}---otherwise, +-trailing blanks in @var{File} are ignored. +-The values in this array are extracted from the +-@code{stat} structure as returned by @code{fstat(2)} q.v., as follows: +- +-@enumerate +-@item +-Device ID +- +-@item +-Inode number +- +-@item +-File mode +- +-@item +-Number of links +- +-@item +-Owner's uid +- +-@item +-Owner's gid +- +-@item +-ID of device containing directory entry for file +-(0 if not available) +- +-@item +-File size (bytes) +- +-@item +-Last access time +- +-@item +-Last modification time +- +-@item +-Last file status change time +- +-@item +-Preferred I/O block size (-1 if not available) +- +-@item +-Number of blocks allocated (-1 if not available) +-@end enumerate +- +-Not all these elements are relevant on all systems. +-If an element is not relevant, it is returned as 0. +- +-If the @var{Status} argument is supplied, it contains +-0 on success or a non-zero error code upon return. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{Stat Intrinsic (function)}. +- +-@node Stat Intrinsic (function) +-@subsubsection Stat Intrinsic (function) +-@cindex Stat intrinsic +-@cindex intrinsics, Stat +- +-@noindent +-@example +-Stat(@var{File}, @var{SArray}) +-@end example +- +-@noindent +-Stat: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{File}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Obtains data about the given file @var{File} and places them in the array +-@var{SArray}. +-A null character (@samp{CHAR(0)}) marks the end of +-the name in @var{File}---otherwise, +-trailing blanks in @var{File} are ignored. +-The values in this array are extracted from the +-@code{stat} structure as returned by @code{fstat(2)} q.v., as follows: +- +-@enumerate +-@item +-Device ID +- +-@item +-Inode number +- +-@item +-File mode +- +-@item +-Number of links +- +-@item +-Owner's uid +- +-@item +-Owner's gid +- +-@item +-ID of device containing directory entry for file +-(0 if not available) +- +-@item +-File size (bytes) +- +-@item +-Last access time +- +-@item +-Last modification time +- +-@item +-Last file status change time +- +-@item +-Preferred I/O block size (-1 if not available) +- +-@item +-Number of blocks allocated (-1 if not available) +-@end enumerate +- +-Not all these elements are relevant on all systems. +-If an element is not relevant, it is returned as 0. +- +-Returns 0 on success or a non-zero error code. +- +-For information on other intrinsics with the same name: +-@xref{Stat Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF90 +-@node Sum Intrinsic +-@subsubsection Sum Intrinsic +-@cindex Sum intrinsic +-@cindex intrinsics, Sum +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Sum} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node SymLnk Intrinsic (subroutine) +-@subsubsection SymLnk Intrinsic (subroutine) +-@cindex SymLnk intrinsic +-@cindex intrinsics, SymLnk +- +-@noindent +-@example +-CALL SymLnk(@var{Path1}, @var{Path2}, @var{Status}) +-@end example +- +-@noindent +-@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Makes a symbolic link from file @var{Path1} to @var{Path2}. +-A null character (@samp{CHAR(0)}) marks the end of +-the names in @var{Path1} and @var{Path2}---otherwise, +-trailing blanks in @var{Path1} and @var{Path2} are ignored. +-If the @var{Status} argument is supplied, it contains +-0 on success or a non-zero error code upon return +-(@code{ENOSYS} if the system does not provide @code{symlink(2)}). +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{SymLnk Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node SymLnk Intrinsic (function) +-@subsubsection SymLnk Intrinsic (function) +-@cindex SymLnk intrinsic +-@cindex intrinsics, SymLnk +- +-@noindent +-@example +-SymLnk(@var{Path1}, @var{Path2}) +-@end example +- +-@noindent +-SymLnk: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Makes a symbolic link from file @var{Path1} to @var{Path2}. +-A null character (@samp{CHAR(0)}) marks the end of +-the names in @var{Path1} and @var{Path2}---otherwise, +-trailing blanks in @var{Path1} and @var{Path2} are ignored. +-Returns 0 on success or a non-zero error code +-(@code{ENOSYS} if the system does not provide @code{symlink(2)}). +- +-Due to the side effects performed by this intrinsic, the function +-form is not recommended. +- +-For information on other intrinsics with the same name: +-@xref{SymLnk Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF2U +-@node System Intrinsic (subroutine) +-@subsubsection System Intrinsic (subroutine) +-@cindex System intrinsic +-@cindex intrinsics, System +- +-@noindent +-@example +-CALL System(@var{Command}, @var{Status}) +-@end example +- +-@noindent +-@var{Command}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Passes the command @var{Command} to a shell (see @code{system(3)}). +-If argument @var{Status} is present, it contains the value returned by +-@code{system(3)}, presumably 0 if the shell command succeeded. +-Note that which shell is used to invoke the command is system-dependent +-and environment-dependent. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{System Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node System Intrinsic (function) +-@subsubsection System Intrinsic (function) +-@cindex System intrinsic +-@cindex intrinsics, System +- +-@noindent +-@example +-System(@var{Command}) +-@end example +- +-@noindent +-System: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Command}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Passes the command @var{Command} to a shell (see @code{system(3)}). +-Returns the value returned by +-@code{system(3)}, presumably 0 if the shell command succeeded. +-Note that which shell is used to invoke the command is system-dependent +-and environment-dependent. +- +-Due to the side effects performed by this intrinsic, the function +-form is not recommended. +-However, the function form can be valid in cases where the +-actual side effects performed by the call are unimportant to +-the application. +- +-For example, on a UNIX system, @samp{SAME = SYSTEM('cmp a b')} +-does not perform any side effects likely to be important to the +-program, so the programmer would not care if the actual system +-call (and invocation of @code{cmp}) was optimized away in a situation +-where the return value could be determined otherwise, or was not +-actually needed (@samp{SAME} not actually referenced after the +-sample assignment statement). +- +-For information on other intrinsics with the same name: +-@xref{System Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF90 +-@node System_Clock Intrinsic +-@subsubsection System_Clock Intrinsic +-@cindex System_Clock intrinsic +-@cindex intrinsics, System_Clock +- +-@noindent +-@example +-CALL System_Clock(@var{Count}, @var{Rate}, @var{Max}) +-@end example +- +-@noindent +-@var{Count}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT). +- +-@noindent +-@var{Rate}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-@var{Max}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{f90}. +- +-@noindent +-Description: +- +-Returns in @var{Count} the current value of the system clock; this is +-the value returned by the UNIX function @code{times(2)} +-in this implementation, but +-isn't in general. +-@var{Rate} is the number of clock ticks per second and +-@var{Max} is the maximum value this can take, which isn't very useful +-in this implementation since it's just the maximum C @code{unsigned +-int} value. +- +-@cindex wraparound, timings +-@cindex limits, timings +-On some systems, the underlying timings are represented +-using types with sufficiently small limits that overflows +-(wraparounds) are possible, such as 32-bit types. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-@end ifset +-@ifset familyF77 +-@node Tan Intrinsic +-@subsubsection Tan Intrinsic +-@cindex Tan intrinsic +-@cindex intrinsics, Tan +- +-@noindent +-@example +-Tan(@var{X}) +-@end example +- +-@noindent +-Tan: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the tangent of @var{X}, an angle measured +-in radians. +- +-@xref{ATan Intrinsic}, for the inverse of this function. +- +-@end ifset +-@ifset familyVXT +-@node TanD Intrinsic +-@subsubsection TanD Intrinsic +-@cindex TanD intrinsic +-@cindex intrinsics, TanD +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL TanD} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF77 +-@node TanH Intrinsic +-@subsubsection TanH Intrinsic +-@cindex TanH intrinsic +-@cindex intrinsics, TanH +- +-@noindent +-@example +-TanH(@var{X}) +-@end example +- +-@noindent +-TanH: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}. +- +-@noindent +-@var{X}: @code{REAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: (standard FORTRAN 77). +- +-@noindent +-Description: +- +-Returns the hyperbolic tangent of @var{X}. +- +-@end ifset +-@ifset familyF2U +-@node Time Intrinsic (UNIX) +-@subsubsection Time Intrinsic (UNIX) +-@cindex Time intrinsic +-@cindex intrinsics, Time +- +-@noindent +-@example +-Time() +-@end example +- +-@noindent +-Time: @code{INTEGER(KIND=1)} function. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the current time encoded as an integer +-(in the manner of the UNIX function @code{time(3)}). +-This value is suitable for passing to @code{CTIME}, +-@code{GMTIME}, and @code{LTIME}. +- +-@cindex wraparound, timings +-@cindex limits, timings +-This intrinsic is not fully portable, such as to systems +-with 32-bit @code{INTEGER} types but supporting times +-wider than 32 bits. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-@xref{Time8 Intrinsic}, for information on a +-similar intrinsic that might be portable to more +-GNU Fortran implementations, though to fewer +-Fortran compilers. +- +-For information on other intrinsics with the same name: +-@xref{Time Intrinsic (VXT)}. +- +-@end ifset +-@ifset familyVXT +-@node Time Intrinsic (VXT) +-@subsubsection Time Intrinsic (VXT) +-@cindex Time intrinsic +-@cindex intrinsics, Time +- +-@noindent +-@example +-CALL Time(@var{Time}) +-@end example +- +-@noindent +-@var{Time}: @code{CHARACTER*8}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{vxt}. +- +-@noindent +-Description: +- +-Returns in @var{Time} a character representation of the current time as +-obtained from @code{ctime(3)}. +- +-@cindex Y10K compliance +-@cindex Year 10000 compliance +-@cindex wraparound, Y10K +-@cindex limits, Y10K +-Programs making use of this intrinsic +-might not be Year 10000 (Y10K) compliant. +-For example, the date might appear, +-to such programs, to wrap around +-(change from a larger value to a smaller one) +-as of the Year 10000. +- +-@xref{FDate Intrinsic (subroutine)}, for an equivalent routine. +- +-For information on other intrinsics with the same name: +-@xref{Time Intrinsic (UNIX)}. +- +-@end ifset +-@ifset familyF2U +-@node Time8 Intrinsic +-@subsubsection Time8 Intrinsic +-@cindex Time8 intrinsic +-@cindex intrinsics, Time8 +- +-@noindent +-@example +-Time8() +-@end example +- +-@noindent +-Time8: @code{INTEGER(KIND=2)} function. +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the current time encoded as a long integer +-(in the manner of the UNIX function @code{time(3)}). +-This value is suitable for passing to @code{CTIME}, +-@code{GMTIME}, and @code{LTIME}. +- +-@cindex wraparound, timings +-@cindex limits, timings +-@emph{Warning:} this intrinsic does not increase the range +-of the timing values over that returned by @code{time(3)}. +-On a system with a 32-bit @code{time(3)}, +-@code{TIME8} will return a 32-bit value, +-even though converted to an @samp{INTEGER(KIND=2)} value. +-That means overflows of the 32-bit value can still occur. +-Therefore, the values returned by this intrinsic +-might be, or become, negative, +-or numerically less than previous values, +-during a single run of the compiled program. +- +-No Fortran implementations other than GNU Fortran are +-known to support this intrinsic at the time of this +-writing. +-@xref{Time Intrinsic (UNIX)}, for information on a +-similar intrinsic that might be portable to more Fortran +-compilers, though to fewer GNU Fortran implementations. +- +-@end ifset +-@ifset familyF90 +-@node Tiny Intrinsic +-@subsubsection Tiny Intrinsic +-@cindex Tiny intrinsic +-@cindex intrinsics, Tiny +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Tiny} to use this name for an +-external procedure. +- +-@node Transfer Intrinsic +-@subsubsection Transfer Intrinsic +-@cindex Transfer intrinsic +-@cindex intrinsics, Transfer +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Transfer} to use this name for an +-external procedure. +- +-@node Transpose Intrinsic +-@subsubsection Transpose Intrinsic +-@cindex Transpose intrinsic +-@cindex intrinsics, Transpose +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Transpose} to use this name for an +-external procedure. +- +-@node Trim Intrinsic +-@subsubsection Trim Intrinsic +-@cindex Trim intrinsic +-@cindex intrinsics, Trim +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Trim} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node TtyNam Intrinsic (subroutine) +-@subsubsection TtyNam Intrinsic (subroutine) +-@cindex TtyNam intrinsic +-@cindex intrinsics, TtyNam +- +-@noindent +-@example +-CALL TtyNam(@var{Unit}, @var{Name}) +-@end example +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Name}: @code{CHARACTER}; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Sets @var{Name} to the name of the terminal device open on logical unit +-@var{Unit} or to a blank string if @var{Unit} is not connected to a +-terminal. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine. +- +-For information on other intrinsics with the same name: +-@xref{TtyNam Intrinsic (function)}. +- +-@node TtyNam Intrinsic (function) +-@subsubsection TtyNam Intrinsic (function) +-@cindex TtyNam intrinsic +-@cindex intrinsics, TtyNam +- +-@noindent +-@example +-TtyNam(@var{Unit}) +-@end example +- +-@noindent +-TtyNam: @code{CHARACTER*(*)} function. +- +-@noindent +-@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Returns the name of the terminal device open on logical unit +-@var{Unit} or a blank string if @var{Unit} is not connected to a +-terminal. +- +-For information on other intrinsics with the same name: +-@xref{TtyNam Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF90 +-@node UBound Intrinsic +-@subsubsection UBound Intrinsic +-@cindex UBound intrinsic +-@cindex intrinsics, UBound +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL UBound} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2U +-@node UMask Intrinsic (subroutine) +-@subsubsection UMask Intrinsic (subroutine) +-@cindex UMask intrinsic +-@cindex intrinsics, UMask +- +-@noindent +-@example +-CALL UMask(@var{Mask}, @var{Old}) +-@end example +- +-@noindent +-@var{Mask}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-@var{Old}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Sets the file creation mask to @var{Mask} and returns the old value in +-argument @var{Old} if it is supplied. +-See @code{umask(2)}. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine. +- +-For information on other intrinsics with the same name: +-@xref{UMask Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node UMask Intrinsic (function) +-@subsubsection UMask Intrinsic (function) +-@cindex UMask intrinsic +-@cindex intrinsics, UMask +- +-@noindent +-@example +-UMask(@var{Mask}) +-@end example +- +-@noindent +-UMask: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{Mask}: @code{INTEGER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Sets the file creation mask to @var{Mask} and returns the old value. +-See @code{umask(2)}. +- +-Due to the side effects performed by this intrinsic, the function +-form is not recommended. +- +-For information on other intrinsics with the same name: +-@xref{UMask Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF2U +-@node Unlink Intrinsic (subroutine) +-@subsubsection Unlink Intrinsic (subroutine) +-@cindex Unlink intrinsic +-@cindex intrinsics, Unlink +- +-@noindent +-@example +-CALL Unlink(@var{File}, @var{Status}) +-@end example +- +-@noindent +-@var{File}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). +- +-@noindent +-Intrinsic groups: @code{unix}. +- +-@noindent +-Description: +- +-Unlink the file @var{File}. +-A null character (@samp{CHAR(0)}) marks the end of +-the name in @var{File}---otherwise, +-trailing blanks in @var{File} are ignored. +-If the @var{Status} argument is supplied, it contains +-0 on success or a non-zero error code upon return. +-See @code{unlink(2)}. +- +-Some non-GNU implementations of Fortran provide this intrinsic as +-only a function, not as a subroutine, or do not support the +-(optional) @var{Status} argument. +- +-For information on other intrinsics with the same name: +-@xref{Unlink Intrinsic (function)}. +- +-@end ifset +-@ifset familyBADU77 +-@node Unlink Intrinsic (function) +-@subsubsection Unlink Intrinsic (function) +-@cindex Unlink intrinsic +-@cindex intrinsics, Unlink +- +-@noindent +-@example +-Unlink(@var{File}) +-@end example +- +-@noindent +-Unlink: @code{INTEGER(KIND=1)} function. +- +-@noindent +-@var{File}: @code{CHARACTER}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{badu77}. +- +-@noindent +-Description: +- +-Unlink the file @var{File}. +-A null character (@samp{CHAR(0)}) marks the end of +-the name in @var{File}---otherwise, +-trailing blanks in @var{File} are ignored. +-Returns 0 on success or a non-zero error code. +-See @code{unlink(2)}. +- +-Due to the side effects performed by this intrinsic, the function +-form is not recommended. +- +-For information on other intrinsics with the same name: +-@xref{Unlink Intrinsic (subroutine)}. +- +-@end ifset +-@ifset familyF90 +-@node Unpack Intrinsic +-@subsubsection Unpack Intrinsic +-@cindex Unpack intrinsic +-@cindex intrinsics, Unpack +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Unpack} to use this name for an +-external procedure. +- +-@node Verify Intrinsic +-@subsubsection Verify Intrinsic +-@cindex Verify intrinsic +-@cindex intrinsics, Verify +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL Verify} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2C +-@node XOr Intrinsic +-@subsubsection XOr Intrinsic +-@cindex XOr intrinsic +-@cindex intrinsics, XOr +- +-@noindent +-@example +-XOr(@var{I}, @var{J}) +-@end example +- +-@noindent +-XOr: @code{INTEGER} or @code{LOGICAL} function, the exact type being the result of cross-promoting the +-types of all the arguments. +- +-@noindent +-@var{I}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN). +- +-@noindent +-@var{J}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-Returns value resulting from boolean exclusive-OR of +-pair of bits in each of @var{I} and @var{J}. +- +-@node ZAbs Intrinsic +-@subsubsection ZAbs Intrinsic +-@cindex ZAbs intrinsic +-@cindex intrinsics, ZAbs +- +-@noindent +-@example +-ZAbs(@var{A}) +-@end example +- +-@noindent +-ZAbs: @code{REAL(KIND=2)} function. +- +-@noindent +-@var{A}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-Archaic form of @code{ABS()} that is specific +-to one type for @var{A}. +-@xref{Abs Intrinsic}. +- +-@node ZCos Intrinsic +-@subsubsection ZCos Intrinsic +-@cindex ZCos intrinsic +-@cindex intrinsics, ZCos +- +-@noindent +-@example +-ZCos(@var{X}) +-@end example +- +-@noindent +-ZCos: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-Archaic form of @code{COS()} that is specific +-to one type for @var{X}. +-@xref{Cos Intrinsic}. +- +-@node ZExp Intrinsic +-@subsubsection ZExp Intrinsic +-@cindex ZExp intrinsic +-@cindex intrinsics, ZExp +- +-@noindent +-@example +-ZExp(@var{X}) +-@end example +- +-@noindent +-ZExp: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-Archaic form of @code{EXP()} that is specific +-to one type for @var{X}. +-@xref{Exp Intrinsic}. +- +-@end ifset +-@ifset familyVXT +-@node ZExt Intrinsic +-@subsubsection ZExt Intrinsic +-@cindex ZExt intrinsic +-@cindex intrinsics, ZExt +- +-This intrinsic is not yet implemented. +-The name is, however, reserved as an intrinsic. +-Use @samp{EXTERNAL ZExt} to use this name for an +-external procedure. +- +-@end ifset +-@ifset familyF2C +-@node ZLog Intrinsic +-@subsubsection ZLog Intrinsic +-@cindex ZLog intrinsic +-@cindex intrinsics, ZLog +- +-@noindent +-@example +-ZLog(@var{X}) +-@end example +- +-@noindent +-ZLog: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-Archaic form of @code{LOG()} that is specific +-to one type for @var{X}. +-@xref{Log Intrinsic}. +- +-@node ZSin Intrinsic +-@subsubsection ZSin Intrinsic +-@cindex ZSin intrinsic +-@cindex intrinsics, ZSin +- +-@noindent +-@example +-ZSin(@var{X}) +-@end example +- +-@noindent +-ZSin: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-Archaic form of @code{SIN()} that is specific +-to one type for @var{X}. +-@xref{Sin Intrinsic}. +- +-@node ZSqRt Intrinsic +-@subsubsection ZSqRt Intrinsic +-@cindex ZSqRt intrinsic +-@cindex intrinsics, ZSqRt +- +-@noindent +-@example +-ZSqRt(@var{X}) +-@end example +- +-@noindent +-ZSqRt: @code{COMPLEX(KIND=2)} function. +- +-@noindent +-@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN). +- +-@noindent +-Intrinsic groups: @code{f2c}. +- +-@noindent +-Description: +- +-Archaic form of @code{SQRT()} that is specific +-to one type for @var{X}. +-@xref{SqRt Intrinsic}. +- +-@end ifset diff --git a/lang/gcc/patches/patch-ab b/lang/gcc/patches/patch-ab new file mode 100644 index 00000000000..ff2af309a8e --- /dev/null +++ b/lang/gcc/patches/patch-ab @@ -0,0 +1,166 @@ +$NetBSD: patch-ab,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/i386/netbsd-elf.h.orig Sat Sep 16 00:17:42 2000 ++++ ../gcc-2.95.2/gcc/config/i386/netbsd-elf.h Sat Sep 16 00:17:42 2000 +@@ -0,0 +1,161 @@ ++/* Definitions of target machine for GNU compiler, ++ for i386 NetBSD systems. ++ Copyright (C) 1998 Free Software Foundation, Inc. ++ ++This file is part of GNU CC. ++ ++GNU CC is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 2, or (at your option) ++any later version. ++ ++GNU CC is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GNU CC; see the file COPYING. If not, write to ++the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ++ ++/* This is used on i386 platforms that use the ELF format. ++ This was taken from the NetBSD/alpha configuration, and modified ++ for NetBSD/i386 by Christos Zoulas <christos@netbsd.org> */ ++ ++/* Get generic i386 definitions. */ ++ ++/* This goes away when the math-emulator is fixed */ ++#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ ++ ++#include <i386/gstabs.h> ++ ++/* Get perform_* macros to build libgcc.a. */ ++#include <i386/perform.h> ++ ++/* Get generic NetBSD ELF definitions. We will override these if necessary. */ ++ ++#define NETBSD_ELF ++#include <netbsd.h> ++ ++#undef ASM_FINAL_SPEC ++ ++/* Names to predefine in the preprocessor for this target machine. */ ++ ++#undef CPP_PREDEFINES ++#define CPP_PREDEFINES "\ ++-Dunix -Di386 -D__NetBSD__ -D__ELF__ \ ++-Asystem(unix) -Asystem(NetBSD) -Acpu(i386) -Amachine(i386)" ++ ++/* Make gcc agree with <machine/ansi.h> */ ++ ++#undef SIZE_TYPE ++#define SIZE_TYPE "unsigned int" ++ ++#undef PTRDIFF_TYPE ++#define PTRDIFF_TYPE "int" ++ ++#undef WCHAR_TYPE ++#define WCHAR_TYPE "int" ++ ++#undef WCHAR_UNSIGNED ++#define WCHAR_UNSIGNED 0 ++ ++#undef WCHAR_TYPE_SIZE ++#define WCHAR_TYPE_SIZE 32 ++ ++/* Output assembler code to FILE to increment profiler label # LABELNO ++ for profiling a function entry. Under NetBSD/i386, the assembler does ++ nothing special with -pg. */ ++ ++#undef ASM_APP_ON ++#define ASM_APP_ON "#APP\n" ++ ++#undef ASM_APP_OFF ++#define ASM_APP_OFF "#NO_APP\n" ++ ++#define bsd4_4 ++#undef HAS_INIT_SECTION ++ ++/* Provide a LINK_SPEC appropriate for a NetBSD/alpha ELF target. Only ++ the linker emulation is i386-specific. The rest are ++ common to all ELF targets, except for the name of the start function. */ ++ ++#undef LINK_SPEC ++#define LINK_SPEC \ ++ "-m elf_i386 \ ++ %{assert*} %{R*} \ ++ %{shared:-shared} \ ++ %{!shared: \ ++ -dc -dp \ ++ %{!nostdlib:%{!r*:%{!e*:-e __start}}} \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \ ++ %{static:-static}}" ++ ++#undef DEFAULT_VTABLE_THUNKS ++#define DEFAULT_VTABLE_THUNKS 1 ++ ++#undef ASM_OUTPUT_ALIGN ++#define ASM_OUTPUT_ALIGN(FILE,LOG) \ ++ if ((LOG)!=0) fprintf ((FILE), "\t.align %d\n", 1 << (LOG)) ++ ++/* This is how we tell the assembler that two symbols have the same value. */ ++ ++#define ASM_OUTPUT_DEF(FILE,NAME1,NAME2) \ ++ do { assemble_name(FILE, NAME1); \ ++ fputs(" = ", FILE); \ ++ assemble_name(FILE, NAME2); \ ++ fputc('\n', FILE); } while (0) ++ ++/* ++ * We always use gas here, so we don't worry about ECOFF assembler problems. ++ */ ++#undef TARGET_GAS ++#define TARGET_GAS (1) ++ ++/* The following macros are stolen from i386v4.h */ ++/* These have to be defined to get PIC code correct */ ++ ++/* This is how to output an element of a case-vector that is relative. ++ This is only used for PIC code. See comments by the `casesi' insn in ++ i386.md for an explanation of the expression this outputs. */ ++ ++#undef ASM_OUTPUT_ADDR_DIFF_ELT ++#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \ ++ fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE) ++ ++/* Indicate that jump tables go in the text section. This is ++ necessary when compiling PIC code. */ ++ ++#define JUMP_TABLES_IN_TEXT_SECTION 1 ++ ++/* Default to pcc-struct-return, because this is the ELF abi and ++ we don't care about compatibility with older gcc versions. */ ++#define DEFAULT_PCC_STRUCT_RETURN 1 ++ ++/* Profiling routines, partially copied from i386/osfrose.h. */ ++ ++/* Redefine this to use %eax instead of %edx. */ ++#undef FUNCTION_PROFILER ++#define FUNCTION_PROFILER(FILE, LABELNO) \ ++{ \ ++ if (flag_pic) \ ++ { \ ++ fprintf (FILE, "\tcall __mcount@PLT\n"); \ ++ } \ ++ else \ ++ { \ ++ fprintf (FILE, "\tcall __mcount\n"); \ ++ } \ ++} ++ ++/* Put relocations in the constant pool in the writable data section. */ ++#undef SELECT_RTX_SECTION ++#define SELECT_RTX_SECTION(MODE,RTX) \ ++{ \ ++ if (flag_pic && symbolic_operand (RTX)) \ ++ data_section (); \ ++ else \ ++ readonly_data_section (); \ ++} diff --git a/lang/gcc/patches/patch-ac b/lang/gcc/patches/patch-ac new file mode 100644 index 00000000000..141016ca174 --- /dev/null +++ b/lang/gcc/patches/patch-ac @@ -0,0 +1,28 @@ +$NetBSD: patch-ac,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/i386/xm-netbsd.h.orig Sat Sep 16 00:17:42 2000 ++++ ../gcc-2.95.2/gcc/config/i386/xm-netbsd.h Sat Sep 16 00:17:42 2000 +@@ -0,0 +1,23 @@ ++/* Configuration file for i386 hosts running NetBSD. ++ Copyright (C) 1999 Free Software Foundation, Inc. ++ ++This file is part of GNU CC. ++ ++GNU CC is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 2, or (at your option) ++any later version. ++ ++GNU CC is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GNU CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++#include <xm-netbsd.h> ++#include <i386/xm-i386.h> ++ diff --git a/lang/gcc/patches/patch-ad b/lang/gcc/patches/patch-ad new file mode 100644 index 00000000000..423a71ba2b3 --- /dev/null +++ b/lang/gcc/patches/patch-ad @@ -0,0 +1,78 @@ +$NetBSD: patch-ad,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/sparc/netbsd-elf-common.h.orig Sat Sep 16 00:17:42 2000 ++++ ../gcc-2.95.2/gcc/config/sparc/netbsd-elf-common.h Sat Sep 16 00:17:42 2000 +@@ -0,0 +1,73 @@ ++/* NetBSD/sparc ELF common 32/64 bit configuration */ ++ ++#define OBJECT_FORMAT_ELF ++#define NETBSD_ELF ++#include <netbsd.h> ++ ++/* Fix up CPP_SPEC. This merges the code from <netbsd.h> and <sparc/sparc.h> */ ++#undef CPP_SPEC ++#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} \ ++%(cpp_cpu) %(cpp_arch) %(cpp_endian) %(cpp_subtarget)" ++ ++#undef CPP_PREDEFINES ++#define CPP_PREDEFINES "-D__sparc__ -D__NetBSD__ -D__ELF__ \ ++-Asystem(unix) -Asystem(NetBSD)" ++ ++#undef SIZE_TYPE ++#define SIZE_TYPE "long unsigned int" ++ ++#undef PTRDIFF_TYPE ++#define PTRDIFF_TYPE "long int" ++ ++#undef WCHAR_TYPE ++#define WCHAR_TYPE "int" ++ ++#undef WCHAR_TYPE_SIZE ++#define WCHAR_TYPE_SIZE 32 ++ ++#undef WCHAR_UNSIGNED ++#define WCHAR_UNSIGNED 0 ++ ++#undef PREFERRED_DEBUGGING_TYPE ++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG ++ ++/* This is the char to use for continuation (in case we need to turn ++ continuation back on). */ ++#undef DBX_CONTIN_CHAR ++#define DBX_CONTIN_CHAR '?' ++ ++#undef DBX_REGISTER_NUMBER ++#define DBX_REGISTER_NUMBER(REGNO) \ ++ (TARGET_FLAT && REGNO == FRAME_POINTER_REGNUM ? 31 : REGNO) ++ ++/* This is how to output a definition of an internal numbered label where ++ PREFIX is the class of label and NUM is the number within the class. */ ++ ++#undef ASM_OUTPUT_INTERNAL_LABEL ++#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \ ++ fprintf (FILE, ".L%s%d:\n", PREFIX, NUM) ++ ++/* This is how to store into the string LABEL ++ the symbol_ref name of an internal numbered label where ++ PREFIX is the class of label and NUM is the number within the class. ++ This is suitable for output with `assemble_name'. */ ++ ++#undef ASM_GENERATE_INTERNAL_LABEL ++#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \ ++ sprintf ((LABEL), "*.L%s%ld", (PREFIX), (long)(NUM)) ++ ++#undef ASM_SPEC ++#define ASM_SPEC "%{fpic:-K PIC} %{fPIC:-K PIC} \ ++%{mlittle-endian:-EL} \ ++%(asm_cpu) %(asm_arch)\ ++" ++ ++#undef STDC_0_IN_SYSTEM_HEADERS ++ ++/** We don't have the C++ support for this (yet). */ ++#undef DWARF2_UNWIND_INFO ++#define DWARF2_UNWIND_INFO 0 ++ ++/* XXX Redefine this; <sparc/sparc.h> mucks with it. */ ++#undef TARGET_VERSION ++#define TARGET_VERSION fprintf (stderr, " (%s)", TARGET_NAME); diff --git a/lang/gcc/patches/patch-ae b/lang/gcc/patches/patch-ae new file mode 100644 index 00000000000..10ded4d3f17 --- /dev/null +++ b/lang/gcc/patches/patch-ae @@ -0,0 +1,47 @@ +$NetBSD: patch-ae,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/sparc/netbsd-elf.h.orig Sat Sep 16 00:17:42 2000 ++++ ../gcc-2.95.2/gcc/config/sparc/netbsd-elf.h Sat Sep 16 00:17:42 2000 +@@ -0,0 +1,42 @@ ++/* NetBSD/sparc ELF configuration */ ++ ++/* ++ * Pull in generic SPARC ELF configuration, and then clean up ++ * afterwards ++ */ ++#include <sparc/elf.h> ++ ++/* Name the target CPU. */ ++#ifndef TARGET_CPU_DEFAULT ++#define TARGET_CPU_DEFAULT TARGET_CPU_sparc ++#endif ++ ++#undef MULDI3_LIBCALL ++#undef DIVDI3_LIBCALL ++#undef UDIVDI3_LIBCALL ++#undef MODDI3_LIBCALL ++#undef UMODDI3_LIBCALL ++#undef INIT_SUBTARGET_OPTABS ++#define INIT_SUBTARGET_OPTABS ++ ++#undef CPP_SUBTARGET_SPEC ++#define CPP_SUBTARGET_SPEC "-D__sparc" ++ ++#include <sparc/netbsd-elf-common.h> ++ ++#undef LINK_SPEC ++#define LINK_SPEC \ ++ "-m elf32_sparc \ ++ %{assert*} %{R*} \ ++ %{shared:-shared} \ ++ %{!shared: \ ++ -dy -dc -dp \ ++ %{!nostdlib:%{!r*:%{!e*:-e __start}}} \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \ ++ %{static:-static}}" ++ ++/* Name the port. */ ++#undef TARGET_NAME ++#define TARGET_NAME "sparc-netbsdelf" diff --git a/lang/gcc/patches/patch-af b/lang/gcc/patches/patch-af new file mode 100644 index 00000000000..e5af2414915 --- /dev/null +++ b/lang/gcc/patches/patch-af @@ -0,0 +1,174 @@ +$NetBSD: patch-af,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/sparc/netbsd64.h.orig Sat Sep 16 00:17:42 2000 ++++ ../gcc-2.95.2/gcc/config/sparc/netbsd64.h Sat Sep 16 00:17:42 2000 +@@ -0,0 +1,169 @@ ++/* NetBSD/sparc64 ELF configuration */ ++ ++/* ++ * Pull in generic SPARC64 ELF configuration, and then clean up ++ * afterwards ++ */ ++ ++/* Let us output 32 bit code as well */ ++#define SPARC_BI_ARCH ++ ++/* Name the target CPU. This must be before <sparc/sparc.h>. */ ++#ifndef TARGET_CPU_DEFAULT ++#define TARGET_CPU_DEFAULT TARGET_CPU_ultrasparc ++#endif ++ ++#include <sparc/sp64-elf.h> ++ ++#include <sparc/netbsd-elf-common.h> ++ ++#undef CPP_SUBTARGET_SPEC ++#define CPP_SUBTARGET_SPEC "-D__sparc64__" ++ ++#undef LINK_SPEC64 ++#define LINK_SPEC64 \ ++ "-m elf64_sparc \ ++ %{assert*} %{R*} \ ++ %{shared:-shared} \ ++ %{!shared: \ ++ -dy -dc -dp \ ++ %{!nostdlib:%{!r*:%{!e*:-e __start}}} \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \ ++ %{static:-static}}" ++ ++#undef LINK_SPEC ++#define LINK_SPEC LINK_SPEC64 ++ ++#ifdef SPARC_BI_ARCH ++ ++#undef STARTFILE_SPEC64 ++#define STARTFILE_SPEC64 \ ++ "%{!shared: \ ++ %{pg:gcrt0%O%s} \ ++ %{!pg: \ ++ %{p:gcrt0%O%s} \ ++ %{!p:crt0%O%s}}} \ ++ %{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}" ++ ++#undef STARTFILE_SPEC32 ++#define STARTFILE_SPEC32 \ ++ "%{!shared: \ ++ %{pg:/emul/netbsd32/usr/lib/gcrt0%O%s} \ ++ %{!pg: \ ++ %{p:/emul/netbsd32/usr/lib/gcrt0%O%s} \ ++ %{!p:/emul/netbsd32/usr/lib/crt0%O%s}}} \ ++ %{!shared:/emul/netbsd32/usr/lib/crtbegin%O%s} %{shared:/emul/netbsd32/usr/lib/crtbeginS%O%s}" ++ ++#undef STARTFILE_SPEC ++#if DEFAULT_ARCH32_P ++#define STARTFILE_SPEC "\ ++%{m32:" STARTFILE_SPEC32 "} \ ++%{m64:" STARTFILE_SPEC64 "} \ ++%{!m32:%{!m64:" STARTFILE_SPEC32 "}}" ++#else ++#define STARTFILE_SPEC "\ ++%{m32:" STARTFILE_SPEC32 "} \ ++%{m64:" STARTFILE_SPEC64 "} \ ++%{!m32:%{!m64:" STARTFILE_SPEC64 "}}" ++#endif ++ ++#undef ENDFILE_SPEC64 ++#define ENDFILE_SPEC64 \ ++ "%{!shared:crtend%O%s} %{shared:crtendS%O%s}" ++ ++#undef ENDFILE_SPEC32 ++#define ENDFILE_SPEC32 \ ++ "%{!shared:/emul/netbsd32/usr/lib/crtend%O%s} %{shared:/emul/netbsd32/usr/lib/crtendS%O%s}" ++ ++#undef ENDFILE_SPEC ++#if DEFAULT_ARCH32_P ++#define ENDFILE_SPEC "\ ++%{m32:" ENDFILE_SPEC32 "} \ ++%{m64:" ENDFILE_SPEC64 "} \ ++%{!m32:%{!m64:" ENDFILE_SPEC32 "}}" ++#else ++#define ENDFILE_SPEC "\ ++%{m32:" ENDFILE_SPEC32 "} \ ++%{m64:" ENDFILE_SPEC64 "} \ ++%{!m32:%{!m64:" ENDFILE_SPEC64 "}}" ++#endif ++ ++#undef SUBTARGET_EXTRA_SPECS ++#define SUBTARGET_EXTRA_SPECS \ ++ { "link_arch32", LINK_ARCH32_SPEC }, \ ++ { "link_arch64", LINK_ARCH64_SPEC }, \ ++ { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ ++ { "link_arch", LINK_ARCH_SPEC }, ++ ++#undef LINK_ARCH32_SPEC ++#define LINK_ARCH32_SPEC \ ++ "-m elf32_sparc \ ++ -Y P,/emul/netbsd32/usr/lib \ ++ %{assert*} %{R*} \ ++ %{shared:-shared} \ ++ %{!shared: \ ++ -dy -dc -dp \ ++ %{!nostdlib:%{!r*:%{!e*:-e __start}}} \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \ ++ %{static:-static}}" ++ ++#undef LINK_ARCH64_SPEC ++#define LINK_ARCH64_SPEC LINK_SPEC64 ++ ++#define LINK_ARCH_SPEC "\ ++%{m32:%(link_arch32)} \ ++%{m64:%(link_arch64)} \ ++%{!m32:%{!m64:%(link_arch_default)}} \ ++" ++ ++#define LINK_ARCH_DEFAULT_SPEC \ ++(DEFAULT_ARCH32_P ? LINK_ARCH32_SPEC : LINK_ARCH64_SPEC) ++ ++#undef LINK_SPEC ++#define LINK_SPEC "\ ++%(link_arch) \ ++%{mlittle-endian:-EL} \ ++" ++ ++#undef CC1_SPEC ++#if DEFAULT_ARCH32_P ++#define CC1_SPEC "\ ++%{sun4:} %{target:} \ ++%{mcypress:-mcpu=cypress} \ ++%{msparclite:-mcpu=sparclite} %{mf930:-mcpu=f930} %{mf934:-mcpu=f934} \ ++%{mv8:-mcpu=v8} %{msupersparc:-mcpu=supersparc} \ ++%{m64:-mptr64 -mcpu=ultrasparc -mstack-bias} \ ++" ++#else ++#define CC1_SPEC "\ ++%{sun4:} %{target:} \ ++%{mcypress:-mcpu=cypress} \ ++%{msparclite:-mcpu=sparclite} %{mf930:-mcpu=f930} %{mf934:-mcpu=f934} \ ++%{mv8:-mcpu=v8} %{msupersparc:-mcpu=supersparc} \ ++%{m32:-mptr32 -mcpu=cypress -mno-stack-bias} \ ++" ++#endif ++ ++#if DEFAULT_ARCH32_P ++#define MULTILIB_DEFAULTS { "m32" } ++#else ++#define MULTILIB_DEFAULTS { "m64" } ++#endif ++ ++#undef CPP_SUBTARGET_SPEC ++#define CPP_SUBTARGET_SPEC \ ++(DEFAULT_ARCH32_P ? "\ ++%{m64:-D__sparc64__}%{!m64:-D__sparc} \ ++" : "\ ++%{!m32:-D__sparc64__}%{m32:-D__sparc} \ ++") ++ ++#endif /* SPARC_BI_ARCH */ ++ ++/* Name the port. */ ++#undef TARGET_NAME ++#define TARGET_NAME "sparc64-netbsd" diff --git a/lang/gcc/patches/patch-ag b/lang/gcc/patches/patch-ag new file mode 100644 index 00000000000..ce8909f1bc0 --- /dev/null +++ b/lang/gcc/patches/patch-ag @@ -0,0 +1,16 @@ +$NetBSD: patch-ag,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/sparc/sparc.md.orig Thu Oct 21 07:35:40 1999 ++++ ../gcc-2.95.2/gcc/config/sparc/sparc.md Sat Sep 16 00:17:42 2000 +@@ -3472,10 +3472,7 @@ + (define_split + [(set (match_operand:TF 0 "register_operand" "") + (match_operand:TF 1 "register_operand" ""))] +- "reload_completed +- && (! TARGET_ARCH64 +- || (TARGET_FPU +- && ! TARGET_HARD_QUAD))" ++ "reload_completed" + [(clobber (const_int 0))] + " + { diff --git a/lang/gcc/patches/patch-ah b/lang/gcc/patches/patch-ah new file mode 100644 index 00000000000..7f3519b0304 --- /dev/null +++ b/lang/gcc/patches/patch-ah @@ -0,0 +1,34 @@ +$NetBSD: patch-ah,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/sparc/sysv4.h.orig Mon Jun 21 19:48:53 1999 ++++ ../gcc-2.95.2/gcc/config/sparc/sysv4.h Sat Sep 16 00:17:42 2000 +@@ -210,6 +210,29 @@ + #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ + asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) + ++/* A C statement (sans semicolon) to output an element in the table of ++ global constructors. */ ++#undef ASM_OUTPUT_CONSTRUCTOR ++#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \ ++ do { \ ++ ctors_section (); \ ++ fprintf (FILE, "\t%s\t ", TARGET_ARCH64 ? ASM_LONGLONG : INT_ASM_OP); \ ++ assemble_name (FILE, NAME); \ ++ fprintf (FILE, "\n"); \ ++ } while (0) ++ ++/* A C statement (sans semicolon) to output an element in the table of ++ global destructors. */ ++#undef ASM_OUTPUT_DESTRUCTOR ++#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \ ++ do { \ ++ dtors_section (); \ ++ fprintf (FILE, "\t%s\t ", TARGET_ARCH64 ? ASM_LONGLONG : INT_ASM_OP); \ ++ assemble_name (FILE, NAME); \ ++ fprintf (FILE, "\n"); \ ++ } while (0) ++ ++ + /* Override the name of the mcount profiling function. */ + + #undef MCOUNT_FUNCTION diff --git a/lang/gcc/patches/patch-ai b/lang/gcc/patches/patch-ai new file mode 100644 index 00000000000..db6cae11bd9 --- /dev/null +++ b/lang/gcc/patches/patch-ai @@ -0,0 +1,9 @@ +$NetBSD: patch-ai,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/sparc/xm-netbsd.h.orig Sat Sep 16 00:17:42 2000 ++++ ../gcc-2.95.2/gcc/config/sparc/xm-netbsd.h Sat Sep 16 00:17:42 2000 +@@ -0,0 +1,4 @@ ++/* Configuration for GCC for Sun SPARC running NetBSD as host. */ ++ ++#include <sparc/xm-sparc.h> ++#include <xm-netbsd.h> diff --git a/lang/gcc/patches/patch-aj b/lang/gcc/patches/patch-aj new file mode 100644 index 00000000000..7c4f566703e --- /dev/null +++ b/lang/gcc/patches/patch-aj @@ -0,0 +1,9 @@ +$NetBSD: patch-aj,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/sparc/xm-netbsd64.h.orig Sat Sep 16 00:17:42 2000 ++++ ../gcc-2.95.2/gcc/config/sparc/xm-netbsd64.h Sat Sep 16 00:17:42 2000 +@@ -0,0 +1,4 @@ ++/* Configuration for GCC for Sun SPARC V9 running NetBSD as host. */ ++ ++#include <xm-netbsd.h> ++#include <sparc/xm-sp64.h> diff --git a/lang/gcc/patches/patch-ak b/lang/gcc/patches/patch-ak new file mode 100644 index 00000000000..30c0514f068 --- /dev/null +++ b/lang/gcc/patches/patch-ak @@ -0,0 +1,49 @@ +$NetBSD: patch-ak,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/elfos.h.orig Fri Mar 26 11:45:26 1999 ++++ ../gcc-2.95.2/gcc/config/elfos.h Sat Sep 16 00:17:42 2000 +@@ -48,6 +48,7 @@ + + /* Output #ident as a .ident. */ + ++#undef ASM_OUTPUT_IDENT + #define ASM_OUTPUT_IDENT(FILE, NAME) \ + fprintf (FILE, "\t%s\t\"%s\"\n", IDENT_ASM_OP, NAME); + +@@ -92,6 +93,10 @@ + #undef SET_ASM_OP + #define SET_ASM_OP ".set" + ++/* We want local labels to start with period if made with asm_fprintf. */ ++#undef LOCAL_LABEL_PREFIX ++#define LOCAL_LABEL_PREFIX "." ++ + /* This is how to begin an assembly language file. Most svr4 assemblers want + at least a .file directive to come first, and some want to see a .version + directive come right after that. Here we just establish a default +@@ -130,7 +135,7 @@ + #undef ASM_OUTPUT_INTERNAL_LABEL + #define ASM_OUTPUT_INTERNAL_LABEL(FILE, PREFIX, NUM) \ + do { \ +- fprintf (FILE, ".%s%d:\n", PREFIX, NUM); \ ++ fprintf (FILE, "%s%s%d:\n", LOCAL_LABEL_PREFIX, PREFIX, NUM); \ + } while (0) + + /* This is how to store into the string LABEL +@@ -144,7 +149,7 @@ + #undef ASM_GENERATE_INTERNAL_LABEL + #define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM) \ + do { \ +- sprintf (LABEL, "*.%s%d", PREFIX, NUM); \ ++ sprintf (LABEL, "*%s%s%d", LOCAL_LABEL_PREFIX, PREFIX, NUM); \ + } while (0) + + /* Output the label which precedes a jumptable. Note that for all svr4 +@@ -461,6 +466,7 @@ + + /* This is how we tell the assembler that a symbol is weak. */ + ++#undef ASM_WEAKEN_LABEL + #define ASM_WEAKEN_LABEL(FILE,NAME) \ + do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \ + fputc ('\n', FILE); } while (0) diff --git a/lang/gcc/patches/patch-al b/lang/gcc/patches/patch-al new file mode 100644 index 00000000000..b462186bb97 --- /dev/null +++ b/lang/gcc/patches/patch-al @@ -0,0 +1,104 @@ +$NetBSD: patch-al,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/netbsd.h.orig Wed Dec 16 21:59:58 1998 ++++ ../gcc-2.95.2/gcc/config/netbsd.h Sat Sep 16 00:17:42 2000 +@@ -48,17 +48,31 @@ + #define ASM_SPEC " %| %{fpic:-k} %{fPIC:-k -K}" + + /* Provide a LIB_SPEC appropriate for NetBSD. Just select the appropriate +- libc, depending on whether we're doing profiling. */ ++ libc, depending on whether we're doing profiling; if `-posix' is specified, ++ link against the appropriate libposix first. */ + + #undef LIB_SPEC +-#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}" ++#define LIB_SPEC \ ++ "%{posix:%{!p:%{!pg:-lposix}}%{p:-lposix_p}%{pg:-lposix_p}} \ ++ %{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}" ++ ++/* #ifdef NETBSD_AOUT */ ++ ++/* Provide a STARTFILE_SPEC appropriate for NetBSD a.out. Here we ++ provide support for the special GCC option -static. */ ++ ++#undef STARTFILE_SPEC ++#define STARTFILE_SPEC \ ++ "%{!shared:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:%{!static:crt0%O%s}%{static:scrt0%O%s}}}} %{shared:c++rt0%O%s}" + + /* Provide a LINK_SPEC appropriate for NetBSD. Here we provide support + for the special GCC options -static, -assert, and -nostdlib. */ + + #undef LINK_SPEC + #define LINK_SPEC \ +- "%{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{R*} %{static:-Bstatic} %{assert*}" ++ "%{nostdlib:-nostdlib} %{!shared:%{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{static:-Bstatic}} %{shared:-Bshareable} %{R*} %{assert*}" ++ ++/* #endif NETBSD_AOUT */ + + /* This defines which switch letters take arguments. */ + #undef SWITCH_TAKES_ARG +@@ -127,6 +141,9 @@ + entries in an ELF object file under SVR4. These macros also output + the starting labels for the relevant functions/objects. */ + ++/* XXX. This is WRONG for alpha. Needs to be verified on other ELF ports. */ ++#ifndef NETBSD_ELF ++ + /* Write the extra assembler code needed to declare a function properly. + Some svr4 assemblers need to also have something extra said about the + function's return value. We allow for that here. */ +@@ -207,3 +224,54 @@ + putc ('\n', FILE); \ + } \ + } while (0) ++ ++#endif /* ! NETBSD_ELF */ ++ ++/* NetBSD ELF support begins here. */ ++ ++#ifdef NETBSD_ELF ++ ++/* Start with generic ELF definitions. */ ++#include "elfos.h" ++ ++#undef DWARF_DEBUGGING_INFO /* XXX */ ++#undef DWARF2_DEBUGGING_INFO /* XXX */ ++ ++/* Provide a STARTFILE_SPEC appropriate for NetBSD ELF targets. Here we ++ provide support for the special GCC option -static. On ELF targets, ++ we also add the crtbegin.o file which provides part of the support ++ for getting C++ file-scope static objects constructed before entering ++ `main'. */ ++ ++#undef STARTFILE_SPEC ++#define STARTFILE_SPEC \ ++ "%{!shared: \ ++ %{pg:gcrt0%O%s} \ ++ %{!pg: \ ++ %{p:gcrt0%O%s} \ ++ %{!p:crt0%O%s}}} \ ++ %{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}" ++ ++/* Provide an ENDFILE_SPEC appropriate for NetBSD ELF targets. Here we ++ add crtend.o, which provides part of the support for getting C++ ++ file-scope static objects deconstructed after exiting `main'. */ ++ ++#undef ENDFILE_SPEC ++#define ENDFILE_SPEC \ ++ "%{!shared:crtend%O%s} %{shared:crtendS%O%s}" ++ ++/* Provide a LINK_SPEC appropriate for a NetBSD ELF target. */ ++ ++#undef LINK_SPEC ++#define LINK_SPEC \ ++ "%{assert*} \ ++ %{shared:-shared} \ ++ %{!shared: \ ++ -dc -dp \ ++ %{!nostdlib:%{!r*:%{!e*:-e __start}}} \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \ ++ %{static:-static}}" ++ ++#endif /* NETBSD_ELF */ diff --git a/lang/gcc/patches/patch-am b/lang/gcc/patches/patch-am new file mode 100644 index 00000000000..ff0a4ebd3f9 --- /dev/null +++ b/lang/gcc/patches/patch-am @@ -0,0 +1,37 @@ +$NetBSD: patch-am,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/xm-netbsd.h.orig Sat Sep 16 00:17:42 2000 ++++ ../gcc-2.95.2/gcc/config/xm-netbsd.h Sat Sep 16 00:17:42 2000 +@@ -0,0 +1,32 @@ ++/* Configuration for GNU C-compiler for hosts running NetBSD. ++ Copyright (C) 1995 Free Software Foundation, Inc. ++ ++This file is part of GNU CC. ++ ++GNU CC is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 2, or (at your option) ++any later version. ++ ++GNU CC is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with GNU CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++/* This file defines machine-independent things specific to a host ++ running NetBSD. This file should not be specified as $xm_file itself; ++ instead $xm_file should be CPU/xm-netbsd.h, which should include both ++ CPU/xm-CPU.h and this file xm-netbsd.h. */ ++ ++#undef POSIX ++#define POSIX ++ ++/* Ensure we get gnu C's defaults. */ ++#ifdef __GNUC__ ++#define alloca __builtin_alloca ++#endif diff --git a/lang/gcc/patches/patch-an b/lang/gcc/patches/patch-an new file mode 100644 index 00000000000..ff266bd8c17 --- /dev/null +++ b/lang/gcc/patches/patch-an @@ -0,0 +1,11 @@ +$NetBSD: patch-an,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/config/xm-target64.h.orig Sat Sep 16 00:17:42 2000 ++++ ../gcc-2.95.2/gcc/config/xm-target64.h Sat Sep 16 00:17:42 2000 +@@ -0,0 +1,6 @@ ++/* Hack to extend HOST_WIDE_INT on 64-bit target cross compilers. */ ++ ++#ifdef __GNUC__ ++#define HOST_WIDE_INT long long ++#define HOST_BITS_PER_WIDE_INT 64 ++#endif diff --git a/lang/gcc/patches/patch-ao b/lang/gcc/patches/patch-ao new file mode 100644 index 00000000000..3b29cbd8ad2 --- /dev/null +++ b/lang/gcc/patches/patch-ao @@ -0,0 +1,18 @@ +$NetBSD: patch-ao,v 1.1 2000/09/15 23:58:48 tron Exp $ + +--- ../gcc-2.95.2/gcc/objc/objc-act.c.orig Wed Apr 14 22:28:54 1999 ++++ ../gcc-2.95.2/gcc/objc/objc-act.c Sat Sep 16 00:17:43 2000 +@@ -8399,8 +8399,11 @@ + pushdecl (decl); + rest_of_decl_compilation (decl, 0, 0, 0); + +- /* Make following constant read-only (why not)? */ +- readonly_data_section (); ++ /* Make following constant read-only, if not compiling PIC. */ ++ if (flag_pic) ++ data_section(); ++ else ++ readonly_data_section (); + + exp = build1 (ADDR_EXPR, string_type_node, decl); + diff --git a/lang/gcc/patches/patch-ap b/lang/gcc/patches/patch-ap new file mode 100644 index 00000000000..5c96c29bb10 --- /dev/null +++ b/lang/gcc/patches/patch-ap @@ -0,0 +1,12 @@ +$NetBSD: patch-ap,v 1.1 2000/09/15 23:58:49 tron Exp $ + +--- ../gcc-2.95.2/gcc/collect2.c.orig Tue Oct 12 23:16:52 1999 ++++ ../gcc-2.95.2/gcc/collect2.c Sat Sep 16 00:17:41 2000 +@@ -53,7 +53,6 @@ + #define obstack_chunk_alloc xmalloc + #define obstack_chunk_free free + +-extern char *make_temp_file PROTO ((char *)); + + /* On certain systems, we have code that works by scanning the object file + directly. But this code uses system-specific header files and library diff --git a/lang/gcc/patches/patch-aq b/lang/gcc/patches/patch-aq new file mode 100644 index 00000000000..da686c11d36 --- /dev/null +++ b/lang/gcc/patches/patch-aq @@ -0,0 +1,64 @@ +$NetBSD: patch-aq,v 1.1 2000/09/15 23:58:49 tron Exp $ + +--- ../gcc-2.95.2/gcc/configure.in.orig Wed Oct 13 09:58:02 1999 ++++ ../gcc-2.95.2/gcc/configure.in Sat Sep 16 01:07:10 2000 +@@ -1156,9 +1156,20 @@ + tmake_file=t-freebsd + ;; + changequote(,)dnl ++ i[34567]86-*-netbsdelf* | \ ++ i[34567]86-*-netbsd1.4[I-Z]* | \ ++ i[34567]86-*-netbsd1.[5-9]* | \ ++ i[34567]86-*-netbsd2*) ++changequote([,])dnl ++ tm_file=i386/netbsd-elf.h ++ xm_file=i386/xm-netbsd.h ++ tmake_file=t-netbsd ++ ;; ++changequote(,)dnl + i[34567]86-*-netbsd*) + changequote([,])dnl + tm_file=i386/netbsd.h ++ xm_file=i386/xm-netbsd.h + tmake_file=t-netbsd + use_collect2=yes + ;; +@@ -3021,6 +3032,12 @@ + tmake_file=sparc/t-sparcbare + tm_file="sparc/aout.h libgloss.h" + ;; ++ sparc-*-netbsd*elf*) ++ tm_file=sparc/netbsdelf.h ++ xm_file=sparc/xm-netbsd.h ++ tmake_file=t-netbsd ++ use_collect2=yes ++ ;; + sparc-*-netbsd*) + tm_file=sparc/netbsd.h + tmake_file=t-netbsd +@@ -3216,6 +3233,12 @@ + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes + ;; ++ sparc64-*-netbsd*) ++ tm_file=sparc/netbsd64.h ++ xm_file=sparc/xm-netbsd64.h ++ tmake_file=t-netbsd ++ use_collect2=yes ++ ;; + # This hasn't been upgraded to GCC 2. + # tahoe-harris-*) # Harris tahoe, using COFF. + # tm_file=tahoe/harris.h +@@ -3556,6 +3579,12 @@ + enable_haifa=yes;; + esac + fi ++ ++case $target in ++ alpha*|sparc64*) ++ build_xm_file="${build_xm_file} xm-target64.h" ++ host_xm_file="${host_xm_file} xm-target64.h";; ++esac + + # Handle cpp installation. + if test x$enable_cpp != xno diff --git a/lang/gcc/patches/patch-ar b/lang/gcc/patches/patch-ar new file mode 100644 index 00000000000..c3730d97396 --- /dev/null +++ b/lang/gcc/patches/patch-ar @@ -0,0 +1,1737 @@ +$NetBSD: patch-ar,v 1.1 2000/09/15 23:58:49 tron Exp $ + +--- ../gcc-2.95.2/gcc/configure.orig Wed Oct 13 09:58:02 1999 ++++ ../gcc-2.95.2/gcc/configure Sat Sep 16 01:07:10 2000 +@@ -86,6 +86,7 @@ + program_transform_name=s,x,x, + silent= + site= ++sitefile= + srcdir= + target=NONE + verbose= +@@ -200,6 +201,7 @@ + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages ++ --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure + Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX +@@ -370,6 +372,11 @@ + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + ++ -site-file | --site-file | --site-fil | --site-fi | --site-f) ++ ac_prev=sitefile ;; ++ -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) ++ sitefile="$ac_optarg" ;; ++ + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) +@@ -535,12 +542,16 @@ + srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + + # Prefer explicitly selected file to automatically selected ones. +-if test -z "$CONFIG_SITE"; then +- if test "x$prefix" != xNONE; then +- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" +- else +- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" ++if test -z "$sitefile"; then ++ if test -z "$CONFIG_SITE"; then ++ if test "x$prefix" != xNONE; then ++ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ++ else ++ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" ++ fi + fi ++else ++ CONFIG_SITE="$sitefile" + fi + for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then +@@ -595,7 +606,7 @@ + # - two terminals occur directly after each other + # - the path contains an element with a dot in it + echo $ac_n "checking LIBRARY_PATH variable""... $ac_c" 1>&6 +-echo "configure:599: checking LIBRARY_PATH variable" >&5 ++echo "configure:610: checking LIBRARY_PATH variable" >&5 + case ${LIBRARY_PATH} in + [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) + library_path_setting="contains current directory" +@@ -620,7 +631,7 @@ + # - two terminals occur directly after each other + # - the path contains an element with a dot in it + echo $ac_n "checking GCC_EXEC_PREFIX variable""... $ac_c" 1>&6 +-echo "configure:624: checking GCC_EXEC_PREFIX variable" >&5 ++echo "configure:635: checking GCC_EXEC_PREFIX variable" >&5 + case ${GCC_EXEC_PREFIX} in + [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) + gcc_exec_prefix_setting="contains current directory" +@@ -961,7 +972,7 @@ + fi + + echo $ac_n "checking host system type""... $ac_c" 1>&6 +-echo "configure:965: checking host system type" >&5 ++echo "configure:976: checking host system type" >&5 + + host_alias=$host + case "$host_alias" in +@@ -982,7 +993,7 @@ + echo "$ac_t""$host" 1>&6 + + echo $ac_n "checking target system type""... $ac_c" 1>&6 +-echo "configure:986: checking target system type" >&5 ++echo "configure:997: checking target system type" >&5 + + target_alias=$target + case "$target_alias" in +@@ -1000,7 +1011,7 @@ + echo "$ac_t""$target" 1>&6 + + echo $ac_n "checking build system type""... $ac_c" 1>&6 +-echo "configure:1004: checking build system type" >&5 ++echo "configure:1015: checking build system type" >&5 + + build_alias=$build + case "$build_alias" in +@@ -1027,7 +1038,7 @@ + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1031: checking for $ac_word" >&5 ++echo "configure:1042: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1057,7 +1068,7 @@ + # Extract the first word of "cc", so it can be a program name with args. + set dummy cc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1061: checking for $ac_word" >&5 ++echo "configure:1072: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1108,7 +1119,7 @@ + # Extract the first word of "cl", so it can be a program name with args. + set dummy cl; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1112: checking for $ac_word" >&5 ++echo "configure:1123: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1140,7 +1151,7 @@ + fi + + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +-echo "configure:1144: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++echo "configure:1155: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + + ac_ext=c + # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +@@ -1151,12 +1162,12 @@ + + cat > conftest.$ac_ext << EOF + +-#line 1155 "configure" ++#line 1166 "configure" + #include "confdefs.h" + + main(){return(0);} + EOF +-if { (eval echo configure:1160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then +@@ -1182,12 +1193,12 @@ + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } + fi + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +-echo "configure:1186: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 ++echo "configure:1197: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 + echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 + cross_compiling=$ac_cv_prog_cc_cross + + echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +-echo "configure:1191: checking whether we are using GNU C" >&5 ++echo "configure:1202: checking whether we are using GNU C" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1196,7 +1207,7 @@ + yes; + #endif + EOF +-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1211: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes + else + ac_cv_prog_gcc=no +@@ -1215,7 +1226,7 @@ + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +-echo "configure:1219: checking whether ${CC-cc} accepts -g" >&5 ++echo "configure:1230: checking whether ${CC-cc} accepts -g" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1258,7 +1269,7 @@ + + + echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +-echo "configure:1262: checking whether ${MAKE-make} sets \${MAKE}" >&5 ++echo "configure:1273: checking whether ${MAKE-make} sets \${MAKE}" >&5 + set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -1286,7 +1297,7 @@ + + + echo $ac_n "checking whether a default assembler was specified""... $ac_c" 1>&6 +-echo "configure:1290: checking whether a default assembler was specified" >&5 ++echo "configure:1301: checking whether a default assembler was specified" >&5 + if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then + if test x"$gas_flag" = x"no"; then + echo "$ac_t""yes ($DEFAULT_ASSEMBLER)" 1>&6 +@@ -1298,7 +1309,7 @@ + fi + + echo $ac_n "checking whether a default linker was specified""... $ac_c" 1>&6 +-echo "configure:1302: checking whether a default linker was specified" >&5 ++echo "configure:1313: checking whether a default linker was specified" >&5 + if test x"${DEFAULT_LINKER+set}" = x"set"; then + if test x"$gnu_ld_flag" = x"no"; then + echo "$ac_t""yes ($DEFAULT_LINKER)" 1>&6 +@@ -1310,12 +1321,12 @@ + fi + + # Find some useful tools +-for ac_prog in gawk mawk nawk awk ++for ac_prog in mawk gawk nawk awk + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1319: checking for $ac_word" >&5 ++echo "configure:1330: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1347,7 +1358,7 @@ + # Extract the first word of "flex", so it can be a program name with args. + set dummy flex; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1351: checking for $ac_word" >&5 ++echo "configure:1362: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1381,7 +1392,7 @@ + *) ac_lib=l ;; + esac + echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 +-echo "configure:1385: checking for yywrap in -l$ac_lib" >&5 ++echo "configure:1396: checking for yywrap in -l$ac_lib" >&5 + ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -1389,7 +1400,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-l$ac_lib $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 1393 "configure" ++#line 1404 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -1400,7 +1411,7 @@ + yywrap() + ; return 0; } + EOF +-if { (eval echo configure:1404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -1423,7 +1434,7 @@ + fi + + echo $ac_n "checking whether ln works""... $ac_c" 1>&6 +-echo "configure:1427: checking whether ln works" >&5 ++echo "configure:1438: checking whether ln works" >&5 + if eval "test \"`echo '$''{'gcc_cv_prog_LN'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1455,7 +1466,7 @@ + fi + + echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 +-echo "configure:1459: checking whether ln -s works" >&5 ++echo "configure:1470: checking whether ln -s works" >&5 + if eval "test \"`echo '$''{'gcc_cv_prog_LN_S'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1487,19 +1498,19 @@ + fi + + echo $ac_n "checking for volatile""... $ac_c" 1>&6 +-echo "configure:1491: checking for volatile" >&5 ++echo "configure:1502: checking for volatile" >&5 + if eval "test \"`echo '$''{'gcc_cv_c_volatile'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1496 "configure" ++#line 1507 "configure" + #include "confdefs.h" + + int main() { + volatile int foo; + ; return 0; } + EOF +-if { (eval echo configure:1503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:1514: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + gcc_cv_c_volatile=yes + else +@@ -1522,7 +1533,7 @@ + # Extract the first word of "ranlib", so it can be a program name with args. + set dummy ranlib; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1526: checking for $ac_word" >&5 ++echo "configure:1537: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1554,7 +1565,7 @@ + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1558: checking for $ac_word" >&5 ++echo "configure:1569: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1595,7 +1606,7 @@ + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" + # ./install, which can be erroneously created by make from ./install.sh. + echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +-echo "configure:1599: checking for a BSD compatible install" >&5 ++echo "configure:1610: checking for a BSD compatible install" >&5 + if test -z "$INSTALL"; then + if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -1646,7 +1657,7 @@ + + + echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +-echo "configure:1650: checking how to run the C preprocessor" >&5 ++echo "configure:1661: checking how to run the C preprocessor" >&5 + # On Suns, sometimes $CPP names a directory. + if test -n "$CPP" && test -d "$CPP"; then + CPP= +@@ -1661,13 +1672,13 @@ + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.$ac_ext <<EOF +-#line 1665 "configure" ++#line 1676 "configure" + #include "confdefs.h" + #include <assert.h> + Syntax Error + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1671: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1682: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + : +@@ -1678,13 +1689,13 @@ + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.$ac_ext <<EOF +-#line 1682 "configure" ++#line 1693 "configure" + #include "confdefs.h" + #include <assert.h> + Syntax Error + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1688: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1699: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + : +@@ -1695,13 +1706,13 @@ + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext <<EOF +-#line 1699 "configure" ++#line 1710 "configure" + #include "confdefs.h" + #include <assert.h> + Syntax Error + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1705: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1716: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + : +@@ -1726,12 +1737,12 @@ + echo "$ac_t""$CPP" 1>&6 + + echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +-echo "configure:1730: checking for ANSI C header files" >&5 ++echo "configure:1741: checking for ANSI C header files" >&5 + if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1735 "configure" ++#line 1746 "configure" + #include "confdefs.h" + #include <stdlib.h> + #include <stdarg.h> +@@ -1739,7 +1750,7 @@ + #include <float.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1743: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1754: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -1756,7 +1767,7 @@ + if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 1760 "configure" ++#line 1771 "configure" + #include "confdefs.h" + #include <string.h> + EOF +@@ -1774,7 +1785,7 @@ + if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 1778 "configure" ++#line 1789 "configure" + #include "confdefs.h" + #include <stdlib.h> + EOF +@@ -1795,7 +1806,7 @@ + : + else + cat > conftest.$ac_ext <<EOF +-#line 1799 "configure" ++#line 1810 "configure" + #include "confdefs.h" + #include <ctype.h> + #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +@@ -1806,7 +1817,7 @@ + exit (0); } + + EOF +-if { (eval echo configure:1810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:1821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + : + else +@@ -1830,12 +1841,12 @@ + fi + + echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 +-echo "configure:1834: checking whether time.h and sys/time.h may both be included" >&5 ++echo "configure:1845: checking whether time.h and sys/time.h may both be included" >&5 + if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1839 "configure" ++#line 1850 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <sys/time.h> +@@ -1844,7 +1855,7 @@ + struct tm *tp; + ; return 0; } + EOF +-if { (eval echo configure:1848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:1859: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_header_time=yes + else +@@ -1865,12 +1876,12 @@ + fi + + echo $ac_n "checking whether string.h and strings.h may both be included""... $ac_c" 1>&6 +-echo "configure:1869: checking whether string.h and strings.h may both be included" >&5 ++echo "configure:1880: checking whether string.h and strings.h may both be included" >&5 + if eval "test \"`echo '$''{'gcc_cv_header_string'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1874 "configure" ++#line 1885 "configure" + #include "confdefs.h" + #include <string.h> + #include <strings.h> +@@ -1878,7 +1889,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:1882: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:1893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + gcc_cv_header_string=yes + else +@@ -1899,12 +1910,12 @@ + fi + + echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 +-echo "configure:1903: checking for sys/wait.h that is POSIX.1 compatible" >&5 ++echo "configure:1914: checking for sys/wait.h that is POSIX.1 compatible" >&5 + if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1908 "configure" ++#line 1919 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <sys/wait.h> +@@ -1920,7 +1931,7 @@ + s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; + ; return 0; } + EOF +-if { (eval echo configure:1924: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:1935: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_header_sys_wait_h=yes + else +@@ -1944,17 +1955,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:1948: checking for $ac_hdr" >&5 ++echo "configure:1959: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1953 "configure" ++#line 1964 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1958: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1969: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -1984,17 +1995,17 @@ + # Check for thread headers. + ac_safe=`echo "thread.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for thread.h""... $ac_c" 1>&6 +-echo "configure:1988: checking for thread.h" >&5 ++echo "configure:1999: checking for thread.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1993 "configure" ++#line 2004 "configure" + #include "confdefs.h" + #include <thread.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1998: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2009: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2018,17 +2029,17 @@ + + ac_safe=`echo "pthread.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for pthread.h""... $ac_c" 1>&6 +-echo "configure:2022: checking for pthread.h" >&5 ++echo "configure:2033: checking for pthread.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2027 "configure" ++#line 2038 "configure" + #include "confdefs.h" + #include <pthread.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2032: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2043: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2055,7 +2066,7 @@ + # Extract the first word of "gnatbind", so it can be a program name with args. + set dummy gnatbind; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2059: checking for $ac_word" >&5 ++echo "configure:2070: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_gnat'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2086,12 +2097,12 @@ + # See if the system preprocessor understands the ANSI C preprocessor + # stringification operator. + echo $ac_n "checking whether cpp understands the stringify operator""... $ac_c" 1>&6 +-echo "configure:2090: checking whether cpp understands the stringify operator" >&5 ++echo "configure:2101: checking whether cpp understands the stringify operator" >&5 + if eval "test \"`echo '$''{'gcc_cv_c_have_stringify'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2095 "configure" ++#line 2106 "configure" + #include "confdefs.h" + + int main() { +@@ -2099,7 +2110,7 @@ + char *test = S(foo); + ; return 0; } + EOF +-if { (eval echo configure:2103: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2114: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + gcc_cv_c_have_stringify=yes + else +@@ -2122,12 +2133,12 @@ + # Use <inttypes.h> only if it exists, + # doesn't clash with <sys/types.h>, and declares intmax_t. + echo $ac_n "checking for inttypes.h""... $ac_c" 1>&6 +-echo "configure:2126: checking for inttypes.h" >&5 ++echo "configure:2137: checking for inttypes.h" >&5 + if eval "test \"`echo '$''{'gcc_cv_header_inttypes_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2131 "configure" ++#line 2142 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <inttypes.h> +@@ -2135,7 +2146,7 @@ + intmax_t i = -1; + ; return 0; } + EOF +-if { (eval echo configure:2139: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2150: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + gcc_cv_header_inttypes_h=yes + else +@@ -2161,12 +2172,12 @@ + fputs_unlocked + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:2165: checking for $ac_func" >&5 ++echo "configure:2176: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2170 "configure" ++#line 2181 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -2189,7 +2200,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:2204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -2218,12 +2229,12 @@ + #AC_CHECK_TYPE(wchar_t, unsigned int) + + echo $ac_n "checking for vprintf""... $ac_c" 1>&6 +-echo "configure:2222: checking for vprintf" >&5 ++echo "configure:2233: checking for vprintf" >&5 + if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2227 "configure" ++#line 2238 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char vprintf(); below. */ +@@ -2246,7 +2257,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:2261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_vprintf=yes" + else +@@ -2270,12 +2281,12 @@ + + if test "$ac_cv_func_vprintf" != yes; then + echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 +-echo "configure:2274: checking for _doprnt" >&5 ++echo "configure:2285: checking for _doprnt" >&5 + if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2279 "configure" ++#line 2290 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char _doprnt(); below. */ +@@ -2298,7 +2309,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:2313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func__doprnt=yes" + else +@@ -2334,7 +2345,7 @@ + + + echo $ac_n "checking whether the printf functions support %p""... $ac_c" 1>&6 +-echo "configure:2338: checking whether the printf functions support %p" >&5 ++echo "configure:2349: checking whether the printf functions support %p" >&5 + if eval "test \"`echo '$''{'gcc_cv_func_printf_ptr'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2342,7 +2353,7 @@ + gcc_cv_func_printf_ptr=no + else + cat > conftest.$ac_ext <<EOF +-#line 2346 "configure" ++#line 2357 "configure" + #include "confdefs.h" + #include <stdio.h> + +@@ -2355,7 +2366,7 @@ + exit (p != q); + } + EOF +-if { (eval echo configure:2359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:2370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + gcc_cv_func_printf_ptr=yes + else +@@ -2388,12 +2399,12 @@ + ;; + esac + echo $ac_n "checking for pid_t""... $ac_c" 1>&6 +-echo "configure:2392: checking for pid_t" >&5 ++echo "configure:2403: checking for pid_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2397 "configure" ++#line 2408 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -2422,17 +2433,17 @@ + + ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for vfork.h""... $ac_c" 1>&6 +-echo "configure:2426: checking for vfork.h" >&5 ++echo "configure:2437: checking for vfork.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2431 "configure" ++#line 2442 "configure" + #include "confdefs.h" + #include <vfork.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2436: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2447: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2457,18 +2468,18 @@ + fi + + echo $ac_n "checking for working vfork""... $ac_c" 1>&6 +-echo "configure:2461: checking for working vfork" >&5 ++echo "configure:2472: checking for working vfork" >&5 + if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + if test "$cross_compiling" = yes; then + echo $ac_n "checking for vfork""... $ac_c" 1>&6 +-echo "configure:2467: checking for vfork" >&5 ++echo "configure:2478: checking for vfork" >&5 + if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2472 "configure" ++#line 2483 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char vfork(); below. */ +@@ -2491,7 +2502,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:2506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_vfork=yes" + else +@@ -2513,7 +2524,7 @@ + ac_cv_func_vfork_works=$ac_cv_func_vfork + else + cat > conftest.$ac_ext <<EOF +-#line 2517 "configure" ++#line 2528 "configure" + #include "confdefs.h" + /* Thanks to Paul Eggert for this test. */ + #include <stdio.h> +@@ -2608,7 +2619,7 @@ + } + } + EOF +-if { (eval echo configure:2612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:2623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_func_vfork_works=yes + else +@@ -2636,12 +2647,12 @@ + strsignal putc_unlocked fputs_unlocked strstr + do + echo $ac_n "checking whether $ac_func must be declared""... $ac_c" 1>&6 +-echo "configure:2640: checking whether $ac_func must be declared" >&5 ++echo "configure:2651: checking whether $ac_func must be declared" >&5 + if eval "test \"`echo '$''{'gcc_cv_decl_needed_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2645 "configure" ++#line 2656 "configure" + #include "confdefs.h" + + #include <stdio.h> +@@ -2674,7 +2685,7 @@ + char *(*pfn) = (char *(*)) $ac_func + ; return 0; } + EOF +-if { (eval echo configure:2678: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2689: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "gcc_cv_decl_needed_$ac_func=no" + else +@@ -2703,12 +2714,12 @@ + for ac_func in getrlimit setrlimit + do + echo $ac_n "checking whether $ac_func must be declared""... $ac_c" 1>&6 +-echo "configure:2707: checking whether $ac_func must be declared" >&5 ++echo "configure:2718: checking whether $ac_func must be declared" >&5 + if eval "test \"`echo '$''{'gcc_cv_decl_needed_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2712 "configure" ++#line 2723 "configure" + #include "confdefs.h" + + #include <stdio.h> +@@ -2745,7 +2756,7 @@ + char *(*pfn) = (char *(*)) $ac_func + ; return 0; } + EOF +-if { (eval echo configure:2749: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2760: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "gcc_cv_decl_needed_$ac_func=no" + else +@@ -2772,12 +2783,12 @@ + + + echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6 +-echo "configure:2776: checking for sys_siglist declaration in signal.h or unistd.h" >&5 ++echo "configure:2787: checking for sys_siglist declaration in signal.h or unistd.h" >&5 + if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2781 "configure" ++#line 2792 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <signal.h> +@@ -2789,7 +2800,7 @@ + char *msg = *(sys_siglist + 1); + ; return 0; } + EOF +-if { (eval echo configure:2793: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2804: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_decl_sys_siglist=yes + else +@@ -2812,12 +2823,12 @@ + + # mkdir takes a single argument on some systems. + echo $ac_n "checking if mkdir takes one argument""... $ac_c" 1>&6 +-echo "configure:2816: checking if mkdir takes one argument" >&5 ++echo "configure:2827: checking if mkdir takes one argument" >&5 + if eval "test \"`echo '$''{'gcc_cv_mkdir_takes_one_arg'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2821 "configure" ++#line 2832 "configure" + #include "confdefs.h" + + #include <sys/types.h> +@@ -2834,7 +2845,7 @@ + mkdir ("foo", 0); + ; return 0; } + EOF +-if { (eval echo configure:2838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2849: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + gcc_cv_mkdir_takes_one_arg=no + else +@@ -3552,8 +3563,17 @@ + tm_file=i386/freebsd.h + tmake_file=t-freebsd + ;; ++ i[34567]86-*-netbsdelf* | \ ++ i[34567]86-*-netbsd1.4[I-Z]* | \ ++ i[34567]86-*-netbsd1.[5-9]* | \ ++ i[34567]86-*-netbsd2*) ++ tm_file=i386/netbsd-elf.h ++ xm_file=i386/xm-netbsd.h ++ tmake_file=t-netbsd ++ ;; + i[34567]86-*-netbsd*) + tm_file=i386/netbsd.h ++ xm_file=i386/xm-netbsd.h + tmake_file=t-netbsd + use_collect2=yes + ;; +@@ -5326,6 +5346,12 @@ + tmake_file=sparc/t-sparcbare + tm_file="sparc/aout.h libgloss.h" + ;; ++ sparc-*-netbsd*elf*) ++ tm_file=sparc/netbsdelf.h ++ xm_file=sparc/xm-netbsd.h ++ tmake_file=t-netbsd ++ use_collect2=yes ++ ;; + sparc-*-netbsd*) + tm_file=sparc/netbsd.h + tmake_file=t-netbsd +@@ -5415,7 +5441,7 @@ + xmake_file=sparc/x-sysv4 + extra_parts="crt1.o crti.o crtn.o gmon.o crtbegin.o crtend.o" + case $machine in +- *-*-solaris2.[0-4]) ++ *-*-solaris2.0-4) + float_format=i128 + ;; + *) +@@ -5519,6 +5545,12 @@ + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes + ;; ++ sparc64-*-netbsd*) ++ tm_file=sparc/netbsd64.h ++ xm_file=sparc/xm-netbsd64.h ++ tmake_file=t-netbsd ++ use_collect2=yes ++ ;; + # This hasn't been upgraded to GCC 2. + # tahoe-harris-*) # Harris tahoe, using COFF. + # tm_file=tahoe/harris.h +@@ -5860,6 +5892,12 @@ + esac + fi + ++case $target in ++ alpha*|sparc64*) ++ build_xm_file="${build_xm_file} xm-target64.h" ++ host_xm_file="${host_xm_file} xm-target64.h";; ++esac ++ + # Handle cpp installation. + if test x$enable_cpp != xno + then +@@ -6049,7 +6087,7 @@ + + + echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 +-echo "configure:6044: checking for strerror in -lcposix" >&5 ++echo "configure:6091: checking for strerror in -lcposix" >&5 + ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -6057,7 +6095,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lcposix $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 6052 "configure" ++#line 6099 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -6068,7 +6106,7 @@ + strerror() + ; return 0; } + EOF +-if { (eval echo configure:6063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -6091,12 +6129,12 @@ + + + echo $ac_n "checking for working const""... $ac_c" 1>&6 +-echo "configure:6086: checking for working const" >&5 ++echo "configure:6133: checking for working const" >&5 + if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6091 "configure" ++#line 6138 "configure" + #include "confdefs.h" + + int main() { +@@ -6145,7 +6183,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:6140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:6187: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_const=yes + else +@@ -6166,21 +6204,21 @@ + fi + + echo $ac_n "checking for inline""... $ac_c" 1>&6 +-echo "configure:6161: checking for inline" >&5 ++echo "configure:6208: checking for inline" >&5 + if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_cv_c_inline=no + for ac_kw in inline __inline__ __inline; do + cat > conftest.$ac_ext <<EOF +-#line 6168 "configure" ++#line 6215 "configure" + #include "confdefs.h" + + int main() { + } $ac_kw foo() { + ; return 0; } + EOF +-if { (eval echo configure:6175: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:6222: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_inline=$ac_kw; break + else +@@ -6206,12 +6244,12 @@ + esac + + echo $ac_n "checking for off_t""... $ac_c" 1>&6 +-echo "configure:6201: checking for off_t" >&5 ++echo "configure:6248: checking for off_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6206 "configure" ++#line 6253 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -6239,12 +6277,12 @@ + fi + + echo $ac_n "checking for size_t""... $ac_c" 1>&6 +-echo "configure:6234: checking for size_t" >&5 ++echo "configure:6281: checking for size_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6239 "configure" ++#line 6286 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -6274,19 +6312,19 @@ + # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works + # for constant arguments. Useless! + echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 +-echo "configure:6269: checking for working alloca.h" >&5 ++echo "configure:6316: checking for working alloca.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6274 "configure" ++#line 6321 "configure" + #include "confdefs.h" + #include <alloca.h> + int main() { + char *p = alloca(2 * sizeof(int)); + ; return 0; } + EOF +-if { (eval echo configure:6281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_header_alloca_h=yes + else +@@ -6307,12 +6345,12 @@ + fi + + echo $ac_n "checking for alloca""... $ac_c" 1>&6 +-echo "configure:6302: checking for alloca" >&5 ++echo "configure:6349: checking for alloca" >&5 + if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6307 "configure" ++#line 6354 "configure" + #include "confdefs.h" + + #ifdef __GNUC__ +@@ -6340,7 +6378,7 @@ + char *p = (char *) alloca(1); + ; return 0; } + EOF +-if { (eval echo configure:6335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_func_alloca_works=yes + else +@@ -6372,12 +6410,12 @@ + + + echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 +-echo "configure:6367: checking whether alloca needs Cray hooks" >&5 ++echo "configure:6414: checking whether alloca needs Cray hooks" >&5 + if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6372 "configure" ++#line 6419 "configure" + #include "confdefs.h" + #if defined(CRAY) && ! defined(CRAY2) + webecray +@@ -6402,12 +6440,12 @@ + if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:6397: checking for $ac_func" >&5 ++echo "configure:6444: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6402 "configure" ++#line 6449 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -6430,7 +6468,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:6425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -6457,7 +6495,7 @@ + fi + + echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 +-echo "configure:6452: checking stack direction for C alloca" >&5 ++echo "configure:6499: checking stack direction for C alloca" >&5 + if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -6465,7 +6503,7 @@ + ac_cv_c_stack_direction=0 + else + cat > conftest.$ac_ext <<EOF +-#line 6460 "configure" ++#line 6507 "configure" + #include "confdefs.h" + find_stack_direction () + { +@@ -6484,7 +6522,7 @@ + exit (find_stack_direction() < 0); + } + EOF +-if { (eval echo configure:6479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_c_stack_direction=1 + else +@@ -6509,17 +6547,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:6504: checking for $ac_hdr" >&5 ++echo "configure:6551: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6509 "configure" ++#line 6556 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:6514: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:6561: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -6548,12 +6586,12 @@ + for ac_func in getpagesize + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:6543: checking for $ac_func" >&5 ++echo "configure:6590: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6548 "configure" ++#line 6595 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -6576,7 +6614,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:6571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -6601,7 +6639,7 @@ + done + + echo $ac_n "checking for working mmap""... $ac_c" 1>&6 +-echo "configure:6596: checking for working mmap" >&5 ++echo "configure:6643: checking for working mmap" >&5 + if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -6609,7 +6647,7 @@ + ac_cv_func_mmap_fixed_mapped=no + else + cat > conftest.$ac_ext <<EOF +-#line 6604 "configure" ++#line 6651 "configure" + #include "confdefs.h" + + /* Thanks to Mike Haertel and Jim Avera for this test. +@@ -6749,7 +6787,7 @@ + } + + EOF +-if { (eval echo configure:6744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6791: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_func_mmap_fixed_mapped=yes + else +@@ -6777,17 +6815,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:6772: checking for $ac_hdr" >&5 ++echo "configure:6819: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6777 "configure" ++#line 6824 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:6782: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:6829: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -6817,12 +6855,12 @@ + strdup __argz_count __argz_stringify __argz_next + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:6812: checking for $ac_func" >&5 ++echo "configure:6859: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6817 "configure" ++#line 6864 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -6845,7 +6883,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:6840: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -6874,12 +6912,12 @@ + for ac_func in stpcpy + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:6869: checking for $ac_func" >&5 ++echo "configure:6916: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6874 "configure" ++#line 6921 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -6902,7 +6940,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:6897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -6936,19 +6974,19 @@ + + if test $ac_cv_header_locale_h = yes; then + echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 +-echo "configure:6931: checking for LC_MESSAGES" >&5 ++echo "configure:6978: checking for LC_MESSAGES" >&5 + if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6936 "configure" ++#line 6983 "configure" + #include "confdefs.h" + #include <locale.h> + int main() { + return LC_MESSAGES + ; return 0; } + EOF +-if { (eval echo configure:6943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + am_cv_val_LC_MESSAGES=yes + else +@@ -6969,7 +7007,7 @@ + fi + fi + echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 +-echo "configure:6964: checking whether NLS is requested" >&5 ++echo "configure:7011: checking whether NLS is requested" >&5 + # Check whether --enable-nls or --disable-nls was given. + if test "${enable_nls+set}" = set; then + enableval="$enable_nls" +@@ -6989,7 +7027,7 @@ + EOF + + echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 +-echo "configure:6984: checking whether included gettext is requested" >&5 ++echo "configure:7031: checking whether included gettext is requested" >&5 + # Check whether --with-included-gettext or --without-included-gettext was given. + if test "${with_included_gettext+set}" = set; then + withval="$with_included_gettext" +@@ -7008,17 +7046,17 @@ + + ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 +-echo "configure:7003: checking for libintl.h" >&5 ++echo "configure:7050: checking for libintl.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 7008 "configure" ++#line 7055 "configure" + #include "confdefs.h" + #include <libintl.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:7013: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7060: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -7035,19 +7073,19 @@ + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 +-echo "configure:7030: checking for gettext in libc" >&5 ++echo "configure:7077: checking for gettext in libc" >&5 + if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 7035 "configure" ++#line 7082 "configure" + #include "confdefs.h" + #include <libintl.h> + int main() { + return (int) gettext ("") + ; return 0; } + EOF +-if { (eval echo configure:7042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + gt_cv_func_gettext_libc=yes + else +@@ -7063,7 +7101,7 @@ + + if test "$gt_cv_func_gettext_libc" != "yes"; then + echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 +-echo "configure:7058: checking for bindtextdomain in -lintl" >&5 ++echo "configure:7105: checking for bindtextdomain in -lintl" >&5 + ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -7071,7 +7109,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lintl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 7066 "configure" ++#line 7113 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -7082,7 +7120,7 @@ + bindtextdomain() + ; return 0; } + EOF +-if { (eval echo configure:7077: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -7098,12 +7136,12 @@ + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 +-echo "configure:7093: checking for gettext in libintl" >&5 ++echo "configure:7140: checking for gettext in libintl" >&5 + if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 +-echo "configure:7098: checking for gettext in -lintl" >&5 ++echo "configure:7145: checking for gettext in -lintl" >&5 + ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -7111,7 +7149,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lintl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 7106 "configure" ++#line 7153 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -7122,7 +7160,7 @@ + gettext() + ; return 0; } + EOF +-if { (eval echo configure:7117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -7161,7 +7199,7 @@ + # Extract the first word of "msgfmt", so it can be a program name with args. + set dummy msgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:7156: checking for $ac_word" >&5 ++echo "configure:7203: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -7195,12 +7233,12 @@ + for ac_func in dcgettext + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:7190: checking for $ac_func" >&5 ++echo "configure:7237: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 7195 "configure" ++#line 7242 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -7223,7 +7261,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:7218: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -7250,7 +7288,7 @@ + # Extract the first word of "gmsgfmt", so it can be a program name with args. + set dummy gmsgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:7245: checking for $ac_word" >&5 ++echo "configure:7292: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -7286,7 +7324,7 @@ + # Extract the first word of "xgettext", so it can be a program name with args. + set dummy xgettext; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:7281: checking for $ac_word" >&5 ++echo "configure:7328: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -7318,7 +7356,7 @@ + fi + + cat > conftest.$ac_ext <<EOF +-#line 7313 "configure" ++#line 7360 "configure" + #include "confdefs.h" + + int main() { +@@ -7326,7 +7364,7 @@ + return _nl_msg_cat_cntr + ; return 0; } + EOF +-if { (eval echo configure:7321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + CATOBJEXT=.gmo + DATADIRNAME=share +@@ -7349,7 +7387,7 @@ + + if test "$CATOBJEXT" = "NONE"; then + echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6 +-echo "configure:7344: checking whether catgets can be used" >&5 ++echo "configure:7391: checking whether catgets can be used" >&5 + # Check whether --with-catgets or --without-catgets was given. + if test "${with_catgets+set}" = set; then + withval="$with_catgets" +@@ -7362,7 +7400,7 @@ + + if test "$nls_cv_use_catgets" = "yes"; then + echo $ac_n "checking for main in -li""... $ac_c" 1>&6 +-echo "configure:7357: checking for main in -li" >&5 ++echo "configure:7404: checking for main in -li" >&5 + ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -7370,14 +7408,14 @@ + ac_save_LIBS="$LIBS" + LIBS="-li $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 7365 "configure" ++#line 7412 "configure" + #include "confdefs.h" + + int main() { + main() + ; return 0; } + EOF +-if { (eval echo configure:7372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -7405,12 +7443,12 @@ + fi + + echo $ac_n "checking for catgets""... $ac_c" 1>&6 +-echo "configure:7400: checking for catgets" >&5 ++echo "configure:7447: checking for catgets" >&5 + if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 7405 "configure" ++#line 7452 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char catgets(); below. */ +@@ -7433,7 +7471,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:7428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_catgets=yes" + else +@@ -7455,7 +7493,7 @@ + # Extract the first word of "gencat", so it can be a program name with args. + set dummy gencat; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:7450: checking for $ac_word" >&5 ++echo "configure:7497: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -7491,7 +7529,7 @@ + # Extract the first word of "gmsgfmt", so it can be a program name with args. + set dummy gmsgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:7486: checking for $ac_word" >&5 ++echo "configure:7533: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -7528,7 +7566,7 @@ + # Extract the first word of "msgfmt", so it can be a program name with args. + set dummy msgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:7523: checking for $ac_word" >&5 ++echo "configure:7570: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -7563,7 +7601,7 @@ + # Extract the first word of "xgettext", so it can be a program name with args. + set dummy xgettext; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:7558: checking for $ac_word" >&5 ++echo "configure:7605: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -7621,7 +7659,7 @@ + # Extract the first word of "msgfmt", so it can be a program name with args. + set dummy msgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:7616: checking for $ac_word" >&5 ++echo "configure:7663: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -7655,7 +7693,7 @@ + # Extract the first word of "gmsgfmt", so it can be a program name with args. + set dummy gmsgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:7650: checking for $ac_word" >&5 ++echo "configure:7697: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -7691,7 +7729,7 @@ + # Extract the first word of "xgettext", so it can be a program name with args. + set dummy xgettext; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:7686: checking for $ac_word" >&5 ++echo "configure:7733: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -7784,7 +7822,7 @@ + LINGUAS= + else + echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 +-echo "configure:7779: checking for catalogs to be installed" >&5 ++echo "configure:7826: checking for catalogs to be installed" >&5 + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in +@@ -7812,17 +7850,17 @@ + if test "$CATOBJEXT" = ".cat"; then + ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 +-echo "configure:7807: checking for linux/version.h" >&5 ++echo "configure:7854: checking for linux/version.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 7812 "configure" ++#line 7859 "configure" + #include "confdefs.h" + #include <linux/version.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:7817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7864: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -8056,7 +8094,7 @@ + + # Figure out what assembler alignment features are present. + echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6 +-echo "configure:8051: checking assembler alignment features" >&5 ++echo "configure:8098: checking assembler alignment features" >&5 + gcc_cv_as= + gcc_cv_as_alignment_features= + gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas +@@ -8177,7 +8215,7 @@ + echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6 + + echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6 +-echo "configure:8172: checking assembler subsection support" >&5 ++echo "configure:8219: checking assembler subsection support" >&5 + gcc_cv_as_subsections= + if test x$gcc_cv_as != x; then + # Check if we have .subsection +@@ -8217,7 +8255,7 @@ + echo "$ac_t""$gcc_cv_as_subsections" 1>&6 + + echo $ac_n "checking assembler instructions""... $ac_c" 1>&6 +-echo "configure:8212: checking assembler instructions" >&5 ++echo "configure:8259: checking assembler instructions" >&5 + gcc_cv_as_instructions= + if test x$gcc_cv_as != x; then + set "filds fists" "filds mem; fists mem" diff --git a/lang/gcc/patches/patch-as b/lang/gcc/patches/patch-as new file mode 100644 index 00000000000..8bf1e95c6d6 --- /dev/null +++ b/lang/gcc/patches/patch-as @@ -0,0 +1,20 @@ +$NetBSD: patch-as,v 1.1 2000/09/15 23:58:49 tron Exp $ + +--- ../gcc-2.95.2/gcc/emit-rtl.c.orig Wed Aug 11 09:28:52 1999 ++++ ../gcc-2.95.2/gcc/emit-rtl.c Sat Sep 16 00:17:42 2000 +@@ -1378,6 +1378,15 @@ + val = ((val & 0xffffffff) ^ 0x80000000) - 0x80000000; + return GEN_INT (val); + } ++#if HOST_BITS_PER_WIDE_INT >= 64 ++ else if (BITS_PER_WORD >= 64 && i <= 1) ++ { ++ val = k[i*2 + ! WORDS_BIG_ENDIAN]; ++ val = (((val & 0xffffffff) ^ 0x80000000) - 0x80000000) << 32; ++ val |= (HOST_WIDE_INT) k[i*2 + WORDS_BIG_ENDIAN] & 0xffffffff; ++ return GEN_INT (val); ++ } ++#endif + else + abort (); + } diff --git a/lang/gcc/pkg/PLIST b/lang/gcc/pkg/PLIST index 10464edd797..768ea78662f 100644 --- a/lang/gcc/pkg/PLIST +++ b/lang/gcc/pkg/PLIST @@ -1,302 +1,310 @@ -@comment $NetBSD: PLIST,v 1.2 2000/05/23 22:09:59 tron Exp $ -${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/include/_G_config.h -bin/g++ -bin/c++ -bin/g77 -bin/gcj -bin/cpp -bin/gcc -bin/chill -bin/c++filt -bin/gcjh -bin/jv-scan -bin/jcf-dump -bin/protoize -bin/unprotoize -bin/gcov -bin/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}-gcc -include/g++-3/std/bastring.h -include/g++-3/std/complext.h -include/g++-3/std/dcomplex.h -include/g++-3/std/fcomplex.h -include/g++-3/std/gslice.h -include/g++-3/std/gslice_array.h -include/g++-3/std/indirect_array.h -include/g++-3/std/ldcomplex.h -include/g++-3/std/mask_array.h -include/g++-3/std/slice.h -include/g++-3/std/slice_array.h -include/g++-3/std/std_valarray.h -include/g++-3/std/straits.h -include/g++-3/std/valarray_array.h -include/g++-3/std/valarray_meta.h -include/g++-3/std/bastring.cc -include/g++-3/std/complext.cc -include/g++-3/std/valarray_array.tcc -include/g++-3/PlotFile.h -include/g++-3/SFile.h -include/g++-3/builtinbuf.h -include/g++-3/editbuf.h -include/g++-3/floatio.h -include/g++-3/fstream.h -include/g++-3/indstream.h -include/g++-3/iolibio.h -include/g++-3/iomanip.h -include/g++-3/iostdio.h -include/g++-3/iostream.h -include/g++-3/iostreamP.h -include/g++-3/istream.h -include/g++-3/libio.h -include/g++-3/libioP.h -include/g++-3/ostream.h -include/g++-3/parsestream.h -include/g++-3/pfstream.h -include/g++-3/procbuf.h -include/g++-3/stdiostream.h -include/g++-3/stream.h -include/g++-3/streambuf.h -include/g++-3/strfile.h -include/g++-3/strstream.h -include/g++-3/cassert -include/g++-3/cctype -include/g++-3/cerrno -include/g++-3/cfloat -include/g++-3/ciso646 -include/g++-3/climits -include/g++-3/clocale -include/g++-3/cmath -include/g++-3/complex -include/g++-3/csetjmp -include/g++-3/csignal -include/g++-3/cstdarg -include/g++-3/cstddef -include/g++-3/cstdio -include/g++-3/cstdlib -include/g++-3/cstring -include/g++-3/ctime -include/g++-3/cwchar -include/g++-3/cwctype -include/g++-3/string -include/g++-3/stdexcept -include/g++-3/algorithm -include/g++-3/deque -include/g++-3/functional -include/g++-3/hash_map -include/g++-3/hash_set -include/g++-3/iterator -include/g++-3/list -include/g++-3/map -include/g++-3/memory -include/g++-3/numeric -include/g++-3/pthread_alloc -include/g++-3/queue -include/g++-3/rope -include/g++-3/set -include/g++-3/slist -include/g++-3/stack -include/g++-3/utility -include/g++-3/vector -include/g++-3/fstream -include/g++-3/iomanip -include/g++-3/iostream -include/g++-3/strstream -include/g++-3/iosfwd -include/g++-3/bitset -include/g++-3/valarray -include/g++-3/complex.h -include/g++-3/stl.h -include/g++-3/algo.h -include/g++-3/algobase.h -include/g++-3/alloc.h -include/g++-3/bvector.h -include/g++-3/defalloc.h -include/g++-3/deque.h -include/g++-3/function.h -include/g++-3/hash_map.h -include/g++-3/hash_set.h -include/g++-3/hashtable.h -include/g++-3/heap.h -include/g++-3/iterator.h -include/g++-3/list.h -include/g++-3/map.h -include/g++-3/multimap.h -include/g++-3/multiset.h -include/g++-3/pair.h -include/g++-3/pthread_alloc.h -include/g++-3/rope.h -include/g++-3/ropeimpl.h -include/g++-3/set.h -include/g++-3/slist.h -include/g++-3/stack.h -include/g++-3/stl_algo.h -include/g++-3/stl_algobase.h -include/g++-3/stl_alloc.h -include/g++-3/stl_bvector.h -include/g++-3/stl_config.h -include/g++-3/stl_construct.h -include/g++-3/stl_deque.h -include/g++-3/stl_function.h -include/g++-3/stl_hash_fun.h -include/g++-3/stl_hash_map.h -include/g++-3/stl_hash_set.h -include/g++-3/stl_hashtable.h -include/g++-3/stl_heap.h -include/g++-3/stl_iterator.h -include/g++-3/stl_list.h -include/g++-3/stl_map.h -include/g++-3/stl_multimap.h -include/g++-3/stl_multiset.h -include/g++-3/stl_numeric.h -include/g++-3/stl_pair.h -include/g++-3/stl_queue.h -include/g++-3/stl_raw_storage_iter.h -include/g++-3/stl_relops.h -include/g++-3/stl_rope.h -include/g++-3/stl_set.h -include/g++-3/stl_slist.h -include/g++-3/stl_stack.h -include/g++-3/stl_tempbuf.h -include/g++-3/stl_tree.h -include/g++-3/stl_uninitialized.h -include/g++-3/stl_vector.h -include/g++-3/tempbuf.h -include/g++-3/tree.h -include/g++-3/type_traits.h -include/g++-3/vector.h -info/chill.info -info/g77.info -info/g77.info-1 -info/g77.info-10 -info/g77.info-11 -info/g77.info-12 -info/g77.info-13 -info/g77.info-14 -info/g77.info-15 -info/g77.info-16 -info/g77.info-17 -info/g77.info-18 -info/g77.info-19 -info/g77.info-2 -info/g77.info-20 -info/g77.info-21 -info/g77.info-3 -info/g77.info-4 -info/g77.info-5 -info/g77.info-6 -info/g77.info-7 -info/g77.info-8 -info/g77.info-9 -info/cpp.info -info/cpp.info-1 -info/cpp.info-2 -info/cpp.info-3 -info/gcc.info -info/gcc.info-1 -info/gcc.info-10 -info/gcc.info-11 -info/gcc.info-12 -info/gcc.info-13 -info/gcc.info-14 -info/gcc.info-15 -info/gcc.info-16 -info/gcc.info-17 -info/gcc.info-18 -info/gcc.info-19 -info/gcc.info-2 -info/gcc.info-20 -info/gcc.info-21 -info/gcc.info-22 -info/gcc.info-23 -info/gcc.info-24 -info/gcc.info-25 -info/gcc.info-26 -info/gcc.info-27 -info/gcc.info-28 -info/gcc.info-29 -info/gcc.info-3 -info/gcc.info-30 -info/gcc.info-4 -info/gcc.info-5 -info/gcc.info-6 -info/gcc.info-7 -info/gcc.info-8 -info/gcc.info-9 -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc/hash.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc/objc-list.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc/sarray.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc/objc.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc/objc-api.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc/NXConstStr.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc/Object.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc/Protocol.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc/encoding.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc/typedstream.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc/thr.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/g2c.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/cc1 -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/cc1chill -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/cc1plus -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/f771 -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/jc1 -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/jvgenmain -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/cc1obj -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/collect2 -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/specs -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/SYSCALLS.c.X -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/cpp -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/libgcc.a -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/libg2c.a -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/libchill.a -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/chillrt0.o -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/libobjc.a -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/libstdc++.a -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/math.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/curses.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/syslimits.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/stdarg.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/stddef.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/varargs.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-alpha.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-h8300.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-i860.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-i960.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-mips.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-m88k.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-mn10200.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-mn10300.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-pa.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-pyr.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-sparc.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-clipper.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-spur.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-m32r.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-sh.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-v850.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-arc.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/iso646.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-ppc.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/va-c4x.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/typeinfo -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/exception -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/new -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/new.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/proto.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/stdbool.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/limits.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/float.h -lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/README -lib/libiberty.a -lib/libstdc++.a.2.10.0 -man/man1/g++.1 -man/man1/g77.1 -man/man1/gcc.1 -man/man1/cccp.1 -@dirrm lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include/objc -@dirrm lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2/include -@dirrm lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/2.95.2 -@dirrm lib/gcc-lib/${MACHINE_GNU_ARCH}--${LOWER_OPSYS} -@dirrm lib/gcc-lib -@dirrm include/g++-3/std -@dirrm include/g++-3 -@dirrm ${MACHINE_GNU_ARCH}--${LOWER_OPSYS}/include -@dirrm ${MACHINE_GNU_ARCH}--${LOWER_OPSYS} +@comment $NetBSD: PLIST,v 1.3 2000/09/15 23:58:49 tron Exp $ +etc/${PKGNAME}.mk +${PKGNAME}/${MACHINE_GCC_PLATFORM}/include/_G_config.h +${PKGNAME}/bin/c++ +${PKGNAME}/bin/c++filt +${PKGNAME}/bin/cc +${PKGNAME}/bin/chill +${PKGNAME}/bin/cpp +${PKGNAME}/bin/g++ +${PKGNAME}/bin/g77 +${PKGNAME}/bin/gcc +${PKGNAME}/bin/gcj +${PKGNAME}/bin/gcjh +${PKGNAME}/bin/gcov +${PKGNAME}/bin/jv-scan +${PKGNAME}/bin/jcf-dump +${PKGNAME}/bin/protoize +${PKGNAME}/bin/unprotoize +${PKGNAME}/bin/${MACHINE_GCC_PLATFORM}-gcc +${PKGNAME}/include/g++-3/std/bastring.h +${PKGNAME}/include/g++-3/std/complext.h +${PKGNAME}/include/g++-3/std/dcomplex.h +${PKGNAME}/include/g++-3/std/fcomplex.h +${PKGNAME}/include/g++-3/std/gslice.h +${PKGNAME}/include/g++-3/std/gslice_array.h +${PKGNAME}/include/g++-3/std/indirect_array.h +${PKGNAME}/include/g++-3/std/ldcomplex.h +${PKGNAME}/include/g++-3/std/mask_array.h +${PKGNAME}/include/g++-3/std/slice.h +${PKGNAME}/include/g++-3/std/slice_array.h +${PKGNAME}/include/g++-3/std/std_valarray.h +${PKGNAME}/include/g++-3/std/straits.h +${PKGNAME}/include/g++-3/std/valarray_array.h +${PKGNAME}/include/g++-3/std/valarray_meta.h +${PKGNAME}/include/g++-3/std/bastring.cc +${PKGNAME}/include/g++-3/std/complext.cc +${PKGNAME}/include/g++-3/std/valarray_array.tcc +${PKGNAME}/include/g++-3/PlotFile.h +${PKGNAME}/include/g++-3/SFile.h +${PKGNAME}/include/g++-3/builtinbuf.h +${PKGNAME}/include/g++-3/editbuf.h +${PKGNAME}/include/g++-3/floatio.h +${PKGNAME}/include/g++-3/fstream.h +${PKGNAME}/include/g++-3/indstream.h +${PKGNAME}/include/g++-3/iolibio.h +${PKGNAME}/include/g++-3/iomanip.h +${PKGNAME}/include/g++-3/iostdio.h +${PKGNAME}/include/g++-3/iostream.h +${PKGNAME}/include/g++-3/iostreamP.h +${PKGNAME}/include/g++-3/istream.h +${PKGNAME}/include/g++-3/libio.h +${PKGNAME}/include/g++-3/libioP.h +${PKGNAME}/include/g++-3/ostream.h +${PKGNAME}/include/g++-3/parsestream.h +${PKGNAME}/include/g++-3/pfstream.h +${PKGNAME}/include/g++-3/procbuf.h +${PKGNAME}/include/g++-3/stdiostream.h +${PKGNAME}/include/g++-3/stream.h +${PKGNAME}/include/g++-3/streambuf.h +${PKGNAME}/include/g++-3/strfile.h +${PKGNAME}/include/g++-3/strstream.h +${PKGNAME}/include/g++-3/cassert +${PKGNAME}/include/g++-3/cctype +${PKGNAME}/include/g++-3/cerrno +${PKGNAME}/include/g++-3/cfloat +${PKGNAME}/include/g++-3/ciso646 +${PKGNAME}/include/g++-3/climits +${PKGNAME}/include/g++-3/clocale +${PKGNAME}/include/g++-3/cmath +${PKGNAME}/include/g++-3/complex +${PKGNAME}/include/g++-3/csetjmp +${PKGNAME}/include/g++-3/csignal +${PKGNAME}/include/g++-3/cstdarg +${PKGNAME}/include/g++-3/cstddef +${PKGNAME}/include/g++-3/cstdio +${PKGNAME}/include/g++-3/cstdlib +${PKGNAME}/include/g++-3/cstring +${PKGNAME}/include/g++-3/ctime +${PKGNAME}/include/g++-3/cwchar +${PKGNAME}/include/g++-3/cwctype +${PKGNAME}/include/g++-3/string +${PKGNAME}/include/g++-3/stdexcept +${PKGNAME}/include/g++-3/algorithm +${PKGNAME}/include/g++-3/deque +${PKGNAME}/include/g++-3/functional +${PKGNAME}/include/g++-3/hash_map +${PKGNAME}/include/g++-3/hash_set +${PKGNAME}/include/g++-3/iterator +${PKGNAME}/include/g++-3/list +${PKGNAME}/include/g++-3/map +${PKGNAME}/include/g++-3/memory +${PKGNAME}/include/g++-3/numeric +${PKGNAME}/include/g++-3/pthread_alloc +${PKGNAME}/include/g++-3/queue +${PKGNAME}/include/g++-3/rope +${PKGNAME}/include/g++-3/set +${PKGNAME}/include/g++-3/slist +${PKGNAME}/include/g++-3/stack +${PKGNAME}/include/g++-3/utility +${PKGNAME}/include/g++-3/vector +${PKGNAME}/include/g++-3/fstream +${PKGNAME}/include/g++-3/iomanip +${PKGNAME}/include/g++-3/iostream +${PKGNAME}/include/g++-3/strstream +${PKGNAME}/include/g++-3/iosfwd +${PKGNAME}/include/g++-3/bitset +${PKGNAME}/include/g++-3/valarray +${PKGNAME}/include/g++-3/complex.h +${PKGNAME}/include/g++-3/stl.h +${PKGNAME}/include/g++-3/algo.h +${PKGNAME}/include/g++-3/algobase.h +${PKGNAME}/include/g++-3/alloc.h +${PKGNAME}/include/g++-3/bvector.h +${PKGNAME}/include/g++-3/defalloc.h +${PKGNAME}/include/g++-3/deque.h +${PKGNAME}/include/g++-3/function.h +${PKGNAME}/include/g++-3/hash_map.h +${PKGNAME}/include/g++-3/hash_set.h +${PKGNAME}/include/g++-3/hashtable.h +${PKGNAME}/include/g++-3/heap.h +${PKGNAME}/include/g++-3/iterator.h +${PKGNAME}/include/g++-3/list.h +${PKGNAME}/include/g++-3/map.h +${PKGNAME}/include/g++-3/multimap.h +${PKGNAME}/include/g++-3/multiset.h +${PKGNAME}/include/g++-3/pair.h +${PKGNAME}/include/g++-3/pthread_alloc.h +${PKGNAME}/include/g++-3/rope.h +${PKGNAME}/include/g++-3/ropeimpl.h +${PKGNAME}/include/g++-3/set.h +${PKGNAME}/include/g++-3/slist.h +${PKGNAME}/include/g++-3/stack.h +${PKGNAME}/include/g++-3/stl_algo.h +${PKGNAME}/include/g++-3/stl_algobase.h +${PKGNAME}/include/g++-3/stl_alloc.h +${PKGNAME}/include/g++-3/stl_bvector.h +${PKGNAME}/include/g++-3/stl_config.h +${PKGNAME}/include/g++-3/stl_construct.h +${PKGNAME}/include/g++-3/stl_deque.h +${PKGNAME}/include/g++-3/stl_function.h +${PKGNAME}/include/g++-3/stl_hash_fun.h +${PKGNAME}/include/g++-3/stl_hash_map.h +${PKGNAME}/include/g++-3/stl_hash_set.h +${PKGNAME}/include/g++-3/stl_hashtable.h +${PKGNAME}/include/g++-3/stl_heap.h +${PKGNAME}/include/g++-3/stl_iterator.h +${PKGNAME}/include/g++-3/stl_list.h +${PKGNAME}/include/g++-3/stl_map.h +${PKGNAME}/include/g++-3/stl_multimap.h +${PKGNAME}/include/g++-3/stl_multiset.h +${PKGNAME}/include/g++-3/stl_numeric.h +${PKGNAME}/include/g++-3/stl_pair.h +${PKGNAME}/include/g++-3/stl_queue.h +${PKGNAME}/include/g++-3/stl_raw_storage_iter.h +${PKGNAME}/include/g++-3/stl_relops.h +${PKGNAME}/include/g++-3/stl_rope.h +${PKGNAME}/include/g++-3/stl_set.h +${PKGNAME}/include/g++-3/stl_slist.h +${PKGNAME}/include/g++-3/stl_stack.h +${PKGNAME}/include/g++-3/stl_tempbuf.h +${PKGNAME}/include/g++-3/stl_tree.h +${PKGNAME}/include/g++-3/stl_uninitialized.h +${PKGNAME}/include/g++-3/stl_vector.h +${PKGNAME}/include/g++-3/tempbuf.h +${PKGNAME}/include/g++-3/tree.h +${PKGNAME}/include/g++-3/type_traits.h +${PKGNAME}/include/g++-3/vector.h +${PKGNAME}/info/chill.info +${PKGNAME}/info/g77.info +${PKGNAME}/info/g77.info-1 +${PKGNAME}/info/g77.info-10 +${PKGNAME}/info/g77.info-11 +${PKGNAME}/info/g77.info-12 +${PKGNAME}/info/g77.info-13 +${PKGNAME}/info/g77.info-14 +${PKGNAME}/info/g77.info-15 +${PKGNAME}/info/g77.info-16 +${PKGNAME}/info/g77.info-17 +${PKGNAME}/info/g77.info-18 +${PKGNAME}/info/g77.info-19 +${PKGNAME}/info/g77.info-2 +${PKGNAME}/info/g77.info-20 +${PKGNAME}/info/g77.info-21 +${PKGNAME}/info/g77.info-3 +${PKGNAME}/info/g77.info-4 +${PKGNAME}/info/g77.info-5 +${PKGNAME}/info/g77.info-6 +${PKGNAME}/info/g77.info-7 +${PKGNAME}/info/g77.info-8 +${PKGNAME}/info/g77.info-9 +${PKGNAME}/info/cpp.info +${PKGNAME}/info/cpp.info-1 +${PKGNAME}/info/cpp.info-2 +${PKGNAME}/info/cpp.info-3 +${PKGNAME}/info/gcc.info +${PKGNAME}/info/gcc.info-1 +${PKGNAME}/info/gcc.info-10 +${PKGNAME}/info/gcc.info-11 +${PKGNAME}/info/gcc.info-12 +${PKGNAME}/info/gcc.info-13 +${PKGNAME}/info/gcc.info-14 +${PKGNAME}/info/gcc.info-15 +${PKGNAME}/info/gcc.info-16 +${PKGNAME}/info/gcc.info-17 +${PKGNAME}/info/gcc.info-18 +${PKGNAME}/info/gcc.info-19 +${PKGNAME}/info/gcc.info-2 +${PKGNAME}/info/gcc.info-20 +${PKGNAME}/info/gcc.info-21 +${PKGNAME}/info/gcc.info-22 +${PKGNAME}/info/gcc.info-23 +${PKGNAME}/info/gcc.info-24 +${PKGNAME}/info/gcc.info-25 +${PKGNAME}/info/gcc.info-26 +${PKGNAME}/info/gcc.info-27 +${PKGNAME}/info/gcc.info-28 +${PKGNAME}/info/gcc.info-29 +${PKGNAME}/info/gcc.info-3 +${PKGNAME}/info/gcc.info-30 +${PKGNAME}/info/gcc.info-4 +${PKGNAME}/info/gcc.info-5 +${PKGNAME}/info/gcc.info-6 +${PKGNAME}/info/gcc.info-7 +${PKGNAME}/info/gcc.info-8 +${PKGNAME}/info/gcc.info-9 +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc/hash.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc/objc-list.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc/sarray.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc/objc.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc/objc-api.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc/NXConstStr.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc/Object.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc/Protocol.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc/encoding.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc/typedstream.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc/thr.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/g2c.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/cc1 +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/cc1chill +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/cc1plus +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/f771 +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/jc1 +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/jvgenmain +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/cc1obj +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/collect2 +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/specs +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/SYSCALLS.c.X +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/cpp +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/libgcc.a +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/libg2c.a +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/libchill.a +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/chillrt0.o +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/libobjc.a +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/libstdc++.a +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/math.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/syslimits.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/stdarg.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/stddef.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/varargs.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-alpha.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-h8300.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-i860.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-i960.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-mips.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-m88k.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-mn10200.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-mn10300.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-pa.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-pyr.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-sparc.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-clipper.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-spur.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-m32r.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-sh.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-v850.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-arc.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/iso646.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-ppc.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/va-c4x.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/typeinfo +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/exception +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/new +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/new.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/proto.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/stdbool.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/limits.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/float.h +${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/README +${PKGNAME}/lib/libiberty.a +${PKGNAME}/lib/libstdc++.a.2.10.0 +${PKGNAME}/man/man1/g++.1 +${PKGNAME}/man/man1/g77.1 +${PKGNAME}/man/man1/gcc.1 +${PKGNAME}/man/man1/cccp.1 +@dirrm ${PKGNAME}/man/man1 +@dirrm ${PKGNAME}/man +@dirrm ${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include/objc +@dirrm ${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION}/include +@dirrm ${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM}/${GCC_VERSION} +@dirrm ${PKGNAME}/lib/gcc-lib/${MACHINE_GCC_PLATFORM} +@dirrm ${PKGNAME}/lib/gcc-lib +@dirrm ${PKGNAME}/lib +@dirrm ${PKGNAME}/info +@dirrm ${PKGNAME}/include/g++-3/std +@dirrm ${PKGNAME}/include/g++-3 +@dirrm ${PKGNAME}/include +@dirrm ${PKGNAME}/bin +@dirrm ${PKGNAME}/${MACHINE_GCC_PLATFORM}/include +@dirrm ${PKGNAME}/${MACHINE_GCC_PLATFORM} +@dirrm ${PKGNAME} |