diff -Nrc3pad gcc-3.3.4/gcc/f/BUGS gcc-3.3.5/gcc/f/BUGS *** gcc-3.3.4/gcc/f/BUGS 2004-06-01 00:15:54.000000000 +0000 --- gcc-3.3.5/gcc/f/BUGS 2004-09-30 18:14:14.000000000 +0000 *************** _Note:_ This file is automatically gener *** 2,8 **** `bugs0.texi' and `bugs.texi'. `BUGS' is _not_ a source file, although it is normally included within source distributions. ! This file lists known bugs in the GCC-3.3.4 version of the GNU Fortran compiler. Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc. You may copy, distribute, and modify it freely as long as you preserve --- 2,8 ---- `bugs0.texi' and `bugs.texi'. `BUGS' is _not_ a source file, although it is normally included within source distributions. ! This file lists known bugs in the GCC-3.3.5 version of the GNU Fortran compiler. Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc. You may copy, distribute, and modify it freely as long as you preserve *************** Known Bugs In GNU Fortran *** 12,18 **** ************************* This section identifies bugs that `g77' _users_ might run into in ! the GCC-3.3.4 version of `g77'. This includes bugs that are actually in the `gcc' back end (GBE) or in `libf2c', because those sets of code are at least somewhat under the control of (and necessarily intertwined with) `g77', so it isn't worth separating them out. --- 12,18 ---- ************************* This section identifies bugs that `g77' _users_ might run into in ! the GCC-3.3.5 version of `g77'. This includes bugs that are actually in the `gcc' back end (GBE) or in `libf2c', because those sets of code are at least somewhat under the control of (and necessarily intertwined with) `g77', so it isn't worth separating them out. diff -Nrc3pad gcc-3.3.4/gcc/f/ChangeLog gcc-3.3.5/gcc/f/ChangeLog *** gcc-3.3.4/gcc/f/ChangeLog 2004-05-31 22:34:42.000000000 +0000 --- gcc-3.3.5/gcc/f/ChangeLog 2004-09-30 16:43:49.000000000 +0000 *************** *** 1,3 **** --- 1,7 ---- + 2004-09-30 Release Manager + + * GCC 3.3.5 Released. + 2004-05-31 Release Manager * GCC 3.3.4 Released. diff -Nrc3pad gcc-3.3.4/gcc/f/g77.1 gcc-3.3.5/gcc/f/g77.1 *** gcc-3.3.4/gcc/f/g77.1 2004-05-31 22:43:21.000000000 +0000 --- gcc-3.3.5/gcc/f/g77.1 2004-09-30 17:38:16.000000000 +0000 *************** *** 1,8 **** ! .\" Automatically generated by Pod::Man version 1.15 ! .\" Mon May 31 22:43:20 2004 .\" .\" Standard preamble: ! .\" ====================================================================== .de Sh \" Subsection heading .br .if t .Sp --- 1,7 ---- ! .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 .\" .\" Standard preamble: ! .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp *************** *** 15,26 **** .if t .sp .5v .if n .sp .. - .de Ip \" List item - .br - .ie \\n(.$>=3 .ne \\$3 - .el .ne 3 - .IP "\\$1" \\$2 - .. .de Vb \" Begin verbatim text .ft CW .nf --- 14,19 ---- *************** *** 28,42 **** .. .de Ve \" End verbatim text .ft R - .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a ! .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used ! .\" to do unbreakable dashes and therefore won't be available. \*(C` and ! .\" \*(C' expand to `' in nroff, nothing in troff, for use with C<> .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ --- 21,34 ---- .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a ! .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to ! .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' ! .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ *************** *** 56,65 **** . ds R" '' 'br\} .\" ! .\" If the F register is turned on, we'll generate index entries on stderr ! .\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and ! .\" index entries marked with X<> in POD. Of course, you'll have to process ! .\" the output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" --- 48,57 ---- . ds R" '' 'br\} .\" ! .\" If the F register is turned on, we'll generate index entries on stderr for ! .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index ! .\" entries marked with X<> in POD. Of course, you'll have to process the ! .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" *************** *** 68,81 **** . rr F .\} .\" ! .\" For nroff, turn off justification. Always turn off hyphenation; it ! .\" makes way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. - .bd B 3 . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 --- 60,72 ---- . rr F .\} .\" ! .\" For nroff, turn off justification. Always turn off hyphenation; it makes ! .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 *************** *** 135,147 **** . ds Ae AE .\} .rm #[ #] #H #V #F C ! .\" ====================================================================== .\" .IX Title "G77 1" ! .TH G77 1 "gcc-3.3.4" "2004-05-31" "GNU" ! .UC .SH "NAME" ! g77 \- \s-1GNU\s0 project Fortran 77 compiler .SH "SYNOPSIS" .IX Header "SYNOPSIS" g77 [\fB\-c\fR|\fB\-S\fR|\fB\-E\fR] --- 126,137 ---- . ds Ae AE .\} .rm #[ #] #H #V #F C ! .\" ======================================================================== .\" .IX Title "G77 1" ! .TH G77 1 "2004-09-30" "gcc-3.3.5" "GNU" .SH "NAME" ! g77 \- GNU project Fortran 77 compiler .SH "SYNOPSIS" .IX Header "SYNOPSIS" g77 [\fB\-c\fR|\fB\-S\fR|\fB\-E\fR] *************** enables acceptance of \fBg77\fR options *** 168,253 **** by all of the relevant drivers. .PP In some cases, options have positive and negative forms; ! the negative form of \fB\-ffoo\fR would be \fB\-fno-foo\fR. This manual documents only one of these two forms, whichever one is not the default. .SH "OPTIONS" .IX Header "OPTIONS" Here is a summary of all the options specific to \s-1GNU\s0 Fortran, grouped by type. Explanations are in the following sections. ! .Ip "\fIOverall Options\fR" 4 .IX Item "Overall Options" ! \&\fB\-fversion \-fset-g77\-defaults \-fno-silent\fR ! .Ip "\fIShorthand Options\fR" 4 .IX Item "Shorthand Options" ! \&\fB\-ff66 \-fno-f66 \-ff77 \-fno-f77 \-fno-ugly\fR ! .Ip "\fIFortran Language Options\fR" 4 .IX Item "Fortran Language Options" ! \&\fB\-ffree-form \-fno-fixed-form \-ff90 ! \&\-fvxt \-fdollar-ok \-fno-backslash ! \&\-fno-ugly-args \-fno-ugly-assign \-fno-ugly-assumed ! \&\-fugly-comma \-fugly-complex \-fugly-init \-fugly-logint ! \&\-fonetrip \-ftypeless-boz ! \&\-fintrin-case-initcap \-fintrin-case-upper ! \&\-fintrin-case-lower \-fintrin-case-any ! \&\-fmatch-case-initcap \-fmatch-case-upper ! \&\-fmatch-case-lower \-fmatch-case-any ! \&\-fsource-case-upper \-fsource-case-lower ! \&\-fsource-case-preserve ! \&\-fsymbol-case-initcap \-fsymbol-case-upper ! \&\-fsymbol-case-lower \-fsymbol-case-any ! \&\-fcase-strict-upper \-fcase-strict-lower ! \&\-fcase-initcap \-fcase-upper \-fcase-lower \-fcase-preserve ! \&\-ff2c-intrinsics-delete \-ff2c-intrinsics-hide ! \&\-ff2c-intrinsics-disable \-ff2c-intrinsics-enable ! \&\-fbadu77\-intrinsics-delete \-fbadu77\-intrinsics-hide ! \&\-fbadu77\-intrinsics-disable \-fbadu77\-intrinsics-enable ! \&\-ff90\-intrinsics-delete \-ff90\-intrinsics-hide ! \&\-ff90\-intrinsics-disable \-ff90\-intrinsics-enable ! \&\-fgnu-intrinsics-delete \-fgnu-intrinsics-hide ! \&\-fgnu-intrinsics-disable \-fgnu-intrinsics-enable ! \&\-fmil-intrinsics-delete \-fmil-intrinsics-hide ! \&\-fmil-intrinsics-disable \-fmil-intrinsics-enable ! \&\-funix-intrinsics-delete \-funix-intrinsics-hide ! \&\-funix-intrinsics-disable \-funix-intrinsics-enable ! \&\-fvxt-intrinsics-delete \-fvxt-intrinsics-hide ! \&\-fvxt-intrinsics-disable \-fvxt-intrinsics-enable ! \&\-ffixed-line-length-\fR\fIn\fR \fB\-ffixed-line-length-none\fR ! .Ip "\fIWarning Options\fR" 4 .IX Item "Warning Options" ! \&\fB\-fsyntax-only \-pedantic \-pedantic-errors \-fpedantic ! \&\-w \-Wno-globals \-Wimplicit \-Wunused \-Wuninitialized \&\-Wall \-Wsurprising \&\-Werror \-W\fR ! .Ip "\fIDebugging Options\fR" 4 .IX Item "Debugging Options" \&\fB\-g\fR ! .Ip "\fIOptimization Options\fR" 4 .IX Item "Optimization Options" ! \&\fB\-malign-double ! \&\-ffloat-store \-fforce-mem \-fforce-addr \-fno-inline ! \&\-ffast-math \-fstrength-reduce \-frerun-cse-after-loop ! \&\-funsafe-math-optimizations \-ffinite-math-only \-fno-trapping-math ! \&\-fexpensive-optimizations \-fdelayed-branch ! \&\-fschedule-insns \-fschedule-insn2 \-fcaller-saves ! \&\-funroll-loops \-funroll-all-loops ! \&\-fno-move-all-movables \-fno-reduce-all-givs ! \&\-fno-rerun-loop-opt\fR ! .Ip "\fIDirectory Options\fR" 4 .IX Item "Directory Options" ! \&\fB\-I\fR\fIdir\fR \fB\-I-\fR ! .Ip "\fICode Generation Options\fR" 4 .IX Item "Code Generation Options" ! \&\fB\-fno-automatic \-finit-local-zero \-fno-f2c ! \&\-ff2c-library \-fno-underscoring \-fno-ident ! \&\-fpcc-struct-return \-freg-struct-return ! \&\-fshort-double \-fno-common \-fpack-struct ! \&\-fzeros \-fno-second-underscore ! \&\-femulate-complex ! \&\-falias-check \-fargument-alias ! \&\-fargument-noalias \-fno-argument-noalias-global ! \&\-fno-globals \-fflatten-arrays ! \&\-fbounds-check \-ffortran-bounds-check\fR .PP Compilation can involve as many as four stages: preprocessing, code generation (often what is really meant by the term ``compilation''), --- 158,243 ---- by all of the relevant drivers. .PP In some cases, options have positive and negative forms; ! the negative form of \fB\-ffoo\fR would be \fB\-fno\-foo\fR. This manual documents only one of these two forms, whichever one is not the default. .SH "OPTIONS" .IX Header "OPTIONS" Here is a summary of all the options specific to \s-1GNU\s0 Fortran, grouped by type. Explanations are in the following sections. ! .IP "\fIOverall Options\fR" 4 .IX Item "Overall Options" ! \&\fB\-fversion \-fset\-g77\-defaults \-fno\-silent\fR ! .IP "\fIShorthand Options\fR" 4 .IX Item "Shorthand Options" ! \&\fB\-ff66 \-fno\-f66 \-ff77 \-fno\-f77 \-fno\-ugly\fR ! .IP "\fIFortran Language Options\fR" 4 .IX Item "Fortran Language Options" ! \&\fB\-ffree\-form \-fno\-fixed\-form \-ff90 ! \&\-fvxt \-fdollar\-ok \-fno\-backslash ! \&\-fno\-ugly\-args \-fno\-ugly\-assign \-fno\-ugly\-assumed ! \&\-fugly\-comma \-fugly\-complex \-fugly\-init \-fugly\-logint ! \&\-fonetrip \-ftypeless\-boz ! \&\-fintrin\-case\-initcap \-fintrin\-case\-upper ! \&\-fintrin\-case\-lower \-fintrin\-case\-any ! \&\-fmatch\-case\-initcap \-fmatch\-case\-upper ! \&\-fmatch\-case\-lower \-fmatch\-case\-any ! \&\-fsource\-case\-upper \-fsource\-case\-lower ! \&\-fsource\-case\-preserve ! \&\-fsymbol\-case\-initcap \-fsymbol\-case\-upper ! \&\-fsymbol\-case\-lower \-fsymbol\-case\-any ! \&\-fcase\-strict\-upper \-fcase\-strict\-lower ! \&\-fcase\-initcap \-fcase\-upper \-fcase\-lower \-fcase\-preserve ! \&\-ff2c\-intrinsics\-delete \-ff2c\-intrinsics\-hide ! \&\-ff2c\-intrinsics\-disable \-ff2c\-intrinsics\-enable ! \&\-fbadu77\-intrinsics\-delete \-fbadu77\-intrinsics\-hide ! \&\-fbadu77\-intrinsics\-disable \-fbadu77\-intrinsics\-enable ! \&\-ff90\-intrinsics\-delete \-ff90\-intrinsics\-hide ! \&\-ff90\-intrinsics\-disable \-ff90\-intrinsics\-enable ! \&\-fgnu\-intrinsics\-delete \-fgnu\-intrinsics\-hide ! \&\-fgnu\-intrinsics\-disable \-fgnu\-intrinsics\-enable ! \&\-fmil\-intrinsics\-delete \-fmil\-intrinsics\-hide ! \&\-fmil\-intrinsics\-disable \-fmil\-intrinsics\-enable ! \&\-funix\-intrinsics\-delete \-funix\-intrinsics\-hide ! \&\-funix\-intrinsics\-disable \-funix\-intrinsics\-enable ! \&\-fvxt\-intrinsics\-delete \-fvxt\-intrinsics\-hide ! \&\-fvxt\-intrinsics\-disable \-fvxt\-intrinsics\-enable ! \&\-ffixed\-line\-length\-\fR\fIn\fR \fB\-ffixed\-line\-length\-none\fR ! .IP "\fIWarning Options\fR" 4 .IX Item "Warning Options" ! \&\fB\-fsyntax\-only \-pedantic \-pedantic\-errors \-fpedantic ! \&\-w \-Wno\-globals \-Wimplicit \-Wunused \-Wuninitialized \&\-Wall \-Wsurprising \&\-Werror \-W\fR ! .IP "\fIDebugging Options\fR" 4 .IX Item "Debugging Options" \&\fB\-g\fR ! .IP "\fIOptimization Options\fR" 4 .IX Item "Optimization Options" ! \&\fB\-malign\-double ! \&\-ffloat\-store \-fforce\-mem \-fforce\-addr \-fno\-inline ! \&\-ffast\-math \-fstrength\-reduce \-frerun\-cse\-after\-loop ! \&\-funsafe\-math\-optimizations \-ffinite\-math\-only \-fno\-trapping\-math ! \&\-fexpensive\-optimizations \-fdelayed\-branch ! \&\-fschedule\-insns \-fschedule\-insn2 \-fcaller\-saves ! \&\-funroll\-loops \-funroll\-all\-loops ! \&\-fno\-move\-all\-movables \-fno\-reduce\-all\-givs ! \&\-fno\-rerun\-loop\-opt\fR ! .IP "\fIDirectory Options\fR" 4 .IX Item "Directory Options" ! \&\fB\-I\fR\fIdir\fR \fB\-I\-\fR ! .IP "\fICode Generation Options\fR" 4 .IX Item "Code Generation Options" ! \&\fB\-fno\-automatic \-finit\-local\-zero \-fno\-f2c ! \&\-ff2c\-library \-fno\-underscoring \-fno\-ident ! \&\-fpcc\-struct\-return \-freg\-struct\-return ! \&\-fshort\-double \-fno\-common \-fpack\-struct ! \&\-fzeros \-fno\-second\-underscore ! \&\-femulate\-complex ! \&\-falias\-check \-fargument\-alias ! \&\-fargument\-noalias \-fno\-argument\-noalias\-global ! \&\-fno\-globals \-fflatten\-arrays ! \&\-fbounds\-check \-ffortran\-bounds\-check\fR .PP Compilation can involve as many as four stages: preprocessing, code generation (often what is really meant by the term ``compilation''), *************** For any given input file, the file name *** 260,271 **** program is contained in the file\-\-\-that is, the language in which the program is written is generally indicated by the suffix. Suffixes specific to \s-1GNU\s0 Fortran are listed below. ! .Ip "\fIfile\fR\fB.f\fR" 4 .IX Item "file.f" .PD 0 ! .Ip "\fIfile\fR\fB.for\fR" 4 .IX Item "file.for" ! .Ip "\fIfile\fR\fB.FOR\fR" 4 .IX Item "file.FOR" .PD Fortran source code that should not be preprocessed. --- 250,261 ---- program is contained in the file\-\-\-that is, the language in which the program is written is generally indicated by the suffix. Suffixes specific to \s-1GNU\s0 Fortran are listed below. ! .IP "\fIfile\fR\fB.f\fR" 4 .IX Item "file.f" .PD 0 ! .IP "\fIfile\fR\fB.for\fR" 4 .IX Item "file.for" ! .IP "\fIfile\fR\fB.FOR\fR" 4 .IX Item "file.FOR" .PD Fortran source code that should not be preprocessed. *************** Such source code cannot contain any prep *** 274,286 **** as \f(CW\*(C`#include\*(C'\fR, \f(CW\*(C`#define\*(C'\fR, \f(CW\*(C`#if\*(C'\fR, and so on. .Sp You can force \fB.f\fR files to be preprocessed by \fBcpp\fR by using ! \&\fB\-x f77\-cpp-input\fR. ! .Ip "\fIfile\fR\fB.F\fR" 4 .IX Item "file.F" .PD 0 ! .Ip "\fIfile\fR\fB.fpp\fR" 4 .IX Item "file.fpp" ! .Ip "\fIfile\fR\fB.FPP\fR" 4 .IX Item "file.FPP" .PD Fortran source code that must be preprocessed (by the C preprocessor --- 264,276 ---- as \f(CW\*(C`#include\*(C'\fR, \f(CW\*(C`#define\*(C'\fR, \f(CW\*(C`#if\*(C'\fR, and so on. .Sp You can force \fB.f\fR files to be preprocessed by \fBcpp\fR by using ! \&\fB\-x f77\-cpp\-input\fR. ! .IP "\fIfile\fR\fB.F\fR" 4 .IX Item "file.F" .PD 0 ! .IP "\fIfile\fR\fB.fpp\fR" 4 .IX Item "file.fpp" ! .IP "\fIfile\fR\fB.FPP\fR" 4 .IX Item "file.FPP" .PD Fortran source code that must be preprocessed (by the C preprocessor *************** Fortran source code that must be preproc *** 289,295 **** Note that preprocessing is not extended to the contents of files included by the \f(CW\*(C`INCLUDE\*(C'\fR directive\-\-\-the \f(CW\*(C`#include\*(C'\fR preprocessor directive must be used instead. ! .Ip "\fIfile\fR\fB.r\fR" 4 .IX Item "file.r" Ratfor source code, which must be preprocessed by the \fBratfor\fR command, which is available separately (as it is not yet part of the \s-1GNU\s0 --- 279,285 ---- Note that preprocessing is not extended to the contents of files included by the \f(CW\*(C`INCLUDE\*(C'\fR directive\-\-\-the \f(CW\*(C`#include\*(C'\fR preprocessor directive must be used instead. ! .IP "\fIfile\fR\fB.r\fR" 4 .IX Item "file.r" Ratfor source code, which must be preprocessed by the \fBratfor\fR command, which is available separately (as it is not yet part of the \s-1GNU\s0 *************** distinguish upper-case *** 304,310 **** letters from lower-case letters in their file names, typically use the \fI\fIfile\fI.for\fR and \fI\fIfile\fI.fpp\fR nomenclature. .PP ! Use of the preprocessor \fBcpp\fR allows use of C-like constructs such as \f(CW\*(C`#define\*(C'\fR and \f(CW\*(C`#include\*(C'\fR, but can lead to unexpected, even mistaken, results due to Fortran's source file format. --- 294,300 ---- letters from lower-case letters in their file names, typically use the \fI\fIfile\fI.for\fR and \fI\fIfile\fI.fpp\fR nomenclature. .PP ! Use of the preprocessor \fBcpp\fR allows use of C\-like constructs such as \f(CW\*(C`#define\*(C'\fR and \f(CW\*(C`#include\*(C'\fR, but can lead to unexpected, even mistaken, results due to Fortran's source file format. *************** anything that \fBcpp\fR sees as an unter *** 353,374 **** \& C Some Fortran compilers accept /* as starting \& C an inline comment. .Ve The following options that affect overall processing are recognized by the \fBg77\fR and \fBgcc\fR commands in a \s-1GNU\s0 Fortran installation: ! .Ip "\fB\-fversion\fR" 4 .IX Item "-fversion" Ensure that the \fBg77\fR version of the compiler phase is reported, if run, and, starting in \f(CW\*(C`egcs\*(C'\fR version 1.1, that internal consistency checks in the \fIf771\fR program are run. .Sp ! This option is supplied automatically when \fB\-v\fR or \fB\*(--verbose\fR is specified as a command-line option for \fBg77\fR or \fBgcc\fR and when the resulting commands compile Fortran source files. .Sp In \s-1GCC\s0 3.1, this is changed back to the behavior \fBgcc\fR displays for \fB.c\fR files. ! .Ip "\fB\-fset-g77\-defaults\fR" 4 .IX Item "-fset-g77-defaults" \&\fIVersion info:\fR This option was obsolete as of \f(CW\*(C`egcs\*(C'\fR --- 343,365 ---- \& C Some Fortran compilers accept /* as starting \& C an inline comment. .Ve + .PP The following options that affect overall processing are recognized by the \fBg77\fR and \fBgcc\fR commands in a \s-1GNU\s0 Fortran installation: ! .IP "\fB\-fversion\fR" 4 .IX Item "-fversion" Ensure that the \fBg77\fR version of the compiler phase is reported, if run, and, starting in \f(CW\*(C`egcs\*(C'\fR version 1.1, that internal consistency checks in the \fIf771\fR program are run. .Sp ! This option is supplied automatically when \fB\-v\fR or \fB\-\-verbose\fR is specified as a command-line option for \fBg77\fR or \fBgcc\fR and when the resulting commands compile Fortran source files. .Sp In \s-1GCC\s0 3.1, this is changed back to the behavior \fBgcc\fR displays for \fB.c\fR files. ! .IP "\fB\-fset\-g77\-defaults\fR" 4 .IX Item "-fset-g77-defaults" \&\fIVersion info:\fR This option was obsolete as of \f(CW\*(C`egcs\*(C'\fR *************** executable, invoke it without this optio *** 395,403 **** e.g. via \f(CW\*(C`./f771 \-quiet < /dev/null\*(C'\fR, to ensure that they have not introduced any internal inconsistencies (such as in the table of ! intrinsics) before proceeding\-\--\fBg77\fR will crash with a diagnostic if it detects an inconsistency. ! .Ip "\fB\-fno-silent\fR" 4 .IX Item "-fno-silent" Print (to \f(CW\*(C`stderr\*(C'\fR) the names of the program units as they are compiled, in a form similar to that used by popular --- 386,394 ---- e.g. via \f(CW\*(C`./f771 \-quiet < /dev/null\*(C'\fR, to ensure that they have not introduced any internal inconsistencies (such as in the table of ! intrinsics) before proceeding\-\-\-\fBg77\fR will crash with a diagnostic if it detects an inconsistency. ! .IP "\fB\-fno\-silent\fR" 4 .IX Item "-fno-silent" Print (to \f(CW\*(C`stderr\*(C'\fR) the names of the program units as they are compiled, in a form similar to that used by popular *************** they are compiled, in a form similar to *** 406,412 **** .IX Subsection "Shorthand Options" The following options serve as ``shorthand'' for other options accepted by the compiler: ! .Ip "\fB\-fugly\fR" 4 .IX Item "-fugly" \&\fINote:\fR This option is no longer supported. The information, below, is provided to aid --- 397,403 ---- .IX Subsection "Shorthand Options" The following options serve as ``shorthand'' for other options accepted by the compiler: ! .IP "\fB\-fugly\fR" 4 .IX Item "-fugly" \&\fINote:\fR This option is no longer supported. The information, below, is provided to aid *************** Same as: *** 420,429 **** \& -fugly-comma -fugly-complex -fugly-init \& -fugly-logint .Ve These constructs are considered inappropriate to use in new or well-maintained portable Fortran code, but widely used in old code. ! .Ip "\fB\-fno-ugly\fR" 4 .IX Item "-fno-ugly" Specify that all ``ugly'' constructs are to be noisily rejected. Same as: --- 411,421 ---- \& -fugly-comma -fugly-complex -fugly-init \& -fugly-logint .Ve + .Sp These constructs are considered inappropriate to use in new or well-maintained portable Fortran code, but widely used in old code. ! .IP "\fB\-fno\-ugly\fR" 4 .IX Item "-fno-ugly" Specify that all ``ugly'' constructs are to be noisily rejected. Same as: *************** Same as: *** 433,465 **** \& -fno-ugly-comma -fno-ugly-complex -fno-ugly-init \& -fno-ugly-logint .Ve ! .Ip "\fB\-ff66\fR" 4 .IX Item "-ff66" Specify that the program is written in idiomatic \s-1FORTRAN\s0 66. ! Same as \fB\-fonetrip \-fugly-assumed\fR. .Sp ! The \fB\-fno-f66\fR option is the inverse of \fB\-ff66\fR. ! As such, it is the same as \fB\-fno-onetrip \-fno-ugly-assumed\fR. .Sp The meaning of this option is likely to be refined as future versions of \fBg77\fR provide more compatibility with other existing and obsolete Fortran implementations. ! .Ip "\fB\-ff77\fR" 4 .IX Item "-ff77" Specify that the program is written in idiomatic \s-1UNIX\s0 \s-1FORTRAN\s0 77 and/or the dialect accepted by the \fBf2c\fR product. ! Same as \fB\-fbackslash \-fno-typeless-boz\fR. .Sp The meaning of this option is likely to be refined as future versions of \fBg77\fR provide more compatibility with other existing and obsolete Fortran implementations. ! .Ip "\fB\-fno-f77\fR" 4 .IX Item "-fno-f77" ! The \fB\-fno-f77\fR option is \fInot\fR the inverse of \fB\-ff77\fR. It specifies that the program is not written in idiomatic \s-1UNIX\s0 \&\s-1FORTRAN\s0 77 or \fBf2c\fR but in a more widely portable dialect. ! \&\fB\-fno-f77\fR is the same as \fB\-fno-backslash\fR. .Sp The meaning of this option is likely to be refined as future versions of \fBg77\fR provide more compatibility with other --- 425,457 ---- \& -fno-ugly-comma -fno-ugly-complex -fno-ugly-init \& -fno-ugly-logint .Ve ! .IP "\fB\-ff66\fR" 4 .IX Item "-ff66" Specify that the program is written in idiomatic \s-1FORTRAN\s0 66. ! Same as \fB\-fonetrip \-fugly\-assumed\fR. .Sp ! The \fB\-fno\-f66\fR option is the inverse of \fB\-ff66\fR. ! As such, it is the same as \fB\-fno\-onetrip \-fno\-ugly\-assumed\fR. .Sp The meaning of this option is likely to be refined as future versions of \fBg77\fR provide more compatibility with other existing and obsolete Fortran implementations. ! .IP "\fB\-ff77\fR" 4 .IX Item "-ff77" Specify that the program is written in idiomatic \s-1UNIX\s0 \s-1FORTRAN\s0 77 and/or the dialect accepted by the \fBf2c\fR product. ! Same as \fB\-fbackslash \-fno\-typeless\-boz\fR. .Sp The meaning of this option is likely to be refined as future versions of \fBg77\fR provide more compatibility with other existing and obsolete Fortran implementations. ! .IP "\fB\-fno\-f77\fR" 4 .IX Item "-fno-f77" ! The \fB\-fno\-f77\fR option is \fInot\fR the inverse of \fB\-ff77\fR. It specifies that the program is not written in idiomatic \s-1UNIX\s0 \&\s-1FORTRAN\s0 77 or \fBf2c\fR but in a more widely portable dialect. ! \&\fB\-fno\-f77\fR is the same as \fB\-fno\-backslash\fR. .Sp The meaning of this option is likely to be refined as future versions of \fBg77\fR provide more compatibility with other *************** existing and obsolete Fortran implementa *** 468,512 **** .IX Subsection "Options Controlling Fortran Dialect" The following options control the dialect of Fortran that the compiler accepts: ! .Ip "\fB\-ffree-form\fR" 4 .IX Item "-ffree-form" .PD 0 ! .Ip "\fB\-fno-fixed-form\fR" 4 .IX Item "-fno-fixed-form" .PD Specify that the source file is written in free form (introduced in Fortran 90) instead of the more-traditional fixed form. ! .Ip "\fB\-ff90\fR" 4 .IX Item "-ff90" ! Allow certain Fortran-90 constructs. .Sp This option controls whether certain Fortran 90 constructs are recognized. (Other Fortran 90 constructs might or might not be recognized depending on other options such as ! \&\fB\-fvxt\fR, \fB\-ff90\-intrinsics-enable\fR, and the current level of support for Fortran 90.) ! .Ip "\fB\-fvxt\fR" 4 .IX Item "-fvxt" Specify the treatment of certain constructs that have different meanings depending on whether the code is written in \&\s-1GNU\s0 Fortran (based on \s-1FORTRAN\s0 77 and akin to Fortran 90) or \s-1VXT\s0 Fortran (more like \s-1VAX\s0 \s-1FORTRAN\s0). .Sp ! The default is \fB\-fno-vxt\fR. \&\fB\-fvxt\fR specifies that the \s-1VXT\s0 Fortran interpretations for those constructs are to be chosen. ! .Ip "\fB\-fdollar-ok\fR" 4 .IX Item "-fdollar-ok" Allow \fB$\fR as a valid character in a symbol name. ! .Ip "\fB\-fno-backslash\fR" 4 .IX Item "-fno-backslash" Specify that \fB\e\fR is not to be specially interpreted in character and Hollerith constants a la C and many \s-1UNIX\s0 Fortran compilers. .Sp For example, with \fB\-fbackslash\fR in effect, \fBA\enB\fR specifies three characters, with the second one being newline. ! With \fB\-fno-backslash\fR, it specifies four characters, \&\fBA\fR, \fB\e\fR, \fBn\fR, and \fBB\fR. .Sp Note that \fBg77\fR implements a fairly general form of backslash --- 460,504 ---- .IX Subsection "Options Controlling Fortran Dialect" The following options control the dialect of Fortran that the compiler accepts: ! .IP "\fB\-ffree\-form\fR" 4 .IX Item "-ffree-form" .PD 0 ! .IP "\fB\-fno\-fixed\-form\fR" 4 .IX Item "-fno-fixed-form" .PD Specify that the source file is written in free form (introduced in Fortran 90) instead of the more-traditional fixed form. ! .IP "\fB\-ff90\fR" 4 .IX Item "-ff90" ! Allow certain Fortran\-90 constructs. .Sp This option controls whether certain Fortran 90 constructs are recognized. (Other Fortran 90 constructs might or might not be recognized depending on other options such as ! \&\fB\-fvxt\fR, \fB\-ff90\-intrinsics\-enable\fR, and the current level of support for Fortran 90.) ! .IP "\fB\-fvxt\fR" 4 .IX Item "-fvxt" Specify the treatment of certain constructs that have different meanings depending on whether the code is written in \&\s-1GNU\s0 Fortran (based on \s-1FORTRAN\s0 77 and akin to Fortran 90) or \s-1VXT\s0 Fortran (more like \s-1VAX\s0 \s-1FORTRAN\s0). .Sp ! The default is \fB\-fno\-vxt\fR. \&\fB\-fvxt\fR specifies that the \s-1VXT\s0 Fortran interpretations for those constructs are to be chosen. ! .IP "\fB\-fdollar\-ok\fR" 4 .IX Item "-fdollar-ok" Allow \fB$\fR as a valid character in a symbol name. ! .IP "\fB\-fno\-backslash\fR" 4 .IX Item "-fno-backslash" Specify that \fB\e\fR is not to be specially interpreted in character and Hollerith constants a la C and many \s-1UNIX\s0 Fortran compilers. .Sp For example, with \fB\-fbackslash\fR in effect, \fBA\enB\fR specifies three characters, with the second one being newline. ! With \fB\-fno\-backslash\fR, it specifies four characters, \&\fBA\fR, \fB\e\fR, \fBn\fR, and \fBB\fR. .Sp Note that \fBg77\fR implements a fairly general form of backslash *************** For example, \fB'A\e003B'\fR is a three- *** 516,532 **** whereas other compilers that support backslash might not support the three-octal-digit form, and thus treat that string as longer than three characters. ! .Ip "\fB\-fno-ugly-args\fR" 4 .IX Item "-fno-ugly-args" Disallow passing Hollerith and typeless constants as actual ! arguments (for example, \fB\s-1CALL\s0 FOO(4HABCD)\fR). ! .Ip "\fB\-fugly-assign\fR" 4 .IX Item "-fugly-assign" Use the same storage for a given variable regardless of whether it is used to hold an assigned-statement label (as in \fB\s-1ASSIGN\s0 10 \s-1TO\s0 I\fR) or used to hold numeric data (as in \fBI = 3\fR). ! .Ip "\fB\-fugly-assumed\fR" 4 .IX Item "-fugly-assumed" Assume any dummy array with a final dimension specified as \fB1\fR is really an assumed-size array, as if \fB*\fR had been specified --- 508,524 ---- whereas other compilers that support backslash might not support the three-octal-digit form, and thus treat that string as longer than three characters. ! .IP "\fB\-fno\-ugly\-args\fR" 4 .IX Item "-fno-ugly-args" Disallow passing Hollerith and typeless constants as actual ! arguments (for example, \fB\s-1CALL\s0 \s-1FOO\s0(4HABCD)\fR). ! .IP "\fB\-fugly\-assign\fR" 4 .IX Item "-fugly-assign" Use the same storage for a given variable regardless of whether it is used to hold an assigned-statement label (as in \fB\s-1ASSIGN\s0 10 \s-1TO\s0 I\fR) or used to hold numeric data (as in \fBI = 3\fR). ! .IP "\fB\-fugly\-assumed\fR" 4 .IX Item "-fugly-assumed" Assume any dummy array with a final dimension specified as \fB1\fR is really an assumed-size array, as if \fB*\fR had been specified *************** for the final dimension instead of \fB1\ *** 534,540 **** .Sp For example, \fB\s-1DIMENSION\s0 X(1)\fR is treated as if it had read \fB\s-1DIMENSION\s0 X(*)\fR. ! .Ip "\fB\-fugly-comma\fR" 4 .IX Item "-fugly-comma" In an external-procedure invocation, treat a trailing comma in the argument list --- 526,532 ---- .Sp For example, \fB\s-1DIMENSION\s0 X(1)\fR is treated as if it had read \fB\s-1DIMENSION\s0 X(*)\fR. ! .IP "\fB\-fugly\-comma\fR" 4 .IX Item "-fugly-comma" In an external-procedure invocation, treat a trailing comma in the argument list *************** as specification of a trailing null argu *** 542,568 **** and treat an empty argument list as specification of a single null argument. .Sp ! For example, \fB\s-1CALL\s0 \f(BIFOO\fB\|(,)\fR is treated as ! \&\fB\s-1CALL\s0 FOO(%\f(BIVAL\fB\|(0), %\f(BIVAL\fB\|(0))\fR. That is, \fItwo\fR null arguments are specified ! by the procedure call when \fB\-fugly-comma\fR is in force. ! And \fBF = \f(BIFUNC()\fB\fR is treated as \fBF = FUNC(%\f(BIVAL\fB\|(0))\fR. .Sp ! The default behavior, \fB\-fno-ugly-comma\fR, is to ignore a single trailing comma in an argument list. ! So, by default, \fB\s-1CALL\s0 FOO(X,)\fR is treated ! exactly the same as \fB\s-1CALL\s0 \f(BIFOO\fB\|(X)\fR. ! .Ip "\fB\-fugly-complex\fR" 4 .IX Item "-fugly-complex" ! Do not complain about \fBREAL(\fR\fIexpr\fR\fB)\fR or ! \&\fBAIMAG(\fR\fIexpr\fR\fB)\fR when \fIexpr\fR is a \f(CW\*(C`COMPLEX\*(C'\fR type other than \f(CW\*(C`COMPLEX(KIND=1)\*(C'\fR\-\-\-usually this is used to permit \f(CW\*(C`COMPLEX(KIND=2)\*(C'\fR (\f(CW\*(C`DOUBLE COMPLEX\*(C'\fR) operands. .Sp The \fB\-ff90\fR option controls the interpretation of this construct. ! .Ip "\fB\-fno-ugly-init\fR" 4 .IX Item "-fno-ugly-init" Disallow use of Hollerith and typeless constants as initial values (in \f(CW\*(C`PARAMETER\*(C'\fR and \f(CW\*(C`DATA\*(C'\fR statements), and --- 534,560 ---- and treat an empty argument list as specification of a single null argument. .Sp ! For example, \fB\s-1CALL\s0 \s-1FOO\s0(,)\fR is treated as ! \&\fB\s-1CALL\s0 \s-1FOO\s0(%\f(BIVAL\fB\|(0), %\f(BIVAL\fB\|(0))\fR. That is, \fItwo\fR null arguments are specified ! by the procedure call when \fB\-fugly\-comma\fR is in force. ! And \fBF = \s-1\f(BIFUNC\s0()\fB\fR is treated as \fBF = \s-1FUNC\s0(%\f(BIVAL\fB\|(0))\fR. .Sp ! The default behavior, \fB\-fno\-ugly\-comma\fR, is to ignore a single trailing comma in an argument list. ! So, by default, \fB\s-1CALL\s0 \s-1FOO\s0(X,)\fR is treated ! exactly the same as \fB\s-1CALL\s0 \s-1FOO\s0(X)\fR. ! .IP "\fB\-fugly\-complex\fR" 4 .IX Item "-fugly-complex" ! Do not complain about \fB\s-1REAL\s0(\fR\fIexpr\fR\fB)\fR or ! \&\fB\s-1AIMAG\s0(\fR\fIexpr\fR\fB)\fR when \fIexpr\fR is a \f(CW\*(C`COMPLEX\*(C'\fR type other than \f(CW\*(C`COMPLEX(KIND=1)\*(C'\fR\-\-\-usually this is used to permit \f(CW\*(C`COMPLEX(KIND=2)\*(C'\fR (\f(CW\*(C`DOUBLE COMPLEX\*(C'\fR) operands. .Sp The \fB\-ff90\fR option controls the interpretation of this construct. ! .IP "\fB\-fno\-ugly\-init\fR" 4 .IX Item "-fno-ugly-init" Disallow use of Hollerith and typeless constants as initial values (in \f(CW\*(C`PARAMETER\*(C'\fR and \f(CW\*(C`DATA\*(C'\fR statements), and *************** use of character constants to *** 570,584 **** initialize numeric types and vice versa. .Sp For example, \fB\s-1DATA\s0 I/'F'/, \s-1CHRVAR/65/\s0, J/4HABCD/\fR is disallowed by ! \&\fB\-fno-ugly-init\fR. ! .Ip "\fB\-fugly-logint\fR" 4 .IX Item "-fugly-logint" Treat \f(CW\*(C`INTEGER\*(C'\fR and \f(CW\*(C`LOGICAL\*(C'\fR variables and expressions as potential stand-ins for each other. .Sp For example, automatic conversion between \f(CW\*(C`INTEGER\*(C'\fR and \&\f(CW\*(C`LOGICAL\*(C'\fR is enabled, for many contexts, via this option. ! .Ip "\fB\-fonetrip\fR" 4 .IX Item "-fonetrip" Executable iterative \f(CW\*(C`DO\*(C'\fR loops are to be executed at least once each time they are reached. --- 562,576 ---- initialize numeric types and vice versa. .Sp For example, \fB\s-1DATA\s0 I/'F'/, \s-1CHRVAR/65/\s0, J/4HABCD/\fR is disallowed by ! \&\fB\-fno\-ugly\-init\fR. ! .IP "\fB\-fugly\-logint\fR" 4 .IX Item "-fugly-logint" Treat \f(CW\*(C`INTEGER\*(C'\fR and \f(CW\*(C`LOGICAL\*(C'\fR variables and expressions as potential stand-ins for each other. .Sp For example, automatic conversion between \f(CW\*(C`INTEGER\*(C'\fR and \&\f(CW\*(C`LOGICAL\*(C'\fR is enabled, for many contexts, via this option. ! .IP "\fB\-fonetrip\fR" 4 .IX Item "-fonetrip" Executable iterative \f(CW\*(C`DO\*(C'\fR loops are to be executed at least once each time they are reached. *************** For example, some code written to the \s *** 599,612 **** expects this behavior from its \f(CW\*(C`DO\*(C'\fR loops, although that standard did not specify this behavior. .Sp ! The \fB\-fonetrip\fR option specifies that the source \fIfile\fR\|(s) being compiled require one-trip loops. .Sp This option affects only those loops specified by the (iterative) \f(CW\*(C`DO\*(C'\fR ! statement and by implied-\f(CW\*(C`DO\*(C'\fR lists in I/O statements. ! Loops specified by implied-\f(CW\*(C`DO\*(C'\fR lists in \f(CW\*(C`DATA\*(C'\fR and ! specification (non-executable) statements are not affected. ! .Ip "\fB\-ftypeless-boz\fR" 4 .IX Item "-ftypeless-boz" Specifies that prefix-radix non-decimal constants, such as \&\fBZ'\s-1ABCD\s0'\fR, are typeless instead of \f(CW\*(C`INTEGER(KIND=1)\*(C'\fR. --- 591,604 ---- expects this behavior from its \f(CW\*(C`DO\*(C'\fR loops, although that standard did not specify this behavior. .Sp ! The \fB\-fonetrip\fR option specifies that the source file(s) being compiled require one-trip loops. .Sp This option affects only those loops specified by the (iterative) \f(CW\*(C`DO\*(C'\fR ! statement and by implied\-\f(CW\*(C`DO\*(C'\fR lists in I/O statements. ! Loops specified by implied\-\f(CW\*(C`DO\*(C'\fR lists in \f(CW\*(C`DATA\*(C'\fR and ! specification (non\-executable) statements are not affected. ! .IP "\fB\-ftypeless\-boz\fR" 4 .IX Item "-ftypeless-boz" Specifies that prefix-radix non-decimal constants, such as \&\fBZ'\s-1ABCD\s0'\fR, are typeless instead of \f(CW\*(C`INTEGER(KIND=1)\*(C'\fR. *************** following program: *** 623,798 **** \& IF (J .NE. I) PRINT *, 'Prefix form is INTEGER' \& END .Ve Reports indicate that many compilers process this form as \&\f(CW\*(C`INTEGER(KIND=1)\*(C'\fR, though a few as typeless, and at least one based on a command-line option specifying some kind of compatibility. ! .Ip "\fB\-fintrin-case-initcap\fR" 4 .IX Item "-fintrin-case-initcap" .PD 0 ! .Ip "\fB\-fintrin-case-upper\fR" 4 .IX Item "-fintrin-case-upper" ! .Ip "\fB\-fintrin-case-lower\fR" 4 .IX Item "-fintrin-case-lower" ! .Ip "\fB\-fintrin-case-any\fR" 4 .IX Item "-fintrin-case-any" .PD Specify expected case for intrinsic names. ! \&\fB\-fintrin-case-lower\fR is the default. ! .Ip "\fB\-fmatch-case-initcap\fR" 4 .IX Item "-fmatch-case-initcap" .PD 0 ! .Ip "\fB\-fmatch-case-upper\fR" 4 .IX Item "-fmatch-case-upper" ! .Ip "\fB\-fmatch-case-lower\fR" 4 .IX Item "-fmatch-case-lower" ! .Ip "\fB\-fmatch-case-any\fR" 4 .IX Item "-fmatch-case-any" .PD Specify expected case for keywords. ! \&\fB\-fmatch-case-lower\fR is the default. ! .Ip "\fB\-fsource-case-upper\fR" 4 .IX Item "-fsource-case-upper" .PD 0 ! .Ip "\fB\-fsource-case-lower\fR" 4 .IX Item "-fsource-case-lower" ! .Ip "\fB\-fsource-case-preserve\fR" 4 .IX Item "-fsource-case-preserve" .PD Specify whether source text other than character and Hollerith constants is to be translated to uppercase, to lowercase, or preserved as is. ! \&\fB\-fsource-case-lower\fR is the default. ! .Ip "\fB\-fsymbol-case-initcap\fR" 4 .IX Item "-fsymbol-case-initcap" .PD 0 ! .Ip "\fB\-fsymbol-case-upper\fR" 4 .IX Item "-fsymbol-case-upper" ! .Ip "\fB\-fsymbol-case-lower\fR" 4 .IX Item "-fsymbol-case-lower" ! .Ip "\fB\-fsymbol-case-any\fR" 4 .IX Item "-fsymbol-case-any" .PD Specify valid cases for user-defined symbol names. ! \&\fB\-fsymbol-case-any\fR is the default. ! .Ip "\fB\-fcase-strict-upper\fR" 4 .IX Item "-fcase-strict-upper" ! Same as \fB\-fintrin-case-upper \-fmatch-case-upper \-fsource-case-preserve ! \&\-fsymbol-case-upper\fR. (Requires all pertinent source to be in uppercase.) ! .Ip "\fB\-fcase-strict-lower\fR" 4 .IX Item "-fcase-strict-lower" ! Same as \fB\-fintrin-case-lower \-fmatch-case-lower \-fsource-case-preserve ! \&\-fsymbol-case-lower\fR. (Requires all pertinent source to be in lowercase.) ! .Ip "\fB\-fcase-initcap\fR" 4 .IX Item "-fcase-initcap" ! Same as \fB\-fintrin-case-initcap \-fmatch-case-initcap \-fsource-case-preserve ! \&\-fsymbol-case-initcap\fR. (Requires all pertinent source to be in initial capitals, as in \fBPrint *,SqRt(Value)\fR.) ! .Ip "\fB\-fcase-upper\fR" 4 .IX Item "-fcase-upper" ! Same as \fB\-fintrin-case-any \-fmatch-case-any \-fsource-case-upper ! \&\-fsymbol-case-any\fR. (Maps all pertinent source to uppercase.) ! .Ip "\fB\-fcase-lower\fR" 4 .IX Item "-fcase-lower" ! Same as \fB\-fintrin-case-any \-fmatch-case-any \-fsource-case-lower ! \&\-fsymbol-case-any\fR. (Maps all pertinent source to lowercase.) ! .Ip "\fB\-fcase-preserve\fR" 4 .IX Item "-fcase-preserve" ! Same as \fB\-fintrin-case-any \-fmatch-case-any \-fsource-case-preserve ! \&\-fsymbol-case-any\fR. (Preserves all case in user-defined symbols, while allowing any-case matching of intrinsics and keywords. For example, \fBcall Foo(i,I)\fR would pass two \fIdifferent\fR variables named \fBi\fR and \fBI\fR to a procedure named \fBFoo\fR.) ! .Ip "\fB\-fbadu77\-intrinsics-delete\fR" 4 .IX Item "-fbadu77-intrinsics-delete" .PD 0 ! .Ip "\fB\-fbadu77\-intrinsics-hide\fR" 4 .IX Item "-fbadu77-intrinsics-hide" ! .Ip "\fB\-fbadu77\-intrinsics-disable\fR" 4 .IX Item "-fbadu77-intrinsics-disable" ! .Ip "\fB\-fbadu77\-intrinsics-enable\fR" 4 .IX Item "-fbadu77-intrinsics-enable" .PD Specify status of \s-1UNIX\s0 intrinsics having inappropriate forms. ! \&\fB\-fbadu77\-intrinsics-enable\fR is the default. ! .Ip "\fB\-ff2c-intrinsics-delete\fR" 4 .IX Item "-ff2c-intrinsics-delete" .PD 0 ! .Ip "\fB\-ff2c-intrinsics-hide\fR" 4 .IX Item "-ff2c-intrinsics-hide" ! .Ip "\fB\-ff2c-intrinsics-disable\fR" 4 .IX Item "-ff2c-intrinsics-disable" ! .Ip "\fB\-ff2c-intrinsics-enable\fR" 4 .IX Item "-ff2c-intrinsics-enable" .PD ! Specify status of f2c-specific intrinsics. ! \&\fB\-ff2c-intrinsics-enable\fR is the default. ! .Ip "\fB\-ff90\-intrinsics-delete\fR" 4 .IX Item "-ff90-intrinsics-delete" .PD 0 ! .Ip "\fB\-ff90\-intrinsics-hide\fR" 4 .IX Item "-ff90-intrinsics-hide" ! .Ip "\fB\-ff90\-intrinsics-disable\fR" 4 .IX Item "-ff90-intrinsics-disable" ! .Ip "\fB\-ff90\-intrinsics-enable\fR" 4 .IX Item "-ff90-intrinsics-enable" .PD Specify status of F90\-specific intrinsics. ! \&\fB\-ff90\-intrinsics-enable\fR is the default. ! .Ip "\fB\-fgnu-intrinsics-delete\fR" 4 .IX Item "-fgnu-intrinsics-delete" .PD 0 ! .Ip "\fB\-fgnu-intrinsics-hide\fR" 4 .IX Item "-fgnu-intrinsics-hide" ! .Ip "\fB\-fgnu-intrinsics-disable\fR" 4 .IX Item "-fgnu-intrinsics-disable" ! .Ip "\fB\-fgnu-intrinsics-enable\fR" 4 .IX Item "-fgnu-intrinsics-enable" .PD Specify status of Digital's COMPLEX-related intrinsics. ! \&\fB\-fgnu-intrinsics-enable\fR is the default. ! .Ip "\fB\-fmil-intrinsics-delete\fR" 4 .IX Item "-fmil-intrinsics-delete" .PD 0 ! .Ip "\fB\-fmil-intrinsics-hide\fR" 4 .IX Item "-fmil-intrinsics-hide" ! .Ip "\fB\-fmil-intrinsics-disable\fR" 4 .IX Item "-fmil-intrinsics-disable" ! .Ip "\fB\-fmil-intrinsics-enable\fR" 4 .IX Item "-fmil-intrinsics-enable" .PD ! Specify status of MIL-STD-1753\-specific intrinsics. ! \&\fB\-fmil-intrinsics-enable\fR is the default. ! .Ip "\fB\-funix-intrinsics-delete\fR" 4 .IX Item "-funix-intrinsics-delete" .PD 0 ! .Ip "\fB\-funix-intrinsics-hide\fR" 4 .IX Item "-funix-intrinsics-hide" ! .Ip "\fB\-funix-intrinsics-disable\fR" 4 .IX Item "-funix-intrinsics-disable" ! .Ip "\fB\-funix-intrinsics-enable\fR" 4 .IX Item "-funix-intrinsics-enable" .PD Specify status of \s-1UNIX\s0 intrinsics. ! \&\fB\-funix-intrinsics-enable\fR is the default. ! .Ip "\fB\-fvxt-intrinsics-delete\fR" 4 .IX Item "-fvxt-intrinsics-delete" .PD 0 ! .Ip "\fB\-fvxt-intrinsics-hide\fR" 4 .IX Item "-fvxt-intrinsics-hide" ! .Ip "\fB\-fvxt-intrinsics-disable\fR" 4 .IX Item "-fvxt-intrinsics-disable" ! .Ip "\fB\-fvxt-intrinsics-enable\fR" 4 .IX Item "-fvxt-intrinsics-enable" .PD Specify status of \s-1VXT\s0 intrinsics. ! \&\fB\-fvxt-intrinsics-enable\fR is the default. ! .Ip "\fB\-ffixed-line-length-\fR\fIn\fR" 4 .IX Item "-ffixed-line-length-n" Set column after which characters are ignored in typical fixed-form lines in the source file, and through which spaces are assumed (as --- 615,791 ---- \& IF (J .NE. I) PRINT *, 'Prefix form is INTEGER' \& END .Ve + .Sp Reports indicate that many compilers process this form as \&\f(CW\*(C`INTEGER(KIND=1)\*(C'\fR, though a few as typeless, and at least one based on a command-line option specifying some kind of compatibility. ! .IP "\fB\-fintrin\-case\-initcap\fR" 4 .IX Item "-fintrin-case-initcap" .PD 0 ! .IP "\fB\-fintrin\-case\-upper\fR" 4 .IX Item "-fintrin-case-upper" ! .IP "\fB\-fintrin\-case\-lower\fR" 4 .IX Item "-fintrin-case-lower" ! .IP "\fB\-fintrin\-case\-any\fR" 4 .IX Item "-fintrin-case-any" .PD Specify expected case for intrinsic names. ! \&\fB\-fintrin\-case\-lower\fR is the default. ! .IP "\fB\-fmatch\-case\-initcap\fR" 4 .IX Item "-fmatch-case-initcap" .PD 0 ! .IP "\fB\-fmatch\-case\-upper\fR" 4 .IX Item "-fmatch-case-upper" ! .IP "\fB\-fmatch\-case\-lower\fR" 4 .IX Item "-fmatch-case-lower" ! .IP "\fB\-fmatch\-case\-any\fR" 4 .IX Item "-fmatch-case-any" .PD Specify expected case for keywords. ! \&\fB\-fmatch\-case\-lower\fR is the default. ! .IP "\fB\-fsource\-case\-upper\fR" 4 .IX Item "-fsource-case-upper" .PD 0 ! .IP "\fB\-fsource\-case\-lower\fR" 4 .IX Item "-fsource-case-lower" ! .IP "\fB\-fsource\-case\-preserve\fR" 4 .IX Item "-fsource-case-preserve" .PD Specify whether source text other than character and Hollerith constants is to be translated to uppercase, to lowercase, or preserved as is. ! \&\fB\-fsource\-case\-lower\fR is the default. ! .IP "\fB\-fsymbol\-case\-initcap\fR" 4 .IX Item "-fsymbol-case-initcap" .PD 0 ! .IP "\fB\-fsymbol\-case\-upper\fR" 4 .IX Item "-fsymbol-case-upper" ! .IP "\fB\-fsymbol\-case\-lower\fR" 4 .IX Item "-fsymbol-case-lower" ! .IP "\fB\-fsymbol\-case\-any\fR" 4 .IX Item "-fsymbol-case-any" .PD Specify valid cases for user-defined symbol names. ! \&\fB\-fsymbol\-case\-any\fR is the default. ! .IP "\fB\-fcase\-strict\-upper\fR" 4 .IX Item "-fcase-strict-upper" ! Same as \fB\-fintrin\-case\-upper \-fmatch\-case\-upper \-fsource\-case\-preserve ! \&\-fsymbol\-case\-upper\fR. (Requires all pertinent source to be in uppercase.) ! .IP "\fB\-fcase\-strict\-lower\fR" 4 .IX Item "-fcase-strict-lower" ! Same as \fB\-fintrin\-case\-lower \-fmatch\-case\-lower \-fsource\-case\-preserve ! \&\-fsymbol\-case\-lower\fR. (Requires all pertinent source to be in lowercase.) ! .IP "\fB\-fcase\-initcap\fR" 4 .IX Item "-fcase-initcap" ! Same as \fB\-fintrin\-case\-initcap \-fmatch\-case\-initcap \-fsource\-case\-preserve ! \&\-fsymbol\-case\-initcap\fR. (Requires all pertinent source to be in initial capitals, as in \fBPrint *,SqRt(Value)\fR.) ! .IP "\fB\-fcase\-upper\fR" 4 .IX Item "-fcase-upper" ! Same as \fB\-fintrin\-case\-any \-fmatch\-case\-any \-fsource\-case\-upper ! \&\-fsymbol\-case\-any\fR. (Maps all pertinent source to uppercase.) ! .IP "\fB\-fcase\-lower\fR" 4 .IX Item "-fcase-lower" ! Same as \fB\-fintrin\-case\-any \-fmatch\-case\-any \-fsource\-case\-lower ! \&\-fsymbol\-case\-any\fR. (Maps all pertinent source to lowercase.) ! .IP "\fB\-fcase\-preserve\fR" 4 .IX Item "-fcase-preserve" ! Same as \fB\-fintrin\-case\-any \-fmatch\-case\-any \-fsource\-case\-preserve ! \&\-fsymbol\-case\-any\fR. (Preserves all case in user-defined symbols, while allowing any-case matching of intrinsics and keywords. For example, \fBcall Foo(i,I)\fR would pass two \fIdifferent\fR variables named \fBi\fR and \fBI\fR to a procedure named \fBFoo\fR.) ! .IP "\fB\-fbadu77\-intrinsics\-delete\fR" 4 .IX Item "-fbadu77-intrinsics-delete" .PD 0 ! .IP "\fB\-fbadu77\-intrinsics\-hide\fR" 4 .IX Item "-fbadu77-intrinsics-hide" ! .IP "\fB\-fbadu77\-intrinsics\-disable\fR" 4 .IX Item "-fbadu77-intrinsics-disable" ! .IP "\fB\-fbadu77\-intrinsics\-enable\fR" 4 .IX Item "-fbadu77-intrinsics-enable" .PD Specify status of \s-1UNIX\s0 intrinsics having inappropriate forms. ! \&\fB\-fbadu77\-intrinsics\-enable\fR is the default. ! .IP "\fB\-ff2c\-intrinsics\-delete\fR" 4 .IX Item "-ff2c-intrinsics-delete" .PD 0 ! .IP "\fB\-ff2c\-intrinsics\-hide\fR" 4 .IX Item "-ff2c-intrinsics-hide" ! .IP "\fB\-ff2c\-intrinsics\-disable\fR" 4 .IX Item "-ff2c-intrinsics-disable" ! .IP "\fB\-ff2c\-intrinsics\-enable\fR" 4 .IX Item "-ff2c-intrinsics-enable" .PD ! Specify status of f2c\-specific intrinsics. ! \&\fB\-ff2c\-intrinsics\-enable\fR is the default. ! .IP "\fB\-ff90\-intrinsics\-delete\fR" 4 .IX Item "-ff90-intrinsics-delete" .PD 0 ! .IP "\fB\-ff90\-intrinsics\-hide\fR" 4 .IX Item "-ff90-intrinsics-hide" ! .IP "\fB\-ff90\-intrinsics\-disable\fR" 4 .IX Item "-ff90-intrinsics-disable" ! .IP "\fB\-ff90\-intrinsics\-enable\fR" 4 .IX Item "-ff90-intrinsics-enable" .PD Specify status of F90\-specific intrinsics. ! \&\fB\-ff90\-intrinsics\-enable\fR is the default. ! .IP "\fB\-fgnu\-intrinsics\-delete\fR" 4 .IX Item "-fgnu-intrinsics-delete" .PD 0 ! .IP "\fB\-fgnu\-intrinsics\-hide\fR" 4 .IX Item "-fgnu-intrinsics-hide" ! .IP "\fB\-fgnu\-intrinsics\-disable\fR" 4 .IX Item "-fgnu-intrinsics-disable" ! .IP "\fB\-fgnu\-intrinsics\-enable\fR" 4 .IX Item "-fgnu-intrinsics-enable" .PD Specify status of Digital's COMPLEX-related intrinsics. ! \&\fB\-fgnu\-intrinsics\-enable\fR is the default. ! .IP "\fB\-fmil\-intrinsics\-delete\fR" 4 .IX Item "-fmil-intrinsics-delete" .PD 0 ! .IP "\fB\-fmil\-intrinsics\-hide\fR" 4 .IX Item "-fmil-intrinsics-hide" ! .IP "\fB\-fmil\-intrinsics\-disable\fR" 4 .IX Item "-fmil-intrinsics-disable" ! .IP "\fB\-fmil\-intrinsics\-enable\fR" 4 .IX Item "-fmil-intrinsics-enable" .PD ! Specify status of MIL\-STD\-1753\-specific intrinsics. ! \&\fB\-fmil\-intrinsics\-enable\fR is the default. ! .IP "\fB\-funix\-intrinsics\-delete\fR" 4 .IX Item "-funix-intrinsics-delete" .PD 0 ! .IP "\fB\-funix\-intrinsics\-hide\fR" 4 .IX Item "-funix-intrinsics-hide" ! .IP "\fB\-funix\-intrinsics\-disable\fR" 4 .IX Item "-funix-intrinsics-disable" ! .IP "\fB\-funix\-intrinsics\-enable\fR" 4 .IX Item "-funix-intrinsics-enable" .PD Specify status of \s-1UNIX\s0 intrinsics. ! \&\fB\-funix\-intrinsics\-enable\fR is the default. ! .IP "\fB\-fvxt\-intrinsics\-delete\fR" 4 .IX Item "-fvxt-intrinsics-delete" .PD 0 ! .IP "\fB\-fvxt\-intrinsics\-hide\fR" 4 .IX Item "-fvxt-intrinsics-hide" ! .IP "\fB\-fvxt\-intrinsics\-disable\fR" 4 .IX Item "-fvxt-intrinsics-disable" ! .IP "\fB\-fvxt\-intrinsics\-enable\fR" 4 .IX Item "-fvxt-intrinsics-enable" .PD Specify status of \s-1VXT\s0 intrinsics. ! \&\fB\-fvxt\-intrinsics\-enable\fR is the default. ! .IP "\fB\-ffixed\-line\-length\-\fR\fIn\fR" 4 .IX Item "-ffixed-line-length-n" Set column after which characters are ignored in typical fixed-form lines in the source file, and through which spaces are assumed (as *************** if padded to that length) after the ends *** 800,811 **** .Sp Popular values for \fIn\fR include 72 (the standard and the default), 80 (card image), and 132 (corresponds ! to ``extended-source'' options in some popular compilers). \&\fIn\fR may be \fBnone\fR, meaning that the entire line is meaningful and that continued character constants never have implicit spaces appended to them to fill out the line. ! \&\fB\-ffixed-line-length-0\fR means the same thing as ! \&\fB\-ffixed-line-length-none\fR. .Sh "Options to Request or Suppress Warnings" .IX Subsection "Options to Request or Suppress Warnings" Warnings are diagnostic messages that report constructions which --- 793,804 ---- .Sp Popular values for \fIn\fR include 72 (the standard and the default), 80 (card image), and 132 (corresponds ! to ``extended\-source'' options in some popular compilers). \&\fIn\fR may be \fBnone\fR, meaning that the entire line is meaningful and that continued character constants never have implicit spaces appended to them to fill out the line. ! \&\fB\-ffixed\-line\-length\-0\fR means the same thing as ! \&\fB\-ffixed\-line\-length\-none\fR. .Sh "Options to Request or Suppress Warnings" .IX Subsection "Options to Request or Suppress Warnings" Warnings are diagnostic messages that report constructions which *************** might have been an error. *** 815,833 **** You can request many specific warnings with options beginning \fB\-W\fR, for example \fB\-Wimplicit\fR to request warnings on implicit declarations. Each of these specific warning options also has a ! negative form beginning \fB\-Wno-\fR to turn off warnings; ! for example, \fB\-Wno-implicit\fR. This manual lists only one of the two forms, whichever is not the default. .PP These options control the amount and kinds of warnings produced by \s-1GNU\s0 Fortran: ! .Ip "\fB\-fsyntax-only\fR" 4 .IX Item "-fsyntax-only" Check the code for syntax errors, but don't do anything beyond that. ! .Ip "\fB\-pedantic\fR" 4 .IX Item "-pedantic" Issue warnings for uses of extensions to \s-1ANSI\s0 \s-1FORTRAN\s0 77. ! \&\fB\-pedantic\fR also applies to C-language constructs where they occur in \s-1GNU\s0 Fortran source files, such as use of \fB\ee\fR in a character constant within a directive like \fB#include\fR. .Sp --- 808,826 ---- You can request many specific warnings with options beginning \fB\-W\fR, for example \fB\-Wimplicit\fR to request warnings on implicit declarations. Each of these specific warning options also has a ! negative form beginning \fB\-Wno\-\fR to turn off warnings; ! for example, \fB\-Wno\-implicit\fR. This manual lists only one of the two forms, whichever is not the default. .PP These options control the amount and kinds of warnings produced by \s-1GNU\s0 Fortran: ! .IP "\fB\-fsyntax\-only\fR" 4 .IX Item "-fsyntax-only" Check the code for syntax errors, but don't do anything beyond that. ! .IP "\fB\-pedantic\fR" 4 .IX Item "-pedantic" Issue warnings for uses of extensions to \s-1ANSI\s0 \s-1FORTRAN\s0 77. ! \&\fB\-pedantic\fR also applies to C\-language constructs where they occur in \s-1GNU\s0 Fortran source files, such as use of \fB\ee\fR in a character constant within a directive like \fB#include\fR. .Sp *************** conformance. *** 842,858 **** They soon find that it does not do quite what they want\-\-\-it finds some non-ANSI practices, but not all. However, improvements to \fBg77\fR in this area are welcome. ! .Ip "\fB\-pedantic-errors\fR" 4 .IX Item "-pedantic-errors" Like \fB\-pedantic\fR, except that errors are produced rather than warnings. ! .Ip "\fB\-fpedantic\fR" 4 .IX Item "-fpedantic" Like \fB\-pedantic\fR, but applies only to Fortran constructs. ! .Ip "\fB\-w\fR" 4 .IX Item "-w" Inhibit all warning messages. ! .Ip "\fB\-Wno-globals\fR" 4 .IX Item "-Wno-globals" Inhibit warnings about use of a name as both a global name (a subroutine, function, or block data program unit, or a --- 835,851 ---- They soon find that it does not do quite what they want\-\-\-it finds some non-ANSI practices, but not all. However, improvements to \fBg77\fR in this area are welcome. ! .IP "\fB\-pedantic\-errors\fR" 4 .IX Item "-pedantic-errors" Like \fB\-pedantic\fR, except that errors are produced rather than warnings. ! .IP "\fB\-fpedantic\fR" 4 .IX Item "-fpedantic" Like \fB\-pedantic\fR, but applies only to Fortran constructs. ! .IP "\fB\-w\fR" 4 .IX Item "-w" Inhibit all warning messages. ! .IP "\fB\-Wno\-globals\fR" 4 .IX Item "-Wno-globals" Inhibit warnings about use of a name as both a global name (a subroutine, function, or block data program unit, or a *************** Also inhibit warnings about inconsistent *** 863,869 **** definitions of global procedures (function and subroutines). Such inconsistencies include different numbers of arguments and different types of arguments. ! .Ip "\fB\-Wimplicit\fR" 4 .IX Item "-Wimplicit" Warn whenever a variable, array, or function is implicitly declared. --- 856,862 ---- definitions of global procedures (function and subroutines). Such inconsistencies include different numbers of arguments and different types of arguments. ! .IP "\fB\-Wimplicit\fR" 4 .IX Item "-Wimplicit" Warn whenever a variable, array, or function is implicitly declared. *************** Has an effect similar to using the \f(CW *** 871,880 **** in every program unit. (Some Fortran compilers provide this feature by an option named \fB\-u\fR or \fB/WARNINGS=DECLARATIONS\fR.) ! .Ip "\fB\-Wunused\fR" 4 .IX Item "-Wunused" Warn whenever a variable is unused aside from its declaration. ! .Ip "\fB\-Wuninitialized\fR" 4 .IX Item "-Wuninitialized" Warn whenever an automatic variable is used without first being initialized. .Sp --- 864,873 ---- in every program unit. (Some Fortran compilers provide this feature by an option named \fB\-u\fR or \fB/WARNINGS=DECLARATIONS\fR.) ! .IP "\fB\-Wunused\fR" 4 .IX Item "-Wunused" Warn whenever a variable is unused aside from its declaration. ! .IP "\fB\-Wuninitialized\fR" 4 .IX Item "-Wuninitialized" Warn whenever an automatic variable is used without first being initialized. .Sp *************** this can happen: *** 907,912 **** --- 900,906 ---- \& CALL FOO(I) \& END .Ve + .Sp If the value of \f(CW\*(C`J\*(C'\fR is always 1, 2 or 3, then \f(CW\*(C`I\*(C'\fR is always initialized, but \s-1GNU\s0 Fortran doesn't know this. Here is another common case: *************** another common case: *** 919,926 **** \& IF (FLAG) PRINT *, VALUE \& END .Ve This has no bug because \f(CW\*(C`VALUE\*(C'\fR is used only if it is set. ! .Ip "\fB\-Wall\fR" 4 .IX Item "-Wall" The \fB\-Wunused\fR and \fB\-Wuninitialized\fR options combined. These are all the --- 913,921 ---- \& IF (FLAG) PRINT *, VALUE \& END .Ve + .Sp This has no bug because \f(CW\*(C`VALUE\*(C'\fR is used only if it is set. ! .IP "\fB\-Wall\fR" 4 .IX Item "-Wall" The \fB\-Wunused\fR and \fB\-Wuninitialized\fR options combined. These are all the *************** be added to the list enabled by \fB\-Wal *** 932,947 **** The remaining \fB\-W...\fR options are not implied by \fB\-Wall\fR because they warn about constructions that we consider reasonable to use, on occasion, in clean programs. ! .Ip "\fB\-Wsurprising\fR" 4 .IX Item "-Wsurprising" Warn about ``suspicious'' constructs that are interpreted by the compiler in a way that might well be surprising to someone reading the code. These differences can result in subtle, compiler-dependent ! (even machine-dependent) behavioral differences. The constructs warned about include: .RS 4 ! .Ip "\(bu" 4 Expressions having two arithmetic operators in a row, such as \fBX*\-Y\fR. Such a construct is nonstandard, and can produce --- 927,942 ---- The remaining \fB\-W...\fR options are not implied by \fB\-Wall\fR because they warn about constructions that we consider reasonable to use, on occasion, in clean programs. ! .IP "\fB\-Wsurprising\fR" 4 .IX Item "-Wsurprising" Warn about ``suspicious'' constructs that are interpreted by the compiler in a way that might well be surprising to someone reading the code. These differences can result in subtle, compiler-dependent ! (even machine\-dependent) behavioral differences. The constructs warned about include: .RS 4 ! .IP "*" 4 Expressions having two arithmetic operators in a row, such as \fBX*\-Y\fR. Such a construct is nonstandard, and can produce *************** type promotion. *** 961,967 **** .Sp (The \fB\-fpedantic\fR option also warns about expressions having two arithmetic operators in a row.) ! .Ip "\(bu" 4 Expressions with a unary minus followed by an operand and then a binary operator other than plus or minus. For example, \fB\-2**2\fR produces a warning, because --- 956,962 ---- .Sp (The \fB\-fpedantic\fR option also warns about expressions having two arithmetic operators in a row.) ! .IP "*" 4 Expressions with a unary minus followed by an operand and then a binary operator other than plus or minus. For example, \fB\-2**2\fR produces a warning, because *************** of this warning is to warn about differi *** 987,993 **** and encourage a better style of coding, not to identify only those places where bugs might exist in the user's code. ! .Ip "\(bu" 4 \&\f(CW\*(C`DO\*(C'\fR loops with \f(CW\*(C`DO\*(C'\fR variables that are not of integral type\-\-\-that is, using \f(CW\*(C`REAL\*(C'\fR variables as loop control variables. --- 982,988 ---- and encourage a better style of coding, not to identify only those places where bugs might exist in the user's code. ! .IP "*" 4 \&\f(CW\*(C`DO\*(C'\fR loops with \f(CW\*(C`DO\*(C'\fR variables that are not of integral type\-\-\-that is, using \f(CW\*(C`REAL\*(C'\fR variables as loop control variables. *************** are pronounced for non-integral loop con *** 1000,1009 **** .RE .RS 4 .RE ! .Ip "\fB\-Werror\fR" 4 .IX Item "-Werror" Make all warnings into errors. ! .Ip "\fB\-W\fR" 4 .IX Item "-W" Turns on ``extra warnings'' and, if optimization is specified via \fB\-O\fR, the \fB\-Wuninitialized\fR option. --- 995,1004 ---- .RE .RS 4 .RE ! .IP "\fB\-Werror\fR" 4 .IX Item "-Werror" Make all warnings into errors. ! .IP "\fB\-W\fR" 4 .IX Item "-W" Turns on ``extra warnings'' and, if optimization is specified via \fB\-O\fR, the \fB\-Wuninitialized\fR option. *************** via \fB\-O\fR, the \fB\-Wuninitialized\f *** 1011,1020 **** .Sp ``Extra warnings'' are issued for: .RS 4 ! .Ip "\(bu" 4 Unused parameters to a procedure (when \fB\-Wunused\fR also is specified). ! .Ip "\(bu" 4 Overflows involving floating-point constants (not available for certain configurations). .RE --- 1006,1015 ---- .Sp ``Extra warnings'' are issued for: .RS 4 ! .IP "*" 4 Unused parameters to a procedure (when \fB\-Wunused\fR also is specified). ! .IP "*" 4 Overflows involving floating-point constants (not available for certain configurations). .RE *************** for certain configurations). *** 1022,1053 **** .RE .PP Some of these have no effect when compiling programs written in Fortran: ! .Ip "\fB\-Wcomment\fR" 4 .IX Item "-Wcomment" .PD 0 ! .Ip "\fB\-Wformat\fR" 4 .IX Item "-Wformat" ! .Ip "\fB\-Wparentheses\fR" 4 .IX Item "-Wparentheses" ! .Ip "\fB\-Wswitch\fR" 4 .IX Item "-Wswitch" ! .Ip "\fB\-Wswitch-default\fR" 4 .IX Item "-Wswitch-default" ! .Ip "\fB\-Wswitch-enum\fR" 4 .IX Item "-Wswitch-enum" ! .Ip "\fB\-Wtraditional\fR" 4 .IX Item "-Wtraditional" ! .Ip "\fB\-Wshadow\fR" 4 .IX Item "-Wshadow" ! .Ip "\fB\-Wid-clash-\fR\fIlen\fR" 4 .IX Item "-Wid-clash-len" ! .Ip "\fB\-Wlarger-than-\fR\fIlen\fR" 4 .IX Item "-Wlarger-than-len" ! .Ip "\fB\-Wconversion\fR" 4 .IX Item "-Wconversion" ! .Ip "\fB\-Waggregate-return\fR" 4 .IX Item "-Waggregate-return" ! .Ip "\fB\-Wredundant-decls\fR" 4 .IX Item "-Wredundant-decls" .PD These options all could have some relevant meaning for --- 1017,1048 ---- .RE .PP Some of these have no effect when compiling programs written in Fortran: ! .IP "\fB\-Wcomment\fR" 4 .IX Item "-Wcomment" .PD 0 ! .IP "\fB\-Wformat\fR" 4 .IX Item "-Wformat" ! .IP "\fB\-Wparentheses\fR" 4 .IX Item "-Wparentheses" ! .IP "\fB\-Wswitch\fR" 4 .IX Item "-Wswitch" ! .IP "\fB\-Wswitch\-default\fR" 4 .IX Item "-Wswitch-default" ! .IP "\fB\-Wswitch\-enum\fR" 4 .IX Item "-Wswitch-enum" ! .IP "\fB\-Wtraditional\fR" 4 .IX Item "-Wtraditional" ! .IP "\fB\-Wshadow\fR" 4 .IX Item "-Wshadow" ! .IP "\fB\-Wid\-clash\-\fR\fIlen\fR" 4 .IX Item "-Wid-clash-len" ! .IP "\fB\-Wlarger\-than\-\fR\fIlen\fR" 4 .IX Item "-Wlarger-than-len" ! .IP "\fB\-Wconversion\fR" 4 .IX Item "-Wconversion" ! .IP "\fB\-Waggregate\-return\fR" 4 .IX Item "-Waggregate-return" ! .IP "\fB\-Wredundant\-decls\fR" 4 .IX Item "-Wredundant-decls" .PD These options all could have some relevant meaning for *************** These options all could have some releva *** 1056,1062 **** .IX Subsection "Options for Debugging Your Program or GNU Fortran" \&\s-1GNU\s0 Fortran has various special options that are used for debugging either your program or \fBg77\fR ! .Ip "\fB\-g\fR" 4 .IX Item "-g" Produce debugging information in the operating system's native format (stabs, \s-1COFF\s0, \s-1XCOFF\s0, or \s-1DWARF\s0). \s-1GDB\s0 can work with this debugging --- 1051,1057 ---- .IX Subsection "Options for Debugging Your Program or GNU Fortran" \&\s-1GNU\s0 Fortran has various special options that are used for debugging either your program or \fBg77\fR ! .IP "\fB\-g\fR" 4 .IX Item "-g" Produce debugging information in the operating system's native format (stabs, \s-1COFF\s0, \s-1XCOFF\s0, or \s-1DWARF\s0). \s-1GDB\s0 can work with this debugging *************** A sample debugging session looks like th *** 1090,1095 **** --- 1085,1091 ---- \& $2 = 4 \& ... .Ve + .Sp One could also add the setting of the breakpoint and the first run command to the file \fI.gdbinit\fR in the current directory, to simplify the debugging session. *************** must use \fB\-O\fR or \fB\-O2\fR to get *** 1104,1110 **** .PP The following flags have particular applicability when compiling Fortran programs: ! .Ip "\fB\-malign-double\fR" 4 .IX Item "-malign-double" (Intel x86 architecture only.) .Sp --- 1100,1106 ---- .PP The following flags have particular applicability when compiling Fortran programs: ! .IP "\fB\-malign\-double\fR" 4 .IX Item "-malign-double" (Intel x86 architecture only.) .Sp *************** and data sets. *** 1126,1141 **** this option does not apply, generally speaking, to Fortran code compiled by \fBg77\fR .Sp ! \&\fIAlso also note:\fR The negative form of \fB\-malign-double\fR ! is \fB\-mno-align-double\fR, not \fB\-benign-double\fR. ! .Ip "\fB\-ffloat-store\fR" 4 .IX Item "-ffloat-store" Might help a Fortran program that depends on exact \s-1IEEE\s0 conformance on some machines, but might slow down a program that doesn't. .Sp This option is effective when the floating-point unit is set to work in \&\s-1IEEE\s0 854 `extended precision'\-\-\-as it typically is on x86 and m68k \s-1GNU\s0 ! systems\-\-\-rather than \s-1IEEE\s0 754 double precision. \fB\-ffloat-store\fR tries to remove the extra precision by spilling data from floating-point registers into memory and this typically involves a big performance hit. However, it doesn't affect intermediate results, so that it is --- 1122,1137 ---- this option does not apply, generally speaking, to Fortran code compiled by \fBg77\fR .Sp ! \&\fIAlso also note:\fR The negative form of \fB\-malign\-double\fR ! is \fB\-mno\-align\-double\fR, not \fB\-benign\-double\fR. ! .IP "\fB\-ffloat\-store\fR" 4 .IX Item "-ffloat-store" Might help a Fortran program that depends on exact \s-1IEEE\s0 conformance on some machines, but might slow down a program that doesn't. .Sp This option is effective when the floating-point unit is set to work in \&\s-1IEEE\s0 854 `extended precision'\-\-\-as it typically is on x86 and m68k \s-1GNU\s0 ! systems\-\-\-rather than \s-1IEEE\s0 754 double precision. \fB\-ffloat\-store\fR tries to remove the extra precision by spilling data from floating-point registers into memory and this typically involves a big performance hit. However, it doesn't affect intermediate results, so that it is *************** only partially effective. `Excess preci *** 1145,1181 **** \& a = b + c \& d = a * e .Ve but not in code like: .Sp .Vb 1 \& d = (b + c) * e .Ve For another, potentially better, way of controlling the precision, ! see \f(CW@ref\fR{Floating-point precision}. ! .Ip "\fB\-fforce-mem\fR" 4 .IX Item "-fforce-mem" .PD 0 ! .Ip "\fB\-fforce-addr\fR" 4 .IX Item "-fforce-addr" .PD Might improve optimization of loops. ! .Ip "\fB\-fno-inline\fR" 4 .IX Item "-fno-inline" Don't compile statement functions inline. Might reduce the size of a program unit\-\-\-which might be at expense of some speed (though it should compile faster). Note that if you are not optimizing, no functions can be expanded inline. ! .Ip "\fB\-ffast-math\fR" 4 .IX Item "-ffast-math" Might allow some programs designed to not be too dependent on \s-1IEEE\s0 behavior for floating-point to run faster, or die trying. ! Sets \fB\-funsafe-math-optimizations\fR, \fB\-ffinite-math-only\fR, ! and \fB\-fno-trapping-math\fR. ! .Ip "\fB\-funsafe-math-optimizations\fR" 4 .IX Item "-funsafe-math-optimizations" Allow optimizations that may be give incorrect results for certain \s-1IEEE\s0 inputs. ! .Ip "\fB\-ffinite-math-only\fR" 4 .IX Item "-ffinite-math-only" Allow optimizations for floating-point arithmetic that assume that arguments and results are not NaNs or +\-Infs. --- 1141,1179 ---- \& a = b + c \& d = a * e .Ve + .Sp but not in code like: .Sp .Vb 1 \& d = (b + c) * e .Ve + .Sp For another, potentially better, way of controlling the precision, ! see \fBFloating-point precision\fR. ! .IP "\fB\-fforce\-mem\fR" 4 .IX Item "-fforce-mem" .PD 0 ! .IP "\fB\-fforce\-addr\fR" 4 .IX Item "-fforce-addr" .PD Might improve optimization of loops. ! .IP "\fB\-fno\-inline\fR" 4 .IX Item "-fno-inline" Don't compile statement functions inline. Might reduce the size of a program unit\-\-\-which might be at expense of some speed (though it should compile faster). Note that if you are not optimizing, no functions can be expanded inline. ! .IP "\fB\-ffast\-math\fR" 4 .IX Item "-ffast-math" Might allow some programs designed to not be too dependent on \s-1IEEE\s0 behavior for floating-point to run faster, or die trying. ! Sets \fB\-funsafe\-math\-optimizations\fR, \fB\-ffinite\-math\-only\fR, ! and \fB\-fno\-trapping\-math\fR. ! .IP "\fB\-funsafe\-math\-optimizations\fR" 4 .IX Item "-funsafe-math-optimizations" Allow optimizations that may be give incorrect results for certain \s-1IEEE\s0 inputs. ! .IP "\fB\-ffinite\-math\-only\fR" 4 .IX Item "-ffinite-math-only" Allow optimizations for floating-point arithmetic that assume that arguments and results are not NaNs or +\-Infs. *************** This option should never be turned on by *** 1184,1215 **** it can result in incorrect output for programs which depend on an exact implementation of \s-1IEEE\s0 or \s-1ISO\s0 rules/specifications. .Sp ! The default is \fB\-fno-finite-math-only\fR. ! .Ip "\fB\-fno-trapping-math\fR" 4 .IX Item "-fno-trapping-math" Allow the compiler to assume that floating-point arithmetic will not generate traps on any inputs. This is useful, for ! example, when running a program using \s-1IEEE\s0 \*(L"non-stop\*(R" floating-point arithmetic. ! .Ip "\fB\-fstrength-reduce\fR" 4 .IX Item "-fstrength-reduce" Might make some loops run faster. ! .Ip "\fB\-frerun-cse-after-loop\fR" 4 .IX Item "-frerun-cse-after-loop" .PD 0 ! .Ip "\fB\-fexpensive-optimizations\fR" 4 .IX Item "-fexpensive-optimizations" ! .Ip "\fB\-fdelayed-branch\fR" 4 .IX Item "-fdelayed-branch" ! .Ip "\fB\-fschedule-insns\fR" 4 .IX Item "-fschedule-insns" ! .Ip "\fB\-fschedule-insns2\fR" 4 .IX Item "-fschedule-insns2" ! .Ip "\fB\-fcaller-saves\fR" 4 .IX Item "-fcaller-saves" .PD Might improve performance on some code. ! .Ip "\fB\-funroll-loops\fR" 4 .IX Item "-funroll-loops" Typically improves performance on code using iterative \f(CW\*(C`DO\*(C'\fR loops by unrolling them and is probably generally appropriate for Fortran, though --- 1182,1213 ---- it can result in incorrect output for programs which depend on an exact implementation of \s-1IEEE\s0 or \s-1ISO\s0 rules/specifications. .Sp ! The default is \fB\-fno\-finite\-math\-only\fR. ! .IP "\fB\-fno\-trapping\-math\fR" 4 .IX Item "-fno-trapping-math" Allow the compiler to assume that floating-point arithmetic will not generate traps on any inputs. This is useful, for ! example, when running a program using \s-1IEEE\s0 \*(L"non\-stop\*(R" floating-point arithmetic. ! .IP "\fB\-fstrength\-reduce\fR" 4 .IX Item "-fstrength-reduce" Might make some loops run faster. ! .IP "\fB\-frerun\-cse\-after\-loop\fR" 4 .IX Item "-frerun-cse-after-loop" .PD 0 ! .IP "\fB\-fexpensive\-optimizations\fR" 4 .IX Item "-fexpensive-optimizations" ! .IP "\fB\-fdelayed\-branch\fR" 4 .IX Item "-fdelayed-branch" ! .IP "\fB\-fschedule\-insns\fR" 4 .IX Item "-fschedule-insns" ! .IP "\fB\-fschedule\-insns2\fR" 4 .IX Item "-fschedule-insns2" ! .IP "\fB\-fcaller\-saves\fR" 4 .IX Item "-fcaller-saves" .PD Might improve performance on some code. ! .IP "\fB\-funroll\-loops\fR" 4 .IX Item "-funroll-loops" Typically improves performance on code using iterative \f(CW\*(C`DO\*(C'\fR loops by unrolling them and is probably generally appropriate for Fortran, though *************** benefit from loop optimizations, includi *** 1222,1250 **** to\-\-\-unrolling. Loops written with \f(CW\*(C`IF\*(C'\fR and \f(CW\*(C`GOTO\*(C'\fR are not currently recognized as such. This option unrolls only iterative \&\f(CW\*(C`DO\*(C'\fR loops, not \f(CW\*(C`DO WHILE\*(C'\fR loops. ! .Ip "\fB\-funroll-all-loops\fR" 4 .IX Item "-funroll-all-loops" Probably improves performance on code using \f(CW\*(C`DO WHILE\*(C'\fR loops by unrolling them in addition to iterative \f(CW\*(C`DO\*(C'\fR loops. In the absence ! of \f(CW\*(C`DO WHILE\*(C'\fR, this option is equivalent to \fB\-funroll-loops\fR but possibly slower. ! .Ip "\fB\-fno-move-all-movables\fR" 4 .IX Item "-fno-move-all-movables" .PD 0 ! .Ip "\fB\-fno-reduce-all-givs\fR" 4 .IX Item "-fno-reduce-all-givs" ! .Ip "\fB\-fno-rerun-loop-opt\fR" 4 .IX Item "-fno-rerun-loop-opt" .PD In general, the optimizations enabled with these options will lead to faster code being generated by \s-1GNU\s0 Fortran; hence they are enabled by default when issuing the \fBg77\fR command. .Sp ! \&\fB\-fmove-all-movables\fR and \fB\-freduce-all-givs\fR will enable loop optimization to move all loop-invariant index computations in nested loops over multi-rank array dummy arguments out of these loops. .Sp ! \&\fB\-frerun-loop-opt\fR will move offset calculations resulting from the fact that Fortran arrays by default have a lower bound of 1 out of the loops. .Sp --- 1220,1248 ---- to\-\-\-unrolling. Loops written with \f(CW\*(C`IF\*(C'\fR and \f(CW\*(C`GOTO\*(C'\fR are not currently recognized as such. This option unrolls only iterative \&\f(CW\*(C`DO\*(C'\fR loops, not \f(CW\*(C`DO WHILE\*(C'\fR loops. ! .IP "\fB\-funroll\-all\-loops\fR" 4 .IX Item "-funroll-all-loops" Probably improves performance on code using \f(CW\*(C`DO WHILE\*(C'\fR loops by unrolling them in addition to iterative \f(CW\*(C`DO\*(C'\fR loops. In the absence ! of \f(CW\*(C`DO WHILE\*(C'\fR, this option is equivalent to \fB\-funroll\-loops\fR but possibly slower. ! .IP "\fB\-fno\-move\-all\-movables\fR" 4 .IX Item "-fno-move-all-movables" .PD 0 ! .IP "\fB\-fno\-reduce\-all\-givs\fR" 4 .IX Item "-fno-reduce-all-givs" ! .IP "\fB\-fno\-rerun\-loop\-opt\fR" 4 .IX Item "-fno-rerun-loop-opt" .PD In general, the optimizations enabled with these options will lead to faster code being generated by \s-1GNU\s0 Fortran; hence they are enabled by default when issuing the \fBg77\fR command. .Sp ! \&\fB\-fmove\-all\-movables\fR and \fB\-freduce\-all\-givs\fR will enable loop optimization to move all loop-invariant index computations in nested loops over multi-rank array dummy arguments out of these loops. .Sp ! \&\fB\-frerun\-loop\-opt\fR will move offset calculations resulting from the fact that Fortran arrays by default have a lower bound of 1 out of the loops. .Sp *************** for files specified via the \f(CW\*(C`IN *** 1283,1292 **** although files included by that directive are not, themselves, preprocessed. These options are: ! .Ip "\fB\-I-\fR" 4 .IX Item "-I-" .PD 0 ! .Ip "\fB\-I\fR\fIdir\fR" 4 .IX Item "-Idir" .PD These affect interpretation of the \f(CW\*(C`INCLUDE\*(C'\fR directive --- 1281,1290 ---- although files included by that directive are not, themselves, preprocessed. These options are: ! .IP "\fB\-I\-\fR" 4 .IX Item "-I-" .PD 0 ! .IP "\fB\-I\fR\fIdir\fR" 4 .IX Item "-Idir" .PD These affect interpretation of the \f(CW\*(C`INCLUDE\*(C'\fR directive *************** These machine-independent options contro *** 1308,1325 **** used in code generation. .PP Most of them have both positive and negative forms; the negative form ! of \fB\-ffoo\fR would be \fB\-fno-foo\fR. In the table below, only one of the forms is listed\-\-\-the one which is not the default. You ! can figure out the other form by either removing \fBno-\fR or adding it. ! .Ip "\fB\-fno-automatic\fR" 4 .IX Item "-fno-automatic" Treat each program unit as if the \f(CW\*(C`SAVE\*(C'\fR statement was specified for every local variable and array referenced in it. Does not affect common blocks. (Some Fortran compilers provide this option under the name \fB\-static\fR.) ! .Ip "\fB\-finit-local-zero\fR" 4 .IX Item "-finit-local-zero" Specify that variables and arrays that are local to a program unit (not in a common block and not passed as an argument) are to be initialized --- 1306,1323 ---- used in code generation. .PP Most of them have both positive and negative forms; the negative form ! of \fB\-ffoo\fR would be \fB\-fno\-foo\fR. In the table below, only one of the forms is listed\-\-\-the one which is not the default. You ! can figure out the other form by either removing \fBno\-\fR or adding it. ! .IP "\fB\-fno\-automatic\fR" 4 .IX Item "-fno-automatic" Treat each program unit as if the \f(CW\*(C`SAVE\*(C'\fR statement was specified for every local variable and array referenced in it. Does not affect common blocks. (Some Fortran compilers provide this option under the name \fB\-static\fR.) ! .IP "\fB\-finit\-local\-zero\fR" 4 .IX Item "-finit-local-zero" Specify that variables and arrays that are local to a program unit (not in a common block and not passed as an argument) are to be initialized *************** to binary zeros. *** 1327,1334 **** .Sp Since there is a run-time penalty for initialization of variables that are not given the \f(CW\*(C`SAVE\*(C'\fR attribute, it might be a ! good idea to also use \fB\-fno-automatic\fR with \fB\-finit-local-zero\fR. ! .Ip "\fB\-fno-f2c\fR" 4 .IX Item "-fno-f2c" Do not generate code designed to be compatible with code generated by \fBf2c\fR use the \s-1GNU\s0 calling conventions instead. --- 1325,1332 ---- .Sp Since there is a run-time penalty for initialization of variables that are not given the \f(CW\*(C`SAVE\*(C'\fR attribute, it might be a ! good idea to also use \fB\-fno\-automatic\fR with \fB\-finit\-local\-zero\fR. ! .IP "\fB\-fno\-f2c\fR" 4 .IX Item "-fno-f2c" Do not generate code designed to be compatible with code generated by \fBf2c\fR use the \s-1GNU\s0 calling conventions instead. *************** and functions that return type \f(CW\*(C *** 1339,1345 **** values via an extra argument in the calling sequence that points to where to store the return value. Under the \s-1GNU\s0 calling conventions, such functions simply return ! their results as they would in \s-1GNU\s0 C\-\--\f(CW\*(C`REAL(KIND=1)\*(C'\fR functions return the C type \f(CW\*(C`float\*(C'\fR, and \f(CW\*(C`COMPLEX\*(C'\fR functions return the \s-1GNU\s0 C type \f(CW\*(C`complex\*(C'\fR (or its \f(CW\*(C`struct\*(C'\fR equivalent). --- 1337,1343 ---- values via an extra argument in the calling sequence that points to where to store the return value. Under the \s-1GNU\s0 calling conventions, such functions simply return ! their results as they would in \s-1GNU\s0 C\-\-\-\f(CW\*(C`REAL(KIND=1)\*(C'\fR functions return the C type \f(CW\*(C`float\*(C'\fR, and \f(CW\*(C`COMPLEX\*(C'\fR functions return the \s-1GNU\s0 C type \f(CW\*(C`complex\*(C'\fR (or its \f(CW\*(C`struct\*(C'\fR equivalent). *************** This does not affect the generation of c *** 1350,1385 **** However, because the \f(CW\*(C`libg2c\*(C'\fR library uses \fBf2c\fR calling conventions, \fBg77\fR rejects attempts to pass intrinsics implemented by routines in this library as actual ! arguments when \fB\-fno-f2c\fR is used, to avoid bugs when they are actually called by code expecting the \s-1GNU\s0 calling conventions to work. .Sp ! For example, \fB\s-1INTRINSIC\s0 \s-1ABS\s0;CALL FOO(\s-1ABS\s0)\fR is ! rejected when \fB\-fno-f2c\fR is in force. (Future versions of the \fBg77\fR run-time library might offer routines that provide GNU-callable versions of the routines that implement the \fBf2c\fR intrinsics that may be passed as actual arguments, so that ! valid programs need not be rejected when \fB\-fno-f2c\fR is used.) .Sp ! \&\fBCaution:\fR If \fB\-fno-f2c\fR is used when compiling any source file used in a program, it must be used when compiling \&\fIall\fR Fortran source files used in that program. ! .Ip "\fB\-ff2c-library\fR" 4 .IX Item "-ff2c-library" Specify that use of \f(CW\*(C`libg2c\*(C'\fR (or the original \f(CW\*(C`libf2c\*(C'\fR) is required. This is the default for the current version of \fBg77\fR .Sp Currently it is not ! valid to specify \fB\-fno-f2c-library\fR. This option is provided so users can specify it in shell scripts that build programs and libraries that require the \&\f(CW\*(C`libf2c\*(C'\fR library, even when being compiled by future versions of \fBg77\fR that might otherwise default to generating code for an incompatible library. ! .Ip "\fB\-fno-underscoring\fR" 4 .IX Item "-fno-underscoring" Do not transform names of entities specified in the Fortran source file by appending underscores to them. --- 1348,1383 ---- However, because the \f(CW\*(C`libg2c\*(C'\fR library uses \fBf2c\fR calling conventions, \fBg77\fR rejects attempts to pass intrinsics implemented by routines in this library as actual ! arguments when \fB\-fno\-f2c\fR is used, to avoid bugs when they are actually called by code expecting the \s-1GNU\s0 calling conventions to work. .Sp ! For example, \fB\s-1INTRINSIC\s0 \s-1ABS\s0;CALL \s-1FOO\s0(\s-1ABS\s0)\fR is ! rejected when \fB\-fno\-f2c\fR is in force. (Future versions of the \fBg77\fR run-time library might offer routines that provide GNU-callable versions of the routines that implement the \fBf2c\fR intrinsics that may be passed as actual arguments, so that ! valid programs need not be rejected when \fB\-fno\-f2c\fR is used.) .Sp ! \&\fBCaution:\fR If \fB\-fno\-f2c\fR is used when compiling any source file used in a program, it must be used when compiling \&\fIall\fR Fortran source files used in that program. ! .IP "\fB\-ff2c\-library\fR" 4 .IX Item "-ff2c-library" Specify that use of \f(CW\*(C`libg2c\*(C'\fR (or the original \f(CW\*(C`libf2c\*(C'\fR) is required. This is the default for the current version of \fBg77\fR .Sp Currently it is not ! valid to specify \fB\-fno\-f2c\-library\fR. This option is provided so users can specify it in shell scripts that build programs and libraries that require the \&\f(CW\*(C`libf2c\*(C'\fR library, even when being compiled by future versions of \fBg77\fR that might otherwise default to generating code for an incompatible library. ! .IP "\fB\-fno\-underscoring\fR" 4 .IX Item "-fno-underscoring" Do not transform names of entities specified in the Fortran source file by appending underscores to them. *************** With \fB\-funderscoring\fR in effect, \f *** 1388,1424 **** to names with underscores and one underscore to external names with no underscores. (\fBg77\fR also appends two underscores to internal names with underscores to avoid naming collisions with external names. ! The \fB\-fno-second-underscore\fR option disables appending of the second underscore in all cases.) .Sp This is done to ensure compatibility with code produced by many \&\s-1UNIX\s0 Fortran compilers, including \fBf2c\fR which perform the same transformations. .Sp ! Use of \fB\-fno-underscoring\fR is not recommended unless you are experimenting with issues such as integration of (\s-1GNU\s0) Fortran into ! existing system environments (vis-a-vis existing libraries, tools, and so on). .Sp For example, with \fB\-funderscoring\fR, and assuming other defaults like ! \&\fB\-fcase-lower\fR and that \fB\f(BIj()\fB\fR and \fB\f(BImax_count()\fB\fR are external functions while \fBmy_var\fR and \fBlvar\fR are local variables, a statement like .Sp .Vb 1 \& I = J() + MAX_COUNT (MY_VAR, LVAR) .Ve is implemented as something akin to: .Sp .Vb 1 \& i = j_() + max_count__(&my_var__, &lvar); .Ve ! With \fB\-fno-underscoring\fR, the same statement is implemented as: .Sp .Vb 1 \& i = j() + max_count(&my_var, &lvar); .Ve ! Use of \fB\-fno-underscoring\fR allows direct specification of user-defined names while debugging and when interfacing \fBg77\fR code with other languages. .Sp --- 1386,1425 ---- to names with underscores and one underscore to external names with no underscores. (\fBg77\fR also appends two underscores to internal names with underscores to avoid naming collisions with external names. ! The \fB\-fno\-second\-underscore\fR option disables appending of the second underscore in all cases.) .Sp This is done to ensure compatibility with code produced by many \&\s-1UNIX\s0 Fortran compilers, including \fBf2c\fR which perform the same transformations. .Sp ! Use of \fB\-fno\-underscoring\fR is not recommended unless you are experimenting with issues such as integration of (\s-1GNU\s0) Fortran into ! existing system environments (vis\-a\-vis existing libraries, tools, and so on). .Sp For example, with \fB\-funderscoring\fR, and assuming other defaults like ! \&\fB\-fcase\-lower\fR and that \fBj()\fR and \fB\f(BImax_count()\fB\fR are external functions while \fBmy_var\fR and \fBlvar\fR are local variables, a statement like .Sp .Vb 1 \& I = J() + MAX_COUNT (MY_VAR, LVAR) .Ve + .Sp is implemented as something akin to: .Sp .Vb 1 \& i = j_() + max_count__(&my_var__, &lvar); .Ve ! .Sp ! With \fB\-fno\-underscoring\fR, the same statement is implemented as: .Sp .Vb 1 \& i = j() + max_count(&my_var, &lvar); .Ve ! .Sp ! Use of \fB\-fno\-underscoring\fR allows direct specification of user-defined names while debugging and when interfacing \fBg77\fR code with other languages. .Sp *************** both compilers to agree on issues other *** 1432,1438 **** significant effort, and, unlike naming disagreements, linkers normally cannot detect disagreements in these other areas. .Sp ! Also, note that with \fB\-fno-underscoring\fR, the lack of appended underscores introduces the very real possibility that a user-defined external name will conflict with a name in a system library, which could make finding unresolved-reference bugs quite difficult in some --- 1433,1439 ---- significant effort, and, unlike naming disagreements, linkers normally cannot detect disagreements in these other areas. .Sp ! Also, note that with \fB\-fno\-underscoring\fR, the lack of appended underscores introduces the very real possibility that a user-defined external name will conflict with a name in a system library, which could make finding unresolved-reference bugs quite difficult in some *************** issues so that debugging always involves *** 1444,1464 **** in the source, even if the names as seen by the linker are mangled to prevent accidental linking between procedures with incompatible interfaces. ! .Ip "\fB\-fno-second-underscore\fR" 4 .IX Item "-fno-second-underscore" Do not append a second underscore to names of entities specified in the Fortran source file. .Sp ! This option has no effect if \fB\-fno-underscoring\fR is in effect. .Sp Otherwise, with this option, an external name such as \fB\s-1MAX_COUNT\s0\fR is implemented as a reference to the link-time external symbol \&\fBmax_count_\fR, instead of \fBmax_count_\|_\fR. ! .Ip "\fB\-fno-ident\fR" 4 .IX Item "-fno-ident" Ignore the \fB#ident\fR directive. ! .Ip "\fB\-fzeros\fR" 4 .IX Item "-fzeros" Treat initial values of zero as if they were any other value. .Sp --- 1445,1465 ---- in the source, even if the names as seen by the linker are mangled to prevent accidental linking between procedures with incompatible interfaces. ! .IP "\fB\-fno\-second\-underscore\fR" 4 .IX Item "-fno-second-underscore" Do not append a second underscore to names of entities specified in the Fortran source file. .Sp ! This option has no effect if \fB\-fno\-underscoring\fR is in effect. .Sp Otherwise, with this option, an external name such as \fB\s-1MAX_COUNT\s0\fR is implemented as a reference to the link-time external symbol \&\fBmax_count_\fR, instead of \fBmax_count_\|_\fR. ! .IP "\fB\-fno\-ident\fR" 4 .IX Item "-fno-ident" Ignore the \fB#ident\fR directive. ! .IP "\fB\-fzeros\fR" 4 .IX Item "-fzeros" Treat initial values of zero as if they were any other value. .Sp *************** all initializations, zero or otherwise. *** 1480,1486 **** differently. The interpretation changes will affect only non-standard programs; standard-conforming programs should not be affected. ! .Ip "\fB\-femulate-complex\fR" 4 .IX Item "-femulate-complex" Implement \f(CW\*(C`COMPLEX\*(C'\fR arithmetic via emulation, instead of using the facilities of --- 1481,1487 ---- differently. The interpretation changes will affect only non-standard programs; standard-conforming programs should not be affected. ! .IP "\fB\-femulate\-complex\fR" 4 .IX Item "-femulate-complex" Implement \f(CW\*(C`COMPLEX\*(C'\fR arithmetic via emulation, instead of using the facilities of *************** the \fBgcc\fR back end that provide dire *** 1491,1497 **** for \f(CW\*(C`complex\*(C'\fR arithmetic, due primarily to the support not being completed as of version 2.8.1 and \f(CW\*(C`egcs\*(C'\fR 1.1.2.) .Sp ! Use \fB\-femulate-complex\fR if you suspect code-generation bugs, or experience compiler crashes, that might result from \fBg77\fR using the \f(CW\*(C`COMPLEX\*(C'\fR support in the \fBgcc\fR back end. --- 1492,1498 ---- for \f(CW\*(C`complex\*(C'\fR arithmetic, due primarily to the support not being completed as of version 2.8.1 and \f(CW\*(C`egcs\*(C'\fR 1.1.2.) .Sp ! Use \fB\-femulate\-complex\fR if you suspect code-generation bugs, or experience compiler crashes, that might result from \fBg77\fR using the \f(CW\*(C`COMPLEX\*(C'\fR support in the \fBgcc\fR back end. *************** As of \s-1GCC\s0 version 3.0, this optio *** 1510,1523 **** .Sp \&\fICaution:\fR Future versions of \fBg77\fR might ignore both forms of this option. ! .Ip "\fB\-falias-check\fR" 4 .IX Item "-falias-check" .PD 0 ! .Ip "\fB\-fargument-alias\fR" 4 .IX Item "-fargument-alias" ! .Ip "\fB\-fargument-noalias\fR" 4 .IX Item "-fargument-noalias" ! .Ip "\fB\-fno-argument-noalias-global\fR" 4 .IX Item "-fno-argument-noalias-global" .PD \&\fIVersion info:\fR --- 1511,1524 ---- .Sp \&\fICaution:\fR Future versions of \fBg77\fR might ignore both forms of this option. ! .IP "\fB\-falias\-check\fR" 4 .IX Item "-falias-check" .PD 0 ! .IP "\fB\-fargument\-alias\fR" 4 .IX Item "-fargument-alias" ! .IP "\fB\-fargument\-noalias\fR" 4 .IX Item "-fargument-noalias" ! .IP "\fB\-fno\-argument\-noalias\-global\fR" 4 .IX Item "-fno-argument-noalias-global" .PD \&\fIVersion info:\fR *************** arguments (passed as pointers) and \f(CW *** 1531,1544 **** public) storage. .Sp The default for Fortran code, as mandated by the \s-1FORTRAN\s0 77 and ! Fortran 90 standards, is \fB\-fargument-noalias-global\fR. The default for code written in the C language family is ! \&\fB\-fargument-alias\fR. .Sp ! Note that, on some systems, compiling with \fB\-fforce-addr\fR in effect can produce more optimal code when the default aliasing options are in effect (and when optimization is enabled). ! .Ip "\fB\-fno-globals\fR" 4 .IX Item "-fno-globals" Disable diagnostics about inter-procedural analysis problems, such as disagreements about the --- 1532,1545 ---- public) storage. .Sp The default for Fortran code, as mandated by the \s-1FORTRAN\s0 77 and ! Fortran 90 standards, is \fB\-fargument\-noalias\-global\fR. The default for code written in the C language family is ! \&\fB\-fargument\-alias\fR. .Sp ! Note that, on some systems, compiling with \fB\-fforce\-addr\fR in effect can produce more optimal code when the default aliasing options are in effect (and when optimization is enabled). ! .IP "\fB\-fno\-globals\fR" 4 .IX Item "-fno-globals" Disable diagnostics about inter-procedural analysis problems, such as disagreements about the *************** that might cause a compiler crash when a *** 1547,1553 **** to inline a reference to a procedure within a program unit. (The diagnostics themselves are still produced, but ! as warnings, unless \fB\-Wno-globals\fR is specified, in which case no relevant diagnostics are produced.) .Sp Further, this option disables such inlining, to --- 1548,1554 ---- to inline a reference to a procedure within a program unit. (The diagnostics themselves are still produced, but ! as warnings, unless \fB\-Wno\-globals\fR is specified, in which case no relevant diagnostics are produced.) .Sp Further, this option disables such inlining, to *************** and warns about similar disagreements *** 1576,1584 **** that are currently believed to not likely to result in the compiler later crashing or producing incorrect code. ! .Ip "\fB\-fflatten-arrays\fR" 4 .IX Item "-fflatten-arrays" ! Use back end's C-like constructs (pointer plus offset) instead of its \f(CW\*(C`ARRAY_REF\*(C'\fR construct to handle all array references. --- 1577,1585 ---- that are currently believed to not likely to result in the compiler later crashing or producing incorrect code. ! .IP "\fB\-fflatten\-arrays\fR" 4 .IX Item "-fflatten-arrays" ! Use back end's C\-like constructs (pointer plus offset) instead of its \f(CW\*(C`ARRAY_REF\*(C'\fR construct to handle all array references. *************** to handle all array references. *** 1587,1596 **** It is intended for use only by \fBg77\fR developers, to evaluate code-generation issues. It might be removed at any time. ! .Ip "\fB\-fbounds-check\fR" 4 .IX Item "-fbounds-check" .PD 0 ! .Ip "\fB\-ffortran-bounds-check\fR" 4 .IX Item "-ffortran-bounds-check" .PD Enable generation of run-time checks for array subscripts --- 1588,1597 ---- It is intended for use only by \fBg77\fR developers, to evaluate code-generation issues. It might be removed at any time. ! .IP "\fB\-fbounds\-check\fR" 4 .IX Item "-fbounds-check" .PD 0 ! .IP "\fB\-ffortran\-bounds\-check\fR" 4 .IX Item "-ffortran-bounds-check" .PD Enable generation of run-time checks for array subscripts *************** such as references to below the beginnin *** 1610,1616 **** \&\fBg77\fR also generates checks for \f(CW\*(C`CHARACTER\*(C'\fR substring references, something \fBf2c\fR currently does not do. .Sp ! Use the new \fB\-ffortran-bounds-check\fR option to specify bounds-checking for only the Fortran code you are compiling, not necessarily for code written in other languages. .Sp --- 1611,1617 ---- \&\fBg77\fR also generates checks for \f(CW\*(C`CHARACTER\*(C'\fR substring references, something \fBf2c\fR currently does not do. .Sp ! Use the new \fB\-ffortran\-bounds\-check\fR option to specify bounds-checking for only the Fortran code you are compiling, not necessarily for code written in other languages. .Sp *************** Here's a sample diagnostic: *** 1624,1629 **** --- 1625,1631 ---- \& Attempt to access the -6-th element of variable b[subscript-2-of-2]. \& Aborted .Ve + .Sp The above message indicates that the offending source line is line 4 of the file \fIrnge.f\fR, within the program unit (or statement function) named \fBbf\fR. *************** this appearance: *** 1637,1642 **** --- 1639,1645 ---- .Vb 1 \& Attempt to access the 11-th element of variable a[start-substring]. .Ve + .Sp This indicates that the offended \f(CW\*(C`CHARACTER\*(C'\fR variable or array is named \fBa\fR, the offended substring position is the starting (leftmost) position, *************** the above information should provide ade *** 1648,1672 **** to it users.) .PP Some of these do \fInot\fR work when compiling programs written in Fortran: ! .Ip "\fB\-fpcc-struct-return\fR" 4 .IX Item "-fpcc-struct-return" .PD 0 ! .Ip "\fB\-freg-struct-return\fR" 4 .IX Item "-freg-struct-return" .PD You should not use these except strictly the same way as you used them to build the version of \f(CW\*(C`libg2c\*(C'\fR with which you will be linking all code compiled by \fBg77\fR with the same option. ! .Ip "\fB\-fshort-double\fR" 4 .IX Item "-fshort-double" This probably either has no effect on Fortran programs, or makes them act loopy. ! .Ip "\fB\-fno-common\fR" 4 .IX Item "-fno-common" Do not use this when compiling Fortran programs, or there will be Trouble. ! .Ip "\fB\-fpack-struct\fR" 4 .IX Item "-fpack-struct" This probably will break any calls to the \f(CW\*(C`libg2c\*(C'\fR library, at the very least, even if it is built with the same option. --- 1651,1675 ---- to it users.) .PP Some of these do \fInot\fR work when compiling programs written in Fortran: ! .IP "\fB\-fpcc\-struct\-return\fR" 4 .IX Item "-fpcc-struct-return" .PD 0 ! .IP "\fB\-freg\-struct\-return\fR" 4 .IX Item "-freg-struct-return" .PD You should not use these except strictly the same way as you used them to build the version of \f(CW\*(C`libg2c\*(C'\fR with which you will be linking all code compiled by \fBg77\fR with the same option. ! .IP "\fB\-fshort\-double\fR" 4 .IX Item "-fshort-double" This probably either has no effect on Fortran programs, or makes them act loopy. ! .IP "\fB\-fno\-common\fR" 4 .IX Item "-fno-common" Do not use this when compiling Fortran programs, or there will be Trouble. ! .IP "\fB\-fpack\-struct\fR" 4 .IX Item "-fpack-struct" This probably will break any calls to the \f(CW\*(C`libg2c\*(C'\fR library, at the very least, even if it is built with the same option. *************** For instructions on reporting bugs, see *** 1682,1688 **** script to report bugs is recommended. .SH "FOOTNOTES" .IX Header "FOOTNOTES" ! .Ip "1." 4 \&\fIloop discovery\fR refers to the process by which a compiler, or indeed any reader of a program, determines which portions of the program are more likely to be executed --- 1685,1691 ---- script to report bugs is recommended. .SH "FOOTNOTES" .IX Header "FOOTNOTES" ! .IP "1." 4 \&\fIloop discovery\fR refers to the process by which a compiler, or indeed any reader of a program, determines which portions of the program are more likely to be executed *************** constructed out of lower-level construct *** 1697,1703 **** than otherwise. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf-funding\fR\|(7), \&\fIcpp\fR\|(1), \fIgcov\fR\|(1), \fIgcc\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), \fIgdb\fR\|(1), \fIadb\fR\|(1), \fIdbx\fR\|(1), \fIsdb\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIg77\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. --- 1700,1706 ---- than otherwise. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), \&\fIcpp\fR\|(1), \fIgcov\fR\|(1), \fIgcc\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), \fIgdb\fR\|(1), \fIadb\fR\|(1), \fIdbx\fR\|(1), \fIsdb\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIg77\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. *************** included in the \fIgfdl\fR\|(7) man page *** 1722,1727 **** --- 1725,1731 ---- .Vb 1 \& A GNU Manual .Ve + .PP (b) The \s-1FSF\s0's Back-Cover Text is: .PP .Vb 3 diff -Nrc3pad gcc-3.3.4/gcc/f/g77.info gcc-3.3.5/gcc/f/g77.info *** gcc-3.3.4/gcc/f/g77.info 2004-05-31 22:43:09.000000000 +0000 --- gcc-3.3.5/gcc/f/g77.info 2004-09-30 17:38:13.000000000 +0000 *************** *** 1,5 **** ! Ceci est le fichier Info g77.info, produit par Makeinfo version 4.6 à ! partir g77.texi. Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. --- 1,4 ---- ! This is g77.info, produced by makeinfo version 4.5 from g77.texi. Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. *************** START-INFO-DIR-ENTRY *** 26,32 **** * g77: (g77). The GNU Fortran compiler. END-INFO-DIR-ENTRY This file documents the use and the internals of the GNU Fortran ! (`g77') compiler. It corresponds to the GCC-3.3.4 version of `g77'. Published by the Free Software Foundation 59 Temple Place - Suite 330 Boston, MA 02111-1307 USA --- 25,31 ---- * g77: (g77). The GNU Fortran compiler. END-INFO-DIR-ENTRY This file documents the use and the internals of the GNU Fortran ! (`g77') compiler. It corresponds to the GCC-3.3.5 version of `g77'. Published by the Free Software Foundation 59 Temple Place - Suite 330 Boston, MA 02111-1307 USA *************** File: g77.info, Node: Top, Next: Copyi *** 61,69 **** Introduction ************ ! This manual documents how to run, install and port `g77', as well as its new features and incompatibilities, and how to report bugs. It ! corresponds to the GCC-3.3.4 version of `g77'. * Menu: --- 60,68 ---- Introduction ************ ! This manual documents how to run, install and port `g77', as well as its new features and incompatibilities, and how to report bugs. It ! corresponds to the GCC-3.3.5 version of `g77'. * Menu: *************** GNU GENERAL PUBLIC LICENSE *** 117,125 **** Preamble ======== ! The licenses for most software are designed to take away your freedom ! to share and change it. By contrast, the GNU General Public License is ! intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to --- 116,124 ---- Preamble ======== ! The licenses for most software are designed to take away your ! freedom to share and change it. By contrast, the GNU General Public ! License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to *************** modification follow. *** 400,406 **** How to Apply These Terms to Your New Programs ============================================= ! If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. --- 399,405 ---- How to Apply These Terms to Your New Programs ============================================= ! If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. *************** GNU Free Documentation License *** 864,870 **** ADDENDUM: How to use this License for your documents ==================================================== ! To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: --- 863,869 ---- ADDENDUM: How to use this License for your documents ==================================================== ! To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: *************** File: g77.info, Node: Contributors, Ne *** 898,905 **** Contributors to GNU Fortran *************************** ! In addition to James Craig Burley, who wrote the front end, many people ! have helped create and improve GNU Fortran. * The packaging and compiler portions of GNU Fortran are based largely on the GNU CC compiler. *Note Contributors to GCC: --- 897,904 ---- Contributors to GNU Fortran *************************** ! In addition to James Craig Burley, who wrote the front end, many ! people have helped create and improve GNU Fortran. * The packaging and compiler portions of GNU Fortran are based largely on the GNU CC compiler. *Note Contributors to GCC: *************** File: g77.info, Node: Funding, Next: F *** 992,998 **** Funding Free Software ********************* ! If you want to have more free software a few years from now, it makes sense for you to help encourage people to contribute funds for its development. The most effective approach known is to encourage commercial redistributors to donate. --- 991,997 ---- Funding Free Software ********************* ! If you want to have more free software a few years from now, it makes sense for you to help encourage people to contribute funds for its development. The most effective approach known is to encourage commercial redistributors to donate. *************** File: g77.info, Node: Funding GNU Fortr *** 1042,1049 **** Funding GNU Fortran ******************* ! James Craig Burley (), the original author of `g77', ! stopped working on it in September 1999 (He has a web page at `http://world.std.com/%7Eburley/'.) GNU Fortran is currently maintained by Toon Moene --- 1041,1048 ---- Funding GNU Fortran ******************* ! James Craig Burley (), the original author of ! `g77', stopped working on it in September 1999 (He has a web page at `http://world.std.com/%7Eburley/'.) GNU Fortran is currently maintained by Toon Moene *************** File: g77.info, Node: Getting Started, *** 1076,1082 **** Getting Started *************** ! If you don't need help getting started reading the portions of this manual that are most important to you, you should skip this portion of the manual. --- 1075,1081 ---- Getting Started *************** ! If you don't need help getting started reading the portions of this manual that are most important to you, you should skip this portion of the manual. *************** File: g77.info, Node: What is GNU Fortr *** 1129,1136 **** What is GNU Fortran? ******************** ! GNU Fortran, or `g77', is designed initially as a free replacement for, ! or alternative to, the UNIX `f77' command. (Similarly, `gcc' is designed as a replacement for the UNIX `cc' command.) `g77' also is designed to fit in well with the other fine GNU --- 1128,1135 ---- What is GNU Fortran? ******************** ! GNU Fortran, or `g77', is designed initially as a free replacement ! for, or alternative to, the UNIX `f77' command. (Similarly, `gcc' is designed as a replacement for the UNIX `cc' command.) `g77' also is designed to fit in well with the other fine GNU *************** File: g77.info, Node: G77 and GCC, Nex *** 1322,1328 **** Compile Fortran, C, or Other Programs ************************************* ! A GNU Fortran installation includes a modified version of the `gcc' command. In a non-Fortran installation, `gcc' recognizes C, C++, and --- 1321,1327 ---- Compile Fortran, C, or Other Programs ************************************* ! A GNU Fortran installation includes a modified version of the `gcc' command. In a non-Fortran installation, `gcc' recognizes C, C++, and *************** File: g77.info, Node: Invoking G77, Ne *** 1352,1358 **** GNU Fortran Command Options *************************** ! The `g77' command supports all the options supported by the `gcc' command. *Note GCC Command Options: (gcc)Invoking GCC, for information on the non-Fortran-specific aspects of the `gcc' command (and, therefore, the `g77' command). --- 1351,1357 ---- GNU Fortran Command Options *************************** ! The `g77' command supports all the options supported by the `gcc' command. *Note GCC Command Options: (gcc)Invoking GCC, for information on the non-Fortran-specific aspects of the `gcc' command (and, therefore, the `g77' command). *************** File: g77.info, Node: Option Summary, *** 1393,1399 **** Option Summary ============== ! Here is a summary of all the options specific to GNU Fortran, grouped by type. Explanations are in the following sections. _Overall Options_ --- 1392,1398 ---- Option Summary ============== ! Here is a summary of all the options specific to GNU Fortran, grouped by type. Explanations are in the following sections. _Overall Options_ *************** File: g77.info, Node: Overall Options, *** 1502,1508 **** Options Controlling the Kind of Output ====================================== ! Compilation can involve as many as four stages: preprocessing, code generation (often what is really meant by the term "compilation"), assembly, and linking, always in that order. The first three stages apply to an individual source file, and end by producing an object --- 1501,1507 ---- Options Controlling the Kind of Output ====================================== ! Compilation can involve as many as four stages: preprocessing, code generation (often what is really meant by the term "compilation"), assembly, and linking, always in that order. The first three stages apply to an individual source file, and end by producing an object *************** File: g77.info, Node: Shorthand Options *** 1645,1652 **** Shorthand Options ================= ! The following options serve as "shorthand" for other options accepted ! by the compiler: `-fugly' _Note:_ This option is no longer supported. The information, --- 1644,1651 ---- Shorthand Options ================= ! The following options serve as "shorthand" for other options ! accepted by the compiler: `-fugly' _Note:_ This option is no longer supported. The information, *************** File: g77.info, Node: Fortran Dialect O *** 1709,1716 **** Options Controlling Fortran Dialect =================================== ! The following options control the dialect of Fortran that the compiler ! accepts: `-ffree-form' --- 1708,1715 ---- Options Controlling Fortran Dialect =================================== ! The following options control the dialect of Fortran that the ! compiler accepts: `-ffree-form' *************** File: g77.info, Node: Warning Options, *** 2042,2048 **** Options to Request or Suppress Warnings ======================================= ! Warnings are diagnostic messages that report constructions which are not inherently erroneous but which are risky or suggest there might have been an error. --- 2041,2047 ---- Options to Request or Suppress Warnings ======================================= ! Warnings are diagnostic messages that report constructions which are not inherently erroneous but which are risky or suggest there might have been an error. *************** File: g77.info, Node: Debugging Options *** 2275,2281 **** Options for Debugging Your Program or GNU Fortran ================================================= ! GNU Fortran has various special options that are used for debugging either your program or `g77' `-g' --- 2274,2280 ---- Options for Debugging Your Program or GNU Fortran ================================================= ! GNU Fortran has various special options that are used for debugging either your program or `g77' `-g' *************** File: g77.info, Node: Optimize Options, *** 2322,2329 **** Options That Control Optimization ================================= ! Most Fortran users will want to use no optimization when developing and ! testing programs, and use `-O' or `-O2' when compiling programs for late-cycle testing and for production use. However, note that certain diagnostics--such as for uninitialized variables--depend on the flow analysis done by `-O', i.e. you must use `-O' or `-O2' to get such --- 2321,2328 ---- Options That Control Optimization ================================= ! Most Fortran users will want to use no optimization when developing ! and testing programs, and use `-O' or `-O2' when compiling programs for late-cycle testing and for production use. However, note that certain diagnostics--such as for uninitialized variables--depend on the flow analysis done by `-O', i.e. you must use `-O' or `-O2' to get such *************** File: g77.info, Node: Preprocessor Opti *** 2494,2501 **** Options Controlling the Preprocessor ==================================== ! These options control the C preprocessor, which is run on each C source ! file before actual compilation. *Note Options Controlling the Preprocessor: (gcc)Preprocessor Options, for information on C preprocessor options. --- 2493,2500 ---- Options Controlling the Preprocessor ==================================== ! These options control the C preprocessor, which is run on each C ! source file before actual compilation. *Note Options Controlling the Preprocessor: (gcc)Preprocessor Options, for information on C preprocessor options. *************** File: g77.info, Node: Directory Options *** 2521,2527 **** Options for Directory Search ============================ ! These options affect how the `cpp' preprocessor searches for files specified via the `#include' directive. Therefore, when compiling Fortran programs, they are meaningful when the preprocessor is used. --- 2520,2526 ---- Options for Directory Search ============================ ! These options affect how the `cpp' preprocessor searches for files specified via the `#include' directive. Therefore, when compiling Fortran programs, they are meaningful when the preprocessor is used. *************** File: g77.info, Node: Code Gen Options, *** 2552,2558 **** Options for Code Generation Conventions ======================================= ! These machine-independent options control the interface conventions used in code generation. Most of them have both positive and negative forms; the negative form --- 2551,2557 ---- Options for Code Generation Conventions ======================================= ! These machine-independent options control the interface conventions used in code generation. Most of them have both positive and negative forms; the negative form *************** File: g77.info, Node: Environment Varia *** 2892,2900 **** Environment Variables Affecting GNU Fortran =========================================== ! GNU Fortran currently does not make use of any environment variables to ! control its operation above and beyond those that affect the operation ! of `gcc'. *Note Environment Variables Affecting GCC: (gcc)Environment Variables, for information on environment variables. --- 2891,2899 ---- Environment Variables Affecting GNU Fortran =========================================== ! GNU Fortran currently does not make use of any environment variables ! to control its operation above and beyond those that affect the ! operation of `gcc'. *Note Environment Variables Affecting GCC: (gcc)Environment Variables, for information on environment variables. *************** clarify how they differ from other versi *** 2939,2945 **** getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.3.4 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. An online, "live" version of this document (derived directly from --- 2938,2944 ---- getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.3.5 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. An online, "live" version of this document (derived directly from *************** In 0.5.25, `GCC' 2.95 (`EGCS' 1.2) versu *** 3282,3289 **** In 0.5.24 versus 0.5.23: ======================== ! There is no `g77' version 0.5.24 at this time, or planned. 0.5.24 is ! the version number designated for bug fixes and, perhaps, some new features added, to 0.5.23. Version 0.5.23 requires `gcc' 2.8.1, as 0.5.24 was planned to require. --- 3281,3288 ---- In 0.5.24 versus 0.5.23: ======================== ! There is no `g77' version 0.5.24 at this time, or planned. 0.5.24 ! is the version number designated for bug fixes and, perhaps, some new features added, to 0.5.23. Version 0.5.23 requires `gcc' 2.8.1, as 0.5.24 was planned to require. *************** In 0.5.20: *** 4229,4235 **** In previous versions: ===================== ! Information on previous versions is archived in `gcc/gcc/f/news.texi' following the test of the `DOC-OLDNEWS' macro.  --- 4228,4234 ---- In previous versions: ===================== ! Information on previous versions is archived in `gcc/gcc/f/news.texi' following the test of the `DOC-OLDNEWS' macro.  *************** File: g77.info, Node: Changes, Next: L *** 4238,4244 **** User-visible Changes ******************** ! This chapter describes changes to `g77' that are visible to the programmers who actually write and maintain Fortran code they compile with `g77'. Information on changes to installation procedures, changes to the documentation, and bug fixes is not provided here, unless it is --- 4237,4243 ---- User-visible Changes ******************** ! This chapter describes changes to `g77' that are visible to the programmers who actually write and maintain Fortran code they compile with `g77'. Information on changes to installation procedures, changes to the documentation, and bug fixes is not provided here, unless it is *************** clarify how they differ from other versi *** 4256,4262 **** getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.3.4 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. The following information was last updated on 2003-05-18: --- 4255,4261 ---- getting a complete picture of what a particular `egcs' version contains somewhat more difficult. ! For information on bugs in the GCC-3.3.5 version of `g77', see *Note Known Bugs In GNU Fortran: Known Bugs. The following information was last updated on 2003-05-18: *************** In 0.5.25, `GCC' 2.95 (`EGCS' 1.2) versu *** 4508,4515 **** In 0.5.24 versus 0.5.23: ======================== ! There is no `g77' version 0.5.24 at this time, or planned. 0.5.24 is ! the version number designated for bug fixes and, perhaps, some new features added, to 0.5.23. Version 0.5.23 requires `gcc' 2.8.1, as 0.5.24 was planned to require. --- 4507,4514 ---- In 0.5.24 versus 0.5.23: ======================== ! There is no `g77' version 0.5.24 at this time, or planned. 0.5.24 ! is the version number designated for bug fixes and, perhaps, some new features added, to 0.5.23. Version 0.5.23 requires `gcc' 2.8.1, as 0.5.24 was planned to require. *************** In 0.5.20: *** 4947,4953 **** In previous versions: ===================== ! Information on previous versions is archived in `gcc/gcc/f/news.texi' following the test of the `DOC-OLDNEWS' macro.  --- 4946,4952 ---- In previous versions: ===================== ! Information on previous versions is archived in `gcc/gcc/f/news.texi' following the test of the `DOC-OLDNEWS' macro.  *************** File: g77.info, Node: Language, Next: *** 4956,4964 **** The GNU Fortran Language ************************ ! GNU Fortran supports a variety of extensions to, and dialects of, the ! Fortran language. Its primary base is the ANSI FORTRAN 77 standard, ! currently available on the network at `http://www.fortran.com/fortran/F77_std/rjcnf0001.html' or as monolithic text at `http://www.fortran.com/fortran/F77_std/f77_std.html'. It offers some --- 4955,4963 ---- The GNU Fortran Language ************************ ! GNU Fortran supports a variety of extensions to, and dialects of, ! the Fortran language. Its primary base is the ANSI FORTRAN 77 ! standard, currently available on the network at `http://www.fortran.com/fortran/F77_std/rjcnf0001.html' or as monolithic text at `http://www.fortran.com/fortran/F77_std/f77_std.html'. It offers some *************** File: g77.info, Node: Direction of Lang *** 5015,5022 **** Direction of Language Development ================================= ! The purpose of the following description of the GNU Fortran language is ! to promote wide portability of GNU Fortran programs. GNU Fortran is an evolving language, due to the fact that `g77' itself is in beta test. Some current features of the language might --- 5014,5021 ---- Direction of Language Development ================================= ! The purpose of the following description of the GNU Fortran language ! is to promote wide portability of GNU Fortran programs. GNU Fortran is an evolving language, due to the fact that `g77' itself is in beta test. Some current features of the language might *************** File: g77.info, Node: Standard Support, *** 5141,5147 **** ANSI FORTRAN 77 Standard Support ================================ ! GNU Fortran supports ANSI FORTRAN 77 with the following caveats. In summary, the only ANSI FORTRAN 77 features `g77' doesn't support are those that are probably rarely used in actual code, some of which are explicitly disallowed by the Fortran 90 standard. --- 5140,5146 ---- ANSI FORTRAN 77 Standard Support ================================ ! GNU Fortran supports ANSI FORTRAN 77 with the following caveats. In summary, the only ANSI FORTRAN 77 features `g77' doesn't support are those that are probably rarely used in actual code, some of which are explicitly disallowed by the Fortran 90 standard. *************** File: g77.info, Node: No Passing Extern *** 5159,5166 **** No Passing External Assumed-length ---------------------------------- ! `g77' disallows passing of an external procedure as an actual argument ! if the procedure's type is declared `CHARACTER*(*)'. For example: CHARACTER*(*) CFUNC EXTERNAL CFUNC --- 5158,5166 ---- No Passing External Assumed-length ---------------------------------- ! `g77' disallows passing of an external procedure as an actual ! argument if the procedure's type is declared `CHARACTER*(*)'. For ! example: CHARACTER*(*) CFUNC EXTERNAL CFUNC *************** File: g77.info, Node: No Passing Dummy *** 5175,5182 **** No Passing Dummy Assumed-length ------------------------------- ! `g77' disallows passing of a dummy procedure as an actual argument if ! the procedure's type is declared `CHARACTER*(*)'. SUBROUTINE BAR(CFUNC) CHARACTER*(*) CFUNC --- 5175,5182 ---- No Passing Dummy Assumed-length ------------------------------- ! `g77' disallows passing of a dummy procedure as an actual argument ! if the procedure's type is declared `CHARACTER*(*)'. SUBROUTINE BAR(CFUNC) CHARACTER*(*) CFUNC *************** File: g77.info, Node: No Pathological I *** 5192,5200 **** No Pathological Implied-DO -------------------------- ! The `DO' variable for an implied-`DO' construct in a `DATA' statement ! may not be used as the `DO' variable for an outer implied-`DO' ! construct. For example, this fragment is disallowed by `g77': DATA ((A(I, I), I= 1, 10), I= 1, 10) /.../ --- 5192,5201 ---- No Pathological Implied-DO -------------------------- ! The `DO' variable for an implied-`DO' construct in a `DATA' ! statement may not be used as the `DO' variable for an outer ! implied-`DO' construct. For example, this fragment is disallowed by ! `g77': DATA ((A(I, I), I= 1, 10), I= 1, 10) /.../ *************** File: g77.info, Node: No Useless Implie *** 5210,5219 **** No Useless Implied-DO --------------------- ! An array element initializer in an implied-`DO' construct in a `DATA' ! statement must contain at least one reference to the `DO' variables of ! each outer implied-`DO' construct. For example, this fragment is ! disallowed by `g77': DATA (A, I= 1, 1) /1./ --- 5211,5220 ---- No Useless Implied-DO --------------------- ! An array element initializer in an implied-`DO' construct in a ! `DATA' statement must contain at least one reference to the `DO' ! variables of each outer implied-`DO' construct. For example, this ! fragment is disallowed by `g77': DATA (A, I= 1, 1) /1./ *************** File: g77.info, Node: Conformance, Nex *** 5230,5236 **** Conformance =========== ! (The following information augments or overrides the information in Section 1.4 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 1 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 5231,5237 ---- Conformance =========== ! (The following information augments or overrides the information in Section 1.4 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 1 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** File: g77.info, Node: Notation Used, N *** 5282,5288 **** Notation Used in This Chapter ============================= ! (The following information augments or overrides the information in Section 1.5 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 1 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 5283,5289 ---- Notation Used in This Chapter ============================= ! (The following information augments or overrides the information in Section 1.5 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 1 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** File: g77.info, Node: Terms and Concept *** 5376,5382 **** Fortran Terms and Concepts ========================== ! (The following information augments or overrides the information in Chapter 2 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 2 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 5377,5383 ---- Fortran Terms and Concepts ========================== ! (The following information augments or overrides the information in Chapter 2 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 2 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** File: g77.info, Node: Syntactic Items, *** 5393,5399 **** Syntactic Items --------------- ! (Corresponds to Section 2.2 of ANSI X3.9-1978 FORTRAN 77.) In GNU Fortran, a symbolic name is at least one character long, and has no arbitrary upper limit on length. However, names of entities --- 5394,5400 ---- Syntactic Items --------------- ! (Corresponds to Section 2.2 of ANSI X3.9-1978 FORTRAN 77.) In GNU Fortran, a symbolic name is at least one character long, and has no arbitrary upper limit on length. However, names of entities *************** File: g77.info, Node: Statements Commen *** 5411,5417 **** Statements, Comments, and Lines ------------------------------- ! (Corresponds to Section 2.3 of ANSI X3.9-1978 FORTRAN 77.) Use of an exclamation point (`!') to begin a trailing comment (a comment that extends to the end of the same source line) is permitted --- 5412,5418 ---- Statements, Comments, and Lines ------------------------------- ! (Corresponds to Section 2.3 of ANSI X3.9-1978 FORTRAN 77.) Use of an exclamation point (`!') to begin a trailing comment (a comment that extends to the end of the same source line) is permitted *************** File: g77.info, Node: Scope of Names an *** 5460,5466 **** Scope of Symbolic Names and Statement Labels -------------------------------------------- ! (Corresponds to Section 2.9 of ANSI X3.9-1978 FORTRAN 77.) Included in the list of entities that have a scope of a program unit are construct names (a Fortran 90 feature). *Note Construct Names::, --- 5461,5467 ---- Scope of Symbolic Names and Statement Labels -------------------------------------------- ! (Corresponds to Section 2.9 of ANSI X3.9-1978 FORTRAN 77.) Included in the list of entities that have a scope of a program unit are construct names (a Fortran 90 feature). *Note Construct Names::, *************** File: g77.info, Node: Characters Lines *** 5472,5478 **** Characters, Lines, and Execution Sequence ========================================= ! (The following information augments or overrides the information in Chapter 3 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 3 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 5473,5479 ---- Characters, Lines, and Execution Sequence ========================================= ! (The following information augments or overrides the information in Chapter 3 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 3 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** File: g77.info, Node: Character Set, N *** 5494,5500 **** GNU Fortran Character Set ------------------------- ! (Corresponds to Section 3.1 of ANSI X3.9-1978 FORTRAN 77.) Letters include uppercase letters (the twenty-six characters of the English alphabet) and lowercase letters (their lowercase equivalent). --- 5495,5501 ---- GNU Fortran Character Set ------------------------- ! (Corresponds to Section 3.1 of ANSI X3.9-1978 FORTRAN 77.) Letters include uppercase letters (the twenty-six characters of the English alphabet) and lowercase letters (their lowercase equivalent). *************** File: g77.info, Node: Lines, Next: Con *** 5537,5543 **** Lines ----- ! (Corresponds to Section 3.2 of ANSI X3.9-1978 FORTRAN 77.) The way a Fortran compiler views source files depends entirely on the implementation choices made for the compiler, since those choices are --- 5538,5544 ---- Lines ----- ! (Corresponds to Section 3.2 of ANSI X3.9-1978 FORTRAN 77.) The way a Fortran compiler views source files depends entirely on the implementation choices made for the compiler, since those choices are *************** File: g77.info, Node: Continuation Line *** 5597,5603 **** Continuation Line ----------------- ! (Corresponds to Section 3.2.3 of ANSI X3.9-1978 FORTRAN 77.) A continuation line is any line that both --- 5598,5604 ---- Continuation Line ----------------- ! (Corresponds to Section 3.2.3 of ANSI X3.9-1978 FORTRAN 77.) A continuation line is any line that both *************** File: g77.info, Node: Statements, Next *** 5624,5630 **** Statements ---------- ! (Corresponds to Section 3.3 of ANSI X3.9-1978 FORTRAN 77.) Statements may be written using an arbitrary number of continuation lines. --- 5625,5631 ---- Statements ---------- ! (Corresponds to Section 3.3 of ANSI X3.9-1978 FORTRAN 77.) Statements may be written using an arbitrary number of continuation lines. *************** File: g77.info, Node: Statement Labels, *** 5652,5658 **** Statement Labels ---------------- ! (Corresponds to Section 3.4 of ANSI X3.9-1978 FORTRAN 77.) A statement separated from its predecessor via a semicolon may be labeled as follows: --- 5653,5659 ---- Statement Labels ---------------- ! (Corresponds to Section 3.4 of ANSI X3.9-1978 FORTRAN 77.) A statement separated from its predecessor via a semicolon may be labeled as follows: *************** File: g77.info, Node: Order, Next: INC *** 5674,5680 **** Order of Statements and Lines ----------------------------- ! (Corresponds to Section 3.5 of ANSI X3.9-1978 FORTRAN 77.) Generally, `DATA' statements may precede executable statements. However, specification statements pertaining to any entities --- 5675,5681 ---- Order of Statements and Lines ----------------------------- ! (Corresponds to Section 3.5 of ANSI X3.9-1978 FORTRAN 77.) Generally, `DATA' statements may precede executable statements. However, specification statements pertaining to any entities *************** File: g77.info, Node: INCLUDE, Next: C *** 5698,5705 **** Including Source Text --------------------- ! Additional source text may be included in the processing of the source ! file via the `INCLUDE' directive: INCLUDE FILENAME --- 5699,5706 ---- Including Source Text --------------------- ! Additional source text may be included in the processing of the ! source file via the `INCLUDE' directive: INCLUDE FILENAME *************** File: g77.info, Node: Cpp-style directi *** 5767,5775 **** Cpp-style directives -------------------- ! `cpp' output-style `#' directives (*note C Preprocessor Output: (cpp)C ! Preprocessor Output.) are recognized by the compiler even when the ! preprocessor isn't run on the input (as it is when compiling `.F' files). (Note the distinction between these `cpp' `#' _output_ directives and `#line' _input_ directives.) --- 5768,5776 ---- Cpp-style directives -------------------- ! `cpp' output-style `#' directives (*note C Preprocessor Output: ! (cpp)C Preprocessor Output.) are recognized by the compiler even when ! the preprocessor isn't run on the input (as it is when compiling `.F' files). (Note the distinction between these `cpp' `#' _output_ directives and `#line' _input_ directives.) *************** File: g77.info, Node: Data Types and Co *** 5779,5785 **** Data Types and Constants ======================== ! (The following information augments or overrides the information in Chapter 4 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 4 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 5780,5786 ---- Data Types and Constants ======================== ! (The following information augments or overrides the information in Chapter 4 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 4 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** File: g77.info, Node: Types, Next: Con *** 5857,5863 **** Data Types ---------- ! (Corresponds to Section 4.1 of ANSI X3.9-1978 FORTRAN 77.) GNU Fortran supports these types: --- 5858,5864 ---- Data Types ---------- ! (Corresponds to Section 4.1 of ANSI X3.9-1978 FORTRAN 77.) GNU Fortran supports these types: *************** File: g77.info, Node: Double Notation, *** 5899,5906 **** Double Notation ............... ! The GNU Fortran language supports two uses of the keyword `DOUBLE' to ! specify a specific kind of type: * `DOUBLE PRECISION', equivalent to `REAL(KIND=2)' --- 5900,5907 ---- Double Notation ............... ! The GNU Fortran language supports two uses of the keyword `DOUBLE' ! to specify a specific kind of type: * `DOUBLE PRECISION', equivalent to `REAL(KIND=2)' *************** File: g77.info, Node: Star Notation, N *** 5928,5934 **** Star Notation ............. ! The following notation specifies the storage size for a type: GENERIC-TYPE*N --- 5929,5935 ---- Star Notation ............. ! The following notation specifies the storage size for a type: GENERIC-TYPE*N *************** File: g77.info, Node: Kind Notation, P *** 5994,6000 **** Kind Notation ............. ! The following notation specifies the kind-type selector of a type: GENERIC-TYPE(KIND=N) --- 5995,6001 ---- Kind Notation ............. ! The following notation specifies the kind-type selector of a type: GENERIC-TYPE(KIND=N) *************** File: g77.info, Node: Constants, Next: *** 6199,6205 **** Constants --------- ! (Corresponds to Section 4.2 of ANSI X3.9-1978 FORTRAN 77.) A "typeless constant" has one of the following forms: --- 6200,6206 ---- Constants --------- ! (Corresponds to Section 4.2 of ANSI X3.9-1978 FORTRAN 77.) A "typeless constant" has one of the following forms: *************** File: g77.info, Node: Integer Type, Ne *** 6238,6244 **** Integer Type ------------ ! (Corresponds to Section 4.3 of ANSI X3.9-1978 FORTRAN 77.) An integer constant also may have one of the following forms: --- 6239,6245 ---- Integer Type ------------ ! (Corresponds to Section 4.3 of ANSI X3.9-1978 FORTRAN 77.) An integer constant also may have one of the following forms: *************** File: g77.info, Node: Character Type, *** 6258,6264 **** Character Type -------------- ! (Corresponds to Section 4.8 of ANSI X3.9-1978 FORTRAN 77.) A character constant may be delimited by a pair of double quotes (`"') instead of apostrophes. In this case, an apostrophe within the --- 6259,6265 ---- Character Type -------------- ! (Corresponds to Section 4.8 of ANSI X3.9-1978 FORTRAN 77.) A character constant may be delimited by a pair of double quotes (`"') instead of apostrophes. In this case, an apostrophe within the *************** File: g77.info, Node: Expressions, Nex *** 6278,6284 **** Expressions =========== ! (The following information augments or overrides the information in Chapter 6 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 6 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 6279,6285 ---- Expressions =========== ! (The following information augments or overrides the information in Chapter 6 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 6 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** File: g77.info, Node: Specification Sta *** 6349,6355 **** Specification Statements ======================== ! (The following information augments or overrides the information in Chapter 8 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 8 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 6350,6356 ---- Specification Statements ======================== ! (The following information augments or overrides the information in Chapter 8 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 8 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** File: g77.info, Node: NAMELIST, Next: *** 6365,6372 **** `NAMELIST' Statement -------------------- ! The `NAMELIST' statement, and related I/O constructs, are supported by ! the GNU Fortran language in essentially the same way as they are by `f2c'. This follows Fortran 90 with the restriction that on `NAMELIST' --- 6366,6373 ---- `NAMELIST' Statement -------------------- ! The `NAMELIST' statement, and related I/O constructs, are supported ! by the GNU Fortran language in essentially the same way as they are by `f2c'. This follows Fortran 90 with the restriction that on `NAMELIST' *************** File: g77.info, Node: DOUBLE COMPLEX, *** 6388,6395 **** `DOUBLE COMPLEX' Statement -------------------------- ! `DOUBLE COMPLEX' is a type-statement (and type) that specifies the type ! `COMPLEX(KIND=2)' in GNU Fortran.  File: g77.info, Node: Control Statements, Next: Functions and Subroutines, Prev: Specification Statements, Up: Language --- 6389,6396 ---- `DOUBLE COMPLEX' Statement -------------------------- ! `DOUBLE COMPLEX' is a type-statement (and type) that specifies the ! type `COMPLEX(KIND=2)' in GNU Fortran.  File: g77.info, Node: Control Statements, Next: Functions and Subroutines, Prev: Specification Statements, Up: Language *************** File: g77.info, Node: Control Statement *** 6397,6403 **** Control Statements ================== ! (The following information augments or overrides the information in Chapter 11 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 11 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 6398,6404 ---- Control Statements ================== ! (The following information augments or overrides the information in Chapter 11 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 11 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** File: g77.info, Node: DO WHILE, Next: *** 6415,6421 **** DO WHILE -------- ! The `DO WHILE' statement, a feature of both the MIL-STD 1753 and Fortran 90 standards, is provided by the GNU Fortran language. The Fortran 90 "do forever" statement comprising just `DO' is also supported. --- 6416,6422 ---- DO WHILE -------- ! The `DO WHILE' statement, a feature of both the MIL-STD 1753 and Fortran 90 standards, is provided by the GNU Fortran language. The Fortran 90 "do forever" statement comprising just `DO' is also supported. *************** File: g77.info, Node: END DO, Next: Co *** 6426,6432 **** END DO ------ ! The `END DO' statement is provided by the GNU Fortran language. This statement is used in one of two ways: --- 6427,6433 ---- END DO ------ ! The `END DO' statement is provided by the GNU Fortran language. This statement is used in one of two ways: *************** File: g77.info, Node: Construct Names, *** 6453,6459 **** Construct Names --------------- ! The GNU Fortran language supports construct names as defined by the Fortran 90 standard. These names are local to the program unit and are defined as follows: --- 6454,6460 ---- Construct Names --------------- ! The GNU Fortran language supports construct names as defined by the Fortran 90 standard. These names are local to the program unit and are defined as follows: *************** File: g77.info, Node: CYCLE and EXIT, *** 6476,6484 **** The `CYCLE' and `EXIT' Statements --------------------------------- ! The `CYCLE' and `EXIT' statements specify that the remaining statements ! in the current iteration of a particular active (enclosing) `DO' loop ! are to be skipped. `CYCLE' specifies that these statements are skipped, but the `END DO' statement that marks the end of the `DO' loop be executed--that is, --- 6477,6485 ---- The `CYCLE' and `EXIT' Statements --------------------------------- ! The `CYCLE' and `EXIT' statements specify that the remaining ! statements in the current iteration of a particular active (enclosing) ! `DO' loop are to be skipped. `CYCLE' specifies that these statements are skipped, but the `END DO' statement that marks the end of the `DO' loop be executed--that is, *************** File: g77.info, Node: Functions and Sub *** 6558,6564 **** Functions and Subroutines ========================= ! (The following information augments or overrides the information in Chapter 15 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 15 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 6559,6565 ---- Functions and Subroutines ========================= ! (The following information augments or overrides the information in Chapter 15 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 15 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** File: g77.info, Node: Generics and Spec *** 6703,6709 **** Generics and Specifics ---------------------- ! The ANSI FORTRAN 77 language defines generic and specific intrinsics. In short, the distinctions are: * _Specific_ intrinsics have specific types for their arguments and --- 6704,6710 ---- Generics and Specifics ---------------------- ! The ANSI FORTRAN 77 language defines generic and specific intrinsics. In short, the distinctions are: * _Specific_ intrinsics have specific types for their arguments and *************** File: g77.info, Node: REAL() and AIMAG( *** 6896,6902 **** `REAL()' and `AIMAG()' of Complex --------------------------------- ! The GNU Fortran language disallows `REAL(EXPR)' and `AIMAG(EXPR)', where EXPR is any `COMPLEX' type other than `COMPLEX(KIND=1)', except when they are used in the following way: --- 6897,6903 ---- `REAL()' and `AIMAG()' of Complex --------------------------------- ! The GNU Fortran language disallows `REAL(EXPR)' and `AIMAG(EXPR)', where EXPR is any `COMPLEX' type other than `COMPLEX(KIND=1)', except when they are used in the following way: *************** File: g77.info, Node: CMPLX() of DOUBLE *** 6942,6948 **** `CMPLX()' of `DOUBLE PRECISION' ------------------------------- ! In accordance with Fortran 90 and at least some (perhaps all) other compilers, the GNU Fortran language defines `CMPLX()' as always returning a result that is type `COMPLEX(KIND=1)'. --- 6943,6949 ---- `CMPLX()' of `DOUBLE PRECISION' ------------------------------- ! In accordance with Fortran 90 and at least some (perhaps all) other compilers, the GNU Fortran language defines `CMPLX()' as always returning a result that is type `COMPLEX(KIND=1)'. *************** File: g77.info, Node: MIL-STD 1753, Ne *** 6985,6993 **** MIL-STD 1753 Support -------------------- ! The GNU Fortran language includes the MIL-STD 1753 intrinsics `BTEST', ! `IAND', `IBCLR', `IBITS', `IBSET', `IEOR', `IOR', `ISHFT', `ISHFTC', ! `MVBITS', and `NOT'.  File: g77.info, Node: f77/f2c Intrinsics, Next: Table of Intrinsic Functions, Prev: MIL-STD 1753, Up: Functions and Subroutines --- 6986,6994 ---- MIL-STD 1753 Support -------------------- ! The GNU Fortran language includes the MIL-STD 1753 intrinsics ! `BTEST', `IAND', `IBCLR', `IBITS', `IBSET', `IEOR', `IOR', `ISHFT', ! `ISHFTC', `MVBITS', and `NOT'.  File: g77.info, Node: f77/f2c Intrinsics, Next: Table of Intrinsic Functions, Prev: MIL-STD 1753, Up: Functions and Subroutines *************** File: g77.info, Node: f77/f2c Intrinsic *** 6995,7003 **** `f77'/`f2c' Intrinsics ---------------------- ! The bit-manipulation intrinsics supported by traditional `f77' and by ! `f2c' are available in the GNU Fortran language. These include `AND', ! `LSHIFT', `OR', `RSHIFT', and `XOR'. Also supported are the intrinsics `CDABS', `CDCOS', `CDEXP', `CDLOG', `CDSIN', `CDSQRT', `DCMPLX', `DCONJG', `DFLOAT', `DIMAG', --- 6996,7004 ---- `f77'/`f2c' Intrinsics ---------------------- ! The bit-manipulation intrinsics supported by traditional `f77' and ! by `f2c' are available in the GNU Fortran language. These include ! `AND', `LSHIFT', `OR', `RSHIFT', and `XOR'. Also supported are the intrinsics `CDABS', `CDCOS', `CDEXP', `CDLOG', `CDSIN', `CDSQRT', `DCMPLX', `DCONJG', `DFLOAT', `DIMAG', *************** File: g77.info, Node: Table of Intrinsi *** 7010,7016 **** Table of Intrinsic Functions ---------------------------- ! (Corresponds to Section 15.10 of ANSI X3.9-1978 FORTRAN 77.) The GNU Fortran language adds various functions, subroutines, types, and arguments to the set of intrinsic functions in ANSI FORTRAN 77. --- 7011,7017 ---- Table of Intrinsic Functions ---------------------------- ! (Corresponds to Section 15.10 of ANSI X3.9-1978 FORTRAN 77.) The GNU Fortran language adds various functions, subroutines, types, and arguments to the set of intrinsic functions in ANSI FORTRAN 77. *************** File: g77.info, Node: AdjustL Intrinsic *** 7626,7634 **** AdjustL Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AdjustL' to use this name for an ! external procedure.  File: g77.info, Node: AdjustR Intrinsic, Next: AImag Intrinsic, Prev: AdjustL Intrinsic, Up: Table of Intrinsic Functions --- 7627,7635 ---- AdjustL Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AdjustL' to use this name for ! an external procedure.  File: g77.info, Node: AdjustR Intrinsic, Next: AImag Intrinsic, Prev: AdjustL Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: AdjustR Intrinsic *** 7636,7644 **** AdjustR Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AdjustR' to use this name for an ! external procedure.  File: g77.info, Node: AImag Intrinsic, Next: AInt Intrinsic, Prev: AdjustR Intrinsic, Up: Table of Intrinsic Functions --- 7637,7645 ---- AdjustR Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AdjustR' to use this name for ! an external procedure.  File: g77.info, Node: AImag Intrinsic, Next: AInt Intrinsic, Prev: AdjustR Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: All Intrinsic, N *** 7726,7734 **** All Intrinsic ............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL All' to use this name for an external ! procedure.  File: g77.info, Node: Allocated Intrinsic, Next: ALog Intrinsic, Prev: All Intrinsic, Up: Table of Intrinsic Functions --- 7727,7735 ---- All Intrinsic ............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL All' to use this name for an ! external procedure.  File: g77.info, Node: Allocated Intrinsic, Next: ALog Intrinsic, Prev: All Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Allocated Intrins *** 7736,7744 **** Allocated Intrinsic ................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Allocated' to use this name for an ! external procedure.  File: g77.info, Node: ALog Intrinsic, Next: ALog10 Intrinsic, Prev: Allocated Intrinsic, Up: Table of Intrinsic Functions --- 7737,7745 ---- Allocated Intrinsic ................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Allocated' to use this name ! for an external procedure.  File: g77.info, Node: ALog Intrinsic, Next: ALog10 Intrinsic, Prev: Allocated Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Any Intrinsic, N *** 7935,7943 **** Any Intrinsic ............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Any' to use this name for an external ! procedure.  File: g77.info, Node: ASin Intrinsic, Next: Associated Intrinsic, Prev: Any Intrinsic, Up: Table of Intrinsic Functions --- 7936,7944 ---- Any Intrinsic ............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Any' to use this name for an ! external procedure.  File: g77.info, Node: ASin Intrinsic, Next: Associated Intrinsic, Prev: Any Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Associated Intrin *** 7966,7974 **** Associated Intrinsic .................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Associated' to use this name for an ! external procedure.  File: g77.info, Node: ATan Intrinsic, Next: ATan2 Intrinsic, Prev: Associated Intrinsic, Up: Table of Intrinsic Functions --- 7967,7975 ---- Associated Intrinsic .................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Associated' to use this name ! for an external procedure.  File: g77.info, Node: ATan Intrinsic, Next: ATan2 Intrinsic, Prev: Associated Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Ceiling Intrinsic *** 8237,8245 **** Ceiling Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Ceiling' to use this name for an ! external procedure.  File: g77.info, Node: CExp Intrinsic, Next: Char Intrinsic, Prev: Ceiling Intrinsic, Up: Table of Intrinsic Functions --- 8238,8246 ---- Ceiling Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Ceiling' to use this name for ! an external procedure.  File: g77.info, Node: CExp Intrinsic, Next: Char Intrinsic, Prev: Ceiling Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Count Intrinsic, *** 8530,8538 **** Count Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Count' to use this name for an external ! procedure.  File: g77.info, Node: CPU_Time Intrinsic, Next: CShift Intrinsic, Prev: Count Intrinsic, Up: Table of Intrinsic Functions --- 8531,8539 ---- Count Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Count' to use this name for an ! external procedure.  File: g77.info, Node: CPU_Time Intrinsic, Next: CShift Intrinsic, Prev: Count Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: CShift Intrinsic, *** 8564,8571 **** CShift Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL CShift' to use this name for an external procedure.  --- 8565,8572 ---- CShift Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL CShift' to use this name for an external procedure.  *************** File: g77.info, Node: Digits Intrinsic, *** 9070,9077 **** Digits Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Digits' to use this name for an external procedure.  --- 9071,9078 ---- Digits Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Digits' to use this name for an external procedure.  *************** File: g77.info, Node: Dot_Product Intri *** 9238,9246 **** Dot_Product Intrinsic ..................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Dot_Product' to use this name for an ! external procedure.  File: g77.info, Node: DProd Intrinsic, Next: DSign Intrinsic, Prev: Dot_Product Intrinsic, Up: Table of Intrinsic Functions --- 9239,9247 ---- Dot_Product Intrinsic ..................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Dot_Product' to use this name ! for an external procedure.  File: g77.info, Node: DProd Intrinsic, Next: DSign Intrinsic, Prev: Dot_Product Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: EOShift Intrinsic *** 9420,9428 **** EOShift Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL EOShift' to use this name for an ! external procedure.  File: g77.info, Node: Epsilon Intrinsic, Next: ErF Intrinsic, Prev: EOShift Intrinsic, Up: Table of Intrinsic Functions --- 9421,9429 ---- EOShift Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL EOShift' to use this name for ! an external procedure.  File: g77.info, Node: Epsilon Intrinsic, Next: ErF Intrinsic, Prev: EOShift Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Epsilon Intrinsic *** 9430,9438 **** Epsilon Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Epsilon' to use this name for an ! external procedure.  File: g77.info, Node: ErF Intrinsic, Next: ErFC Intrinsic, Prev: Epsilon Intrinsic, Up: Table of Intrinsic Functions --- 9431,9439 ---- Epsilon Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Epsilon' to use this name for ! an external procedure.  File: g77.info, Node: ErF Intrinsic, Next: ErFC Intrinsic, Prev: Epsilon Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Exponent Intrinsi *** 9585,9593 **** Exponent Intrinsic .................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Exponent' to use this name for an ! external procedure.  File: g77.info, Node: FDate Intrinsic (subroutine), Next: FDate Intrinsic (function), Prev: Exponent Intrinsic, Up: Table of Intrinsic Functions --- 9586,9594 ---- Exponent Intrinsic .................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Exponent' to use this name for ! an external procedure.  File: g77.info, Node: FDate Intrinsic (subroutine), Next: FDate Intrinsic (function), Prev: Exponent Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Floor Intrinsic, *** 9736,9744 **** Floor Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Floor' to use this name for an external ! procedure.  File: g77.info, Node: Flush Intrinsic, Next: FNum Intrinsic, Prev: Floor Intrinsic, Up: Table of Intrinsic Functions --- 9737,9745 ---- Floor Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Floor' to use this name for an ! external procedure.  File: g77.info, Node: Flush Intrinsic, Next: FNum Intrinsic, Prev: Floor Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Fraction Intrinsi *** 9844,9852 **** Fraction Intrinsic .................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Fraction' to use this name for an ! external procedure.  File: g77.info, Node: FSeek Intrinsic, Next: FStat Intrinsic (subroutine), Prev: Fraction Intrinsic, Up: Table of Intrinsic Functions --- 9845,9853 ---- Fraction Intrinsic .................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Fraction' to use this name for ! an external procedure.  File: g77.info, Node: FSeek Intrinsic, Next: FStat Intrinsic (subroutine), Prev: Fraction Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Huge Intrinsic, *** 10329,10337 **** Huge Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Huge' to use this name for an external ! procedure.  File: g77.info, Node: IAbs Intrinsic, Next: IAChar Intrinsic, Prev: Huge Intrinsic, Up: Table of Intrinsic Functions --- 10330,10338 ---- Huge Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Huge' to use this name for an ! external procedure.  File: g77.info, Node: IAbs Intrinsic, Next: IAChar Intrinsic, Prev: Huge Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Kind Intrinsic, *** 11050,11058 **** Kind Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Kind' to use this name for an external ! procedure.  File: g77.info, Node: LBound Intrinsic, Next: Len Intrinsic, Prev: Kind Intrinsic, Up: Table of Intrinsic Functions --- 11051,11059 ---- Kind Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Kind' to use this name for an ! external procedure.  File: g77.info, Node: LBound Intrinsic, Next: Len Intrinsic, Prev: Kind Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: LBound Intrinsic, *** 11060,11067 **** LBound Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL LBound' to use this name for an external procedure.  --- 11061,11068 ---- LBound Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL LBound' to use this name for an external procedure.  *************** File: g77.info, Node: Logical Intrinsic *** 11371,11379 **** Logical Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Logical' to use this name for an ! external procedure.  File: g77.info, Node: Long Intrinsic, Next: LShift Intrinsic, Prev: Logical Intrinsic, Up: Table of Intrinsic Functions --- 11372,11380 ---- Logical Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Logical' to use this name for ! an external procedure.  File: g77.info, Node: Long Intrinsic, Next: LShift Intrinsic, Prev: Logical Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: MatMul Intrinsic, *** 11610,11617 **** MatMul Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MatMul' to use this name for an external procedure.  --- 11611,11618 ---- MatMul Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MatMul' to use this name for an external procedure.  *************** File: g77.info, Node: MaxExponent Intri *** 11682,11690 **** MaxExponent Intrinsic ..................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MaxExponent' to use this name for an ! external procedure.  File: g77.info, Node: MaxLoc Intrinsic, Next: MaxVal Intrinsic, Prev: MaxExponent Intrinsic, Up: Table of Intrinsic Functions --- 11683,11691 ---- MaxExponent Intrinsic ..................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MaxExponent' to use this name ! for an external procedure.  File: g77.info, Node: MaxLoc Intrinsic, Next: MaxVal Intrinsic, Prev: MaxExponent Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: MaxLoc Intrinsic, *** 11692,11699 **** MaxLoc Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MaxLoc' to use this name for an external procedure.  --- 11693,11700 ---- MaxLoc Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MaxLoc' to use this name for an external procedure.  *************** File: g77.info, Node: MaxVal Intrinsic, *** 11702,11709 **** MaxVal Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MaxVal' to use this name for an external procedure.  --- 11703,11710 ---- MaxVal Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MaxVal' to use this name for an external procedure.  *************** File: g77.info, Node: Merge Intrinsic, *** 11774,11782 **** Merge Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Merge' to use this name for an external ! procedure.  File: g77.info, Node: Min Intrinsic, Next: Min0 Intrinsic, Prev: Merge Intrinsic, Up: Table of Intrinsic Functions --- 11775,11783 ---- Merge Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Merge' to use this name for an ! external procedure.  File: g77.info, Node: Min Intrinsic, Next: Min0 Intrinsic, Prev: Merge Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: MinExponent Intri *** 11846,11854 **** MinExponent Intrinsic ..................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MinExponent' to use this name for an ! external procedure.  File: g77.info, Node: MinLoc Intrinsic, Next: MinVal Intrinsic, Prev: MinExponent Intrinsic, Up: Table of Intrinsic Functions --- 11847,11855 ---- MinExponent Intrinsic ..................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MinExponent' to use this name ! for an external procedure.  File: g77.info, Node: MinLoc Intrinsic, Next: MinVal Intrinsic, Prev: MinExponent Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: MinLoc Intrinsic, *** 11856,11863 **** MinLoc Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MinLoc' to use this name for an external procedure.  --- 11857,11864 ---- MinLoc Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MinLoc' to use this name for an external procedure.  *************** File: g77.info, Node: MinVal Intrinsic, *** 11866,11873 **** MinVal Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL MinVal' to use this name for an external procedure.  --- 11867,11874 ---- MinVal Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL MinVal' to use this name for an external procedure.  *************** File: g77.info, Node: Modulo Intrinsic, *** 11901,11908 **** Modulo Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Modulo' to use this name for an external procedure.  --- 11902,11909 ---- Modulo Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Modulo' to use this name for an external procedure.  *************** File: g77.info, Node: Nearest Intrinsic *** 11941,11949 **** Nearest Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Nearest' to use this name for an ! external procedure.  File: g77.info, Node: NInt Intrinsic, Next: Not Intrinsic, Prev: Nearest Intrinsic, Up: Table of Intrinsic Functions --- 11942,11950 ---- Nearest Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Nearest' to use this name for ! an external procedure.  File: g77.info, Node: NInt Intrinsic, Next: Not Intrinsic, Prev: Nearest Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Pack Intrinsic, *** 12022,12030 **** Pack Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Pack' to use this name for an external ! procedure.  File: g77.info, Node: PError Intrinsic, Next: Precision Intrinsic, Prev: Pack Intrinsic, Up: Table of Intrinsic Functions --- 12023,12031 ---- Pack Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Pack' to use this name for an ! external procedure.  File: g77.info, Node: PError Intrinsic, Next: Precision Intrinsic, Prev: Pack Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Precision Intrins *** 12050,12058 **** Precision Intrinsic ................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Precision' to use this name for an ! external procedure.  File: g77.info, Node: Present Intrinsic, Next: Product Intrinsic, Prev: Precision Intrinsic, Up: Table of Intrinsic Functions --- 12051,12059 ---- Precision Intrinsic ................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Precision' to use this name ! for an external procedure.  File: g77.info, Node: Present Intrinsic, Next: Product Intrinsic, Prev: Precision Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Present Intrinsic *** 12060,12068 **** Present Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Present' to use this name for an ! external procedure.  File: g77.info, Node: Product Intrinsic, Next: Radix Intrinsic, Prev: Present Intrinsic, Up: Table of Intrinsic Functions --- 12061,12069 ---- Present Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Present' to use this name for ! an external procedure.  File: g77.info, Node: Product Intrinsic, Next: Radix Intrinsic, Prev: Present Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Product Intrinsic *** 12070,12078 **** Product Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Product' to use this name for an ! external procedure.  File: g77.info, Node: Radix Intrinsic, Next: Rand Intrinsic, Prev: Product Intrinsic, Up: Table of Intrinsic Functions --- 12071,12079 ---- Product Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Product' to use this name for ! an external procedure.  File: g77.info, Node: Radix Intrinsic, Next: Rand Intrinsic, Prev: Product Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Radix Intrinsic, *** 12080,12088 **** Radix Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Radix' to use this name for an external ! procedure.  File: g77.info, Node: Rand Intrinsic, Next: Random_Number Intrinsic, Prev: Radix Intrinsic, Up: Table of Intrinsic Functions --- 12081,12089 ---- Radix Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Radix' to use this name for an ! external procedure.  File: g77.info, Node: Rand Intrinsic, Next: Random_Number Intrinsic, Prev: Radix Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Random_Number Int *** 12119,12127 **** Random_Number Intrinsic ....................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Random_Number' to use this name for an ! external procedure.  File: g77.info, Node: Random_Seed Intrinsic, Next: Range Intrinsic, Prev: Random_Number Intrinsic, Up: Table of Intrinsic Functions --- 12120,12128 ---- Random_Number Intrinsic ....................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Random_Number' to use this ! name for an external procedure.  File: g77.info, Node: Random_Seed Intrinsic, Next: Range Intrinsic, Prev: Random_Number Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Random_Seed Intri *** 12129,12137 **** Random_Seed Intrinsic ..................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Random_Seed' to use this name for an ! external procedure.  File: g77.info, Node: Range Intrinsic, Next: Real Intrinsic, Prev: Random_Seed Intrinsic, Up: Table of Intrinsic Functions --- 12130,12138 ---- Random_Seed Intrinsic ..................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Random_Seed' to use this name ! for an external procedure.  File: g77.info, Node: Range Intrinsic, Next: Real Intrinsic, Prev: Random_Seed Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Range Intrinsic, *** 12139,12147 **** Range Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Range' to use this name for an external ! procedure.  File: g77.info, Node: Real Intrinsic, Next: RealPart Intrinsic, Prev: Range Intrinsic, Up: Table of Intrinsic Functions --- 12140,12148 ---- Range Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Range' to use this name for an ! external procedure.  File: g77.info, Node: Real Intrinsic, Next: RealPart Intrinsic, Prev: Range Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Repeat Intrinsic, *** 12245,12252 **** Repeat Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Repeat' to use this name for an external procedure.  --- 12246,12253 ---- Repeat Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Repeat' to use this name for an external procedure.  *************** File: g77.info, Node: Reshape Intrinsic *** 12255,12263 **** Reshape Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Reshape' to use this name for an ! external procedure.  File: g77.info, Node: RRSpacing Intrinsic, Next: RShift Intrinsic, Prev: Reshape Intrinsic, Up: Table of Intrinsic Functions --- 12256,12264 ---- Reshape Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Reshape' to use this name for ! an external procedure.  File: g77.info, Node: RRSpacing Intrinsic, Next: RShift Intrinsic, Prev: Reshape Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: RRSpacing Intrins *** 12265,12273 **** RRSpacing Intrinsic ................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL RRSpacing' to use this name for an ! external procedure.  File: g77.info, Node: RShift Intrinsic, Next: Scale Intrinsic, Prev: RRSpacing Intrinsic, Up: Table of Intrinsic Functions --- 12266,12274 ---- RRSpacing Intrinsic ................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL RRSpacing' to use this name ! for an external procedure.  File: g77.info, Node: RShift Intrinsic, Next: Scale Intrinsic, Prev: RRSpacing Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Scale Intrinsic, *** 12310,12318 **** Scale Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Scale' to use this name for an external ! procedure.  File: g77.info, Node: Scan Intrinsic, Next: Second Intrinsic (function), Prev: Scale Intrinsic, Up: Table of Intrinsic Functions --- 12311,12319 ---- Scale Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Scale' to use this name for an ! external procedure.  File: g77.info, Node: Scan Intrinsic, Next: Second Intrinsic (function), Prev: Scale Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Scan Intrinsic, *** 12320,12328 **** Scan Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Scan' to use this name for an external ! procedure.  File: g77.info, Node: Second Intrinsic (function), Next: Second Intrinsic (subroutine), Prev: Scan Intrinsic, Up: Table of Intrinsic Functions --- 12321,12329 ---- Scan Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Scan' to use this name for an ! external procedure.  File: g77.info, Node: Second Intrinsic (function), Next: Second Intrinsic (subroutine), Prev: Scan Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Selected_Int_Kind *** 12385,12393 **** Selected_Int_Kind Intrinsic ........................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Selected_Int_Kind' to use this name for ! an external procedure.  File: g77.info, Node: Selected_Real_Kind Intrinsic, Next: Set_Exponent Intrinsic, Prev: Selected_Int_Kind Intrinsic, Up: Table of Intrinsic Functions --- 12386,12394 ---- Selected_Int_Kind Intrinsic ........................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Selected_Int_Kind' to use this ! name for an external procedure.  File: g77.info, Node: Selected_Real_Kind Intrinsic, Next: Set_Exponent Intrinsic, Prev: Selected_Int_Kind Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Selected_Real_Kin *** 12395,12403 **** Selected_Real_Kind Intrinsic ............................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Selected_Real_Kind' to use this name ! for an external procedure.  File: g77.info, Node: Set_Exponent Intrinsic, Next: Shape Intrinsic, Prev: Selected_Real_Kind Intrinsic, Up: Table of Intrinsic Functions --- 12396,12404 ---- Selected_Real_Kind Intrinsic ............................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Selected_Real_Kind' to use ! this name for an external procedure.  File: g77.info, Node: Set_Exponent Intrinsic, Next: Shape Intrinsic, Prev: Selected_Real_Kind Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Set_Exponent Intr *** 12405,12413 **** Set_Exponent Intrinsic ...................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Set_Exponent' to use this name for an ! external procedure.  File: g77.info, Node: Shape Intrinsic, Next: Short Intrinsic, Prev: Set_Exponent Intrinsic, Up: Table of Intrinsic Functions --- 12406,12414 ---- Set_Exponent Intrinsic ...................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Set_Exponent' to use this name ! for an external procedure.  File: g77.info, Node: Shape Intrinsic, Next: Short Intrinsic, Prev: Set_Exponent Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Shape Intrinsic, *** 12415,12423 **** Shape Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Shape' to use this name for an external ! procedure.  File: g77.info, Node: Short Intrinsic, Next: Sign Intrinsic, Prev: Shape Intrinsic, Up: Table of Intrinsic Functions --- 12416,12424 ---- Shape Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Shape' to use this name for an ! external procedure.  File: g77.info, Node: Short Intrinsic, Next: Sign Intrinsic, Prev: Shape Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Spacing Intrinsic *** 12612,12620 **** Spacing Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Spacing' to use this name for an ! external procedure.  File: g77.info, Node: Spread Intrinsic, Next: SqRt Intrinsic, Prev: Spacing Intrinsic, Up: Table of Intrinsic Functions --- 12613,12621 ---- Spacing Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Spacing' to use this name for ! an external procedure.  File: g77.info, Node: Spread Intrinsic, Next: SqRt Intrinsic, Prev: Spacing Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Spread Intrinsic, *** 12622,12629 **** Spread Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Spread' to use this name for an external procedure.  --- 12623,12630 ---- Spread Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Spread' to use this name for an external procedure.  *************** File: g77.info, Node: Sum Intrinsic, N *** 12796,12804 **** Sum Intrinsic ............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Sum' to use this name for an external ! procedure.  File: g77.info, Node: SymLnk Intrinsic (subroutine), Next: System Intrinsic (subroutine), Prev: Sum Intrinsic, Up: Table of Intrinsic Functions --- 12797,12805 ---- Sum Intrinsic ............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Sum' to use this name for an ! external procedure.  File: g77.info, Node: SymLnk Intrinsic (subroutine), Next: System Intrinsic (subroutine), Prev: Sum Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Tiny Intrinsic, *** 12999,13007 **** Tiny Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Tiny' to use this name for an external ! procedure.  File: g77.info, Node: Transfer Intrinsic, Next: Transpose Intrinsic, Prev: Tiny Intrinsic, Up: Table of Intrinsic Functions --- 13000,13008 ---- Tiny Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Tiny' to use this name for an ! external procedure.  File: g77.info, Node: Transfer Intrinsic, Next: Transpose Intrinsic, Prev: Tiny Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Transfer Intrinsi *** 13009,13017 **** Transfer Intrinsic .................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Transfer' to use this name for an ! external procedure.  File: g77.info, Node: Transpose Intrinsic, Next: Trim Intrinsic, Prev: Transfer Intrinsic, Up: Table of Intrinsic Functions --- 13010,13018 ---- Transfer Intrinsic .................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Transfer' to use this name for ! an external procedure.  File: g77.info, Node: Transpose Intrinsic, Next: Trim Intrinsic, Prev: Transfer Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Transpose Intrins *** 13019,13027 **** Transpose Intrinsic ................... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Transpose' to use this name for an ! external procedure.  File: g77.info, Node: Trim Intrinsic, Next: TtyNam Intrinsic (subroutine), Prev: Transpose Intrinsic, Up: Table of Intrinsic Functions --- 13020,13028 ---- Transpose Intrinsic ................... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Transpose' to use this name ! for an external procedure.  File: g77.info, Node: Trim Intrinsic, Next: TtyNam Intrinsic (subroutine), Prev: Transpose Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: Trim Intrinsic, *** 13029,13037 **** Trim Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Trim' to use this name for an external ! procedure.  File: g77.info, Node: TtyNam Intrinsic (subroutine), Next: TtyNam Intrinsic (function), Prev: Trim Intrinsic, Up: Table of Intrinsic Functions --- 13030,13038 ---- Trim Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Trim' to use this name for an ! external procedure.  File: g77.info, Node: TtyNam Intrinsic (subroutine), Next: TtyNam Intrinsic (function), Prev: Trim Intrinsic, Up: Table of Intrinsic Functions *************** File: g77.info, Node: UBound Intrinsic, *** 13086,13093 **** UBound Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL UBound' to use this name for an external procedure.  --- 13087,13094 ---- UBound Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL UBound' to use this name for an external procedure.  *************** File: g77.info, Node: Unpack Intrinsic, *** 13149,13156 **** Unpack Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Unpack' to use this name for an external procedure.  --- 13150,13157 ---- Unpack Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Unpack' to use this name for an external procedure.  *************** File: g77.info, Node: Verify Intrinsic, *** 13159,13166 **** Verify Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL Verify' to use this name for an external procedure.  --- 13160,13167 ---- Verify Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL Verify' to use this name for an external procedure.  *************** File: g77.info, Node: Scope and Classes *** 13305,13311 **** Scope and Classes of Symbolic Names =================================== ! (The following information augments or overrides the information in Chapter 18 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 18 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) --- 13306,13312 ---- Scope and Classes of Symbolic Names =================================== ! (The following information augments or overrides the information in Chapter 18 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran language. Chapter 18 of that document otherwise serves as the basis for the relevant aspects of GNU Fortran.) *************** File: g77.info, Node: Underscores in Sy *** 13320,13326 **** Underscores in Symbol Names --------------------------- ! Underscores (`_') are accepted in symbol names after the first character (which must be a letter).  --- 13321,13327 ---- Underscores in Symbol Names --------------------------- ! Underscores (`_') are accepted in symbol names after the first character (which must be a letter).  *************** File: g77.info, Node: I/O, Next: Fortr *** 13329,13335 **** I/O === ! A dollar sign at the end of an output format specification suppresses the newline at the end of the output. Edit descriptors in `FORMAT' statements may contain compile-time --- 13330,13336 ---- I/O === ! A dollar sign at the end of an output format specification suppresses the newline at the end of the output. Edit descriptors in `FORMAT' statements may contain compile-time *************** File: g77.info, Node: Fortran 90 Featur *** 13352,13358 **** Fortran 90 Features =================== ! For convenience this section collects a list (probably incomplete) of the Fortran 90 features supported by the GNU Fortran language, even if they are documented elsewhere. *Note Characters, Lines, and Execution Sequence: Characters Lines Sequence, for information on additional --- 13353,13359 ---- Fortran 90 Features =================== ! For convenience this section collects a list (probably incomplete) of the Fortran 90 features supported by the GNU Fortran language, even if they are documented elsewhere. *Note Characters, Lines, and Execution Sequence: Characters Lines Sequence, for information on additional *************** File: g77.info, Node: Other Dialects, *** 13442,13450 **** Other Dialects ************** ! GNU Fortran supports a variety of features that are not considered part ! of the GNU Fortran language itself, but are representative of various ! dialects of Fortran that `g77' supports in whole or in part. Any of the features listed below might be disallowed by `g77' unless some command-line option is specified. Currently, some of the features --- 13443,13451 ---- Other Dialects ************** ! GNU Fortran supports a variety of features that are not considered ! part of the GNU Fortran language itself, but are representative of ! various dialects of Fortran that `g77' supports in whole or in part. Any of the features listed below might be disallowed by `g77' unless some command-line option is specified. Currently, some of the features *************** File: g77.info, Node: Source Form, Nex *** 13472,13478 **** Source Form =========== ! GNU Fortran accepts programs written in either fixed form or free form. Fixed form corresponds to ANSI FORTRAN 77 (plus popular extensions, such as allowing tabs) and Fortran 90's fixed form. --- 13473,13480 ---- Source Form =========== ! GNU Fortran accepts programs written in either fixed form or free ! form. Fixed form corresponds to ANSI FORTRAN 77 (plus popular extensions, such as allowing tabs) and Fortran 90's fixed form. *************** File: g77.info, Node: Carriage Returns, *** 13504,13513 **** Carriage Returns ---------------- ! Carriage returns (`\r') in source lines are ignored. This is somewhat ! different from `f2c', which seems to treat them as spaces outside ! character/Hollerith constants, and encodes them as `\r' inside such ! constants.  File: g77.info, Node: Tabs, Next: Short Lines, Prev: Carriage Returns, Up: Source Form --- 13506,13515 ---- Carriage Returns ---------------- ! Carriage returns (`\r') in source lines are ignored. This is ! somewhat different from `f2c', which seems to treat them as spaces ! outside character/Hollerith constants, and encodes them as `\r' inside ! such constants.  File: g77.info, Node: Tabs, Next: Short Lines, Prev: Carriage Returns, Up: Source Form *************** File: g77.info, Node: Tabs, Next: Shor *** 13515,13521 **** Tabs ---- ! A source line with a character anywhere in it is treated as entirely significant--however long it is--instead of ending in column 72 (for fixed-form source) or 132 (for free-form source). This also is different from `f2c', which encodes tabs as `\t' (the ASCII --- 13517,13523 ---- Tabs ---- ! A source line with a character anywhere in it is treated as entirely significant--however long it is--instead of ending in column 72 (for fixed-form source) or 132 (for free-form source). This also is different from `f2c', which encodes tabs as `\t' (the ASCII *************** File: g77.info, Node: Short Lines, Nex *** 13535,13543 **** Short Lines ----------- ! Source lines shorter than the applicable fixed-form length are treated ! as if they were padded with spaces to that length. (None of this is ! relevant to source files written in free form.) This affects only continued character and Hollerith constants, and is a different interpretation than provided by some other popular --- 13537,13545 ---- Short Lines ----------- ! Source lines shorter than the applicable fixed-form length are ! treated as if they were padded with spaces to that length. (None of ! this is relevant to source files written in free form.) This affects only continued character and Hollerith constants, and is a different interpretation than provided by some other popular *************** File: g77.info, Node: Long Lines, Next *** 13559,13565 **** Long Lines ---------- ! Source lines longer than the applicable length are truncated to that length. Currently, `g77' does not warn if the truncated characters are not spaces, to accommodate existing code written for systems that treated truncated text as commentary (especially in columns 73 through --- 13561,13567 ---- Long Lines ---------- ! Source lines longer than the applicable length are truncated to that length. Currently, `g77' does not warn if the truncated characters are not spaces, to accommodate existing code written for systems that treated truncated text as commentary (especially in columns 73 through *************** File: g77.info, Node: Ampersands, Prev *** 13575,13581 **** Ampersand Continuation Line --------------------------- ! A `&' in column 1 of fixed-form source denotes an arbitrary-length continuation line, imitating the behavior of `f2c'.  --- 13577,13583 ---- Ampersand Continuation Line --------------------------- ! A `&' in column 1 of fixed-form source denotes an arbitrary-length continuation line, imitating the behavior of `f2c'.  *************** File: g77.info, Node: Trailing Comment, *** 13584,13590 **** Trailing Comment ================ ! `g77' supports use of `/*' to start a trailing comment. In the GNU Fortran language, `!' is used for this purpose. `/*' is not in the GNU Fortran language because the use of `/*' in a --- 13586,13592 ---- Trailing Comment ================ ! `g77' supports use of `/*' to start a trailing comment. In the GNU Fortran language, `!' is used for this purpose. `/*' is not in the GNU Fortran language because the use of `/*' in a *************** File: g77.info, Node: Debug Line, Next *** 13603,13609 **** Debug Line ========== ! Use of `D' or `d' as the first character (column 1) of a source line denotes a debug line. In turn, a debug line is treated as either a comment line or a --- 13605,13611 ---- Debug Line ========== ! Use of `D' or `d' as the first character (column 1) of a source line denotes a debug line. In turn, a debug line is treated as either a comment line or a *************** File: g77.info, Node: Dollar Signs, Ne *** 13623,13629 **** Dollar Signs in Symbol Names ============================ ! Dollar signs (`$') are allowed in symbol names (after the first character) when the `-fdollar-ok' option is specified.  --- 13625,13631 ---- Dollar Signs in Symbol Names ============================ ! Dollar signs (`$') are allowed in symbol names (after the first character) when the `-fdollar-ok' option is specified.  *************** File: g77.info, Node: Case Sensitivity, *** 13632,13642 **** Case Sensitivity ================ ! GNU Fortran offers the programmer way too much flexibility in deciding ! how source files are to be treated vis-a-vis uppercase and lowercase ! characters. There are 66 useful settings that affect case sensitivity, ! plus 10 settings that are nearly useless, with the remaining 116 ! settings being either redundant or useless. None of these settings have any effect on the contents of comments (the text after a `c' or `C' in Column 1, for example) or of character --- 13634,13644 ---- Case Sensitivity ================ ! GNU Fortran offers the programmer way too much flexibility in ! deciding how source files are to be treated vis-a-vis uppercase and ! lowercase characters. There are 66 useful settings that affect case ! sensitivity, plus 10 settings that are nearly useless, with the ! remaining 116 settings being either redundant or useless. None of these settings have any effect on the contents of comments (the text after a `c' or `C' in Column 1, for example) or of character *************** File: g77.info, Node: VXT Fortran, Nex *** 13864,13871 **** VXT Fortran =========== ! `g77' supports certain constructs that have different meanings in VXT ! Fortran than they do in the GNU Fortran language. Generally, this manual uses the invented term VXT Fortran to refer VAX FORTRAN (circa v4). That compiler offered many popular features, --- 13866,13873 ---- VXT Fortran =========== ! `g77' supports certain constructs that have different meanings in ! VXT Fortran than they do in the GNU Fortran language. Generally, this manual uses the invented term VXT Fortran to refer VAX FORTRAN (circa v4). That compiler offered many popular features, *************** File: g77.info, Node: Double Quote Mean *** 13894,13900 **** Meaning of Double Quote ----------------------- ! `g77' treats double-quote (`"') as beginning an octal constant of `INTEGER(KIND=1)' type when the `-fvxt' option is specified. The form of this octal constant is --- 13896,13902 ---- Meaning of Double Quote ----------------------- ! `g77' treats double-quote (`"') as beginning an octal constant of `INTEGER(KIND=1)' type when the `-fvxt' option is specified. The form of this octal constant is *************** File: g77.info, Node: Exclamation Point *** 13924,13930 **** Meaning of Exclamation Point in Column 6 ---------------------------------------- ! `g77' treats an exclamation point (`!') in column 6 of a fixed-form source file as a continuation character rather than as the beginning of a comment (as it does in any other column) when the `-fvxt' option is specified. --- 13926,13932 ---- Meaning of Exclamation Point in Column 6 ---------------------------------------- ! `g77' treats an exclamation point (`!') in column 6 of a fixed-form source file as a continuation character rather than as the beginning of a comment (as it does in any other column) when the `-fvxt' option is specified. *************** File: g77.info, Node: Fortran 90, Next *** 13951,13958 **** Fortran 90 ========== ! The GNU Fortran language includes a number of features that are part of ! Fortran 90, even when the `-ff90' option is not specified. The features enabled by `-ff90' are intended to be those that, when `-ff90' is not specified, would have another meaning to `g77'--usually meaning something invalid in the GNU Fortran language. --- 13953,13960 ---- Fortran 90 ========== ! The GNU Fortran language includes a number of features that are part ! of Fortran 90, even when the `-ff90' option is not specified. The features enabled by `-ff90' are intended to be those that, when `-ff90' is not specified, would have another meaning to `g77'--usually meaning something invalid in the GNU Fortran language. *************** File: g77.info, Node: Pedantic Compilat *** 13977,13983 **** Pedantic Compilation ==================== ! The `-fpedantic' command-line option specifies that `g77' is to warn about code that is not standard-conforming. This is useful for finding some extensions `g77' accepts that other compilers might not accept. (Note that the `-pedantic' and `-pedantic-errors' options always imply --- 13979,13985 ---- Pedantic Compilation ==================== ! The `-fpedantic' command-line option specifies that `g77' is to warn about code that is not standard-conforming. This is useful for finding some extensions `g77' accepts that other compilers might not accept. (Note that the `-pedantic' and `-pedantic-errors' options always imply *************** File: g77.info, Node: Distensions, Pre *** 14099,14110 **** Distensions =========== ! The `-fugly-*' command-line options determine whether certain features ! supported by VAX FORTRAN and other such compilers, but considered too ! ugly to be in code that can be changed to use safer and/or more ! portable constructs, are accepted. These are humorously referred to as ! "distensions", extensions that just plain look ugly in the harsh light ! of day. * Menu: --- 14101,14112 ---- Distensions =========== ! The `-fugly-*' command-line options determine whether certain ! features supported by VAX FORTRAN and other such compilers, but ! considered too ugly to be in code that can be changed to use safer ! and/or more portable constructs, are accepted. These are humorously ! referred to as "distensions", extensions that just plain look ugly in ! the harsh light of day. * Menu: *************** File: g77.info, Node: Ugly Implicit Arg *** 14122,14128 **** Implicit Argument Conversion ---------------------------- ! The `-fno-ugly-args' option disables passing typeless and Hollerith constants as actual arguments in procedure invocations. For example: CALL FOO(4HABCD) --- 14124,14130 ---- Implicit Argument Conversion ---------------------------- ! The `-fno-ugly-args' option disables passing typeless and Hollerith constants as actual arguments in procedure invocations. For example: CALL FOO(4HABCD) *************** File: g77.info, Node: Ugly Assumed-Size *** 14139,14146 **** Ugly Assumed-Size Arrays ------------------------ ! The `-fugly-assumed' option enables the treatment of any array with a ! final dimension specified as `1' as an assumed-size array, as if `*' had been specified instead. For example, `DIMENSION X(1)' is treated as if it had read --- 14141,14148 ---- Ugly Assumed-Size Arrays ------------------------ ! The `-fugly-assumed' option enables the treatment of any array with ! a final dimension specified as `1' as an assumed-size array, as if `*' had been specified instead. For example, `DIMENSION X(1)' is treated as if it had read *************** File: g77.info, Node: Ugly Complex Part *** 14182,14188 **** Ugly Complex Part Extraction ---------------------------- ! The `-fugly-complex' option enables use of the `REAL()' and `AIMAG()' intrinsics with arguments that are `COMPLEX' types other than `COMPLEX(KIND=1)'. --- 14184,14190 ---- Ugly Complex Part Extraction ---------------------------- ! The `-fugly-complex' option enables use of the `REAL()' and `AIMAG()' intrinsics with arguments that are `COMPLEX' types other than `COMPLEX(KIND=1)'. *************** File: g77.info, Node: Ugly Null Argumen *** 14223,14229 **** Ugly Null Arguments ------------------- ! The `-fugly-comma' option enables use of a single trailing comma to mean "pass an extra trailing null argument" in a list of actual arguments to an external procedure, and use of an empty list of arguments to such a procedure to mean "pass a single null argument". --- 14225,14231 ---- Ugly Null Arguments ------------------- ! The `-fugly-comma' option enables use of a single trailing comma to mean "pass an extra trailing null argument" in a list of actual arguments to an external procedure, and use of an empty list of arguments to such a procedure to mean "pass a single null argument". *************** File: g77.info, Node: Ugly Conversion o *** 14260,14266 **** Ugly Conversion of Initializers ------------------------------- ! The constructs disabled by `-fno-ugly-init' are: * Use of Hollerith and typeless constants in contexts where they set initial (compile-time) values for variables, arrays, and named --- 14262,14268 ---- Ugly Conversion of Initializers ------------------------------- ! The constructs disabled by `-fno-ugly-init' are: * Use of Hollerith and typeless constants in contexts where they set initial (compile-time) values for variables, arrays, and named *************** File: g77.info, Node: Ugly Integer Conv *** 14307,14313 **** Ugly Integer Conversions ------------------------ ! The constructs enabled via `-fugly-logint' are: * Automatic conversion between `INTEGER' and `LOGICAL' as dictated by context (typically implies nonportable dependencies on how a --- 14309,14315 ---- Ugly Integer Conversions ------------------------ ! The constructs enabled via `-fugly-logint' are: * Automatic conversion between `INTEGER' and `LOGICAL' as dictated by context (typically implies nonportable dependencies on how a *************** File: g77.info, Node: Ugly Assigned Lab *** 14334,14340 **** Ugly Assigned Labels -------------------- ! The `-fugly-assign' option forces `g77' to use the same storage for assigned labels as it would for a normal assignment to the same variable. --- 14336,14342 ---- Ugly Assigned Labels -------------------- ! The `-fugly-assign' option forces `g77' to use the same storage for assigned labels as it would for a normal assignment to the same variable. *************** File: g77.info, Node: Compiler, Next: *** 14387,14394 **** The GNU Fortran Compiler ************************ ! The GNU Fortran compiler, `g77', supports programs written in the GNU ! Fortran language and in some other dialects of Fortran. Some aspects of how `g77' works are universal regardless of dialect, and yet are not properly part of the GNU Fortran language itself. --- 14389,14396 ---- The GNU Fortran Compiler ************************ ! The GNU Fortran compiler, `g77', supports programs written in the ! GNU Fortran language and in some other dialects of Fortran. Some aspects of how `g77' works are universal regardless of dialect, and yet are not properly part of the GNU Fortran language itself. *************** File: g77.info, Node: Compiler Limits, *** 14411,14419 **** Compiler Limits =============== ! `g77', as with GNU tools in general, imposes few arbitrary restrictions ! on lengths of identifiers, number of continuation lines, number of ! external symbols in a program, and so on. For example, some other Fortran compiler have an option (such as `-NlX') to increase the limit on the number of continuation lines. --- 14413,14421 ---- Compiler Limits =============== ! `g77', as with GNU tools in general, imposes few arbitrary ! restrictions on lengths of identifiers, number of continuation lines, ! number of external symbols in a program, and so on. For example, some other Fortran compiler have an option (such as `-NlX') to increase the limit on the number of continuation lines. *************** File: g77.info, Node: Run-time Environm *** 14433,14439 **** Run-time Environment Limits =========================== ! As a portable Fortran implementation, `g77' offers its users direct access to, and otherwise depends upon, the underlying facilities of the system used to build `g77', the system on which `g77' itself is used to compile programs, and the system on which the `g77'-compiled program is --- 14435,14441 ---- Run-time Environment Limits =========================== ! As a portable Fortran implementation, `g77' offers its users direct access to, and otherwise depends upon, the underlying facilities of the system used to build `g77', the system on which `g77' itself is used to compile programs, and the system on which the `g77'-compiled program is *************** File: g77.info, Node: Timer Wraparounds *** 14481,14487 **** Timer Wraparounds ----------------- ! Intrinsics that return values computed from system timers, whether elapsed (wall-clock) timers, process CPU timers, or other kinds of timers, are prone to experiencing wrap-around errors (or returning wrapped-around values from successive calls) due to insufficient ranges --- 14483,14489 ---- Timer Wraparounds ----------------- ! Intrinsics that return values computed from system timers, whether elapsed (wall-clock) timers, process CPU timers, or other kinds of timers, are prone to experiencing wrap-around errors (or returning wrapped-around values from successive calls) due to insufficient ranges *************** File: g77.info, Node: Year 2000 (Y2K) P *** 14508,14514 **** Year 2000 (Y2K) Problems ------------------------ ! While the `g77' compiler itself is believed to be Year-2000 (Y2K) compliant, some intrinsics are not, and, potentially, some underlying systems are not, perhaps rendering some Y2K-compliant intrinsics non-compliant when used on those particular systems. --- 14510,14516 ---- Year 2000 (Y2K) Problems ------------------------ ! While the `g77' compiler itself is believed to be Year-2000 (Y2K) compliant, some intrinsics are not, and, potentially, some underlying systems are not, perhaps rendering some Y2K-compliant intrinsics non-compliant when used on those particular systems. *************** File: g77.info, Node: Array Size, Next *** 14604,14610 **** Array Size ---------- ! Currently, `g77' uses the default `INTEGER' type for array indexes, which limits the sizes of single-dimension arrays on systems offering a larger address space than can be addressed by that type. (That `g77' puts all arrays in memory could be considered another limitation--it --- 14606,14612 ---- Array Size ---------- ! Currently, `g77' uses the default `INTEGER' type for array indexes, which limits the sizes of single-dimension arrays on systems offering a larger address space than can be addressed by that type. (That `g77' puts all arrays in memory could be considered another limitation--it *************** File: g77.info, Node: Character-variabl *** 14630,14636 **** Character-variable Length ------------------------- ! Currently, `g77' uses the default `INTEGER' type for the lengths of `CHARACTER' variables and array elements. This means that, for example, a system with a 64-bit address space --- 14632,14638 ---- Character-variable Length ------------------------- ! Currently, `g77' uses the default `INTEGER' type for the lengths of `CHARACTER' variables and array elements. This means that, for example, a system with a 64-bit address space *************** File: g77.info, Node: Year 10000 (Y10K) *** 14643,14649 **** Year 10000 (Y10K) Problems -------------------------- ! Most intrinsics returning, or computing values based on, date information are prone to Year-10000 (Y10K) problems, due to supporting only 4 digits for the year. --- 14645,14651 ---- Year 10000 (Y10K) Problems -------------------------- ! Most intrinsics returning, or computing values based on, date information are prone to Year-10000 (Y10K) problems, due to supporting only 4 digits for the year. *************** File: g77.info, Node: Compiler Types, *** 14657,14669 **** Compiler Types ============== ! Fortran implementations have a fair amount of freedom given them by the ! standard as far as how much storage space is used and how much precision ! and range is offered by the various types such as `LOGICAL(KIND=1)', ! `INTEGER(KIND=1)', `REAL(KIND=1)', `REAL(KIND=2)', `COMPLEX(KIND=1)', ! and `CHARACTER'. Further, many compilers offer so-called `*N' ! notation, but the interpretation of N varies across compilers and ! target architectures. The standard requires that `LOGICAL(KIND=1)', `INTEGER(KIND=1)', and `REAL(KIND=1)' occupy the same amount of storage space, and that --- 14659,14671 ---- Compiler Types ============== ! Fortran implementations have a fair amount of freedom given them by ! the standard as far as how much storage space is used and how much ! precision and range is offered by the various types such as ! `LOGICAL(KIND=1)', `INTEGER(KIND=1)', `REAL(KIND=1)', `REAL(KIND=2)', ! `COMPLEX(KIND=1)', and `CHARACTER'. Further, many compilers offer ! so-called `*N' notation, but the interpretation of N varies across ! compilers and target architectures. The standard requires that `LOGICAL(KIND=1)', `INTEGER(KIND=1)', and `REAL(KIND=1)' occupy the same amount of storage space, and that *************** File: g77.info, Node: Compiler Constant *** 14774,14780 **** Compiler Constants ================== ! `g77' strictly assigns types to _all_ constants not documented as "typeless" (typeless constants including `'1'Z', for example). Many other Fortran compilers attempt to assign types to typed constants based on their context. This results in hard-to-find bugs, nonportable --- 14776,14782 ---- Compiler Constants ================== ! `g77' strictly assigns types to _all_ constants not documented as "typeless" (typeless constants including `'1'Z', for example). Many other Fortran compilers attempt to assign types to typed constants based on their context. This results in hard-to-find bugs, nonportable *************** File: g77.info, Node: Compiler Intrinsi *** 14795,14802 **** Compiler Intrinsics =================== ! `g77' offers an ever-widening set of intrinsics. Currently these all ! are procedures (functions and subroutines). Some of these intrinsics are unimplemented, but their names reserved to reduce future problems with existing code as they are implemented. --- 14797,14804 ---- Compiler Intrinsics =================== ! `g77' offers an ever-widening set of intrinsics. Currently these ! all are procedures (functions and subroutines). Some of these intrinsics are unimplemented, but their names reserved to reduce future problems with existing code as they are implemented. *************** File: g77.info, Node: Intrinsic Groups, *** 14820,14828 **** Intrinsic Groups ---------------- ! A given specific intrinsic belongs in one or more groups. Each group ! is deleted, disabled, hidden, or enabled by default or a command-line ! option. The meaning of each term follows. Deleted No intrinsics are recognized as belonging to that group. --- 14822,14830 ---- Intrinsic Groups ---------------- ! A given specific intrinsic belongs in one or more groups. Each ! group is deleted, disabled, hidden, or enabled by default or a ! command-line option. The meaning of each term follows. Deleted No intrinsics are recognized as belonging to that group. *************** File: g77.info, Node: Other Intrinsics, *** 14912,14919 **** Other Intrinsics ---------------- ! `g77' supports intrinsics other than those in the GNU Fortran language ! proper. This set of intrinsics is described below. (Note that the empty lines appearing in the menu below are not intentional--they result from a bug in the `makeinfo' program.) --- 14914,14921 ---- Other Intrinsics ---------------- ! `g77' supports intrinsics other than those in the GNU Fortran ! language proper. This set of intrinsics is described below. (Note that the empty lines appearing in the menu below are not intentional--they result from a bug in the `makeinfo' program.) *************** File: g77.info, Node: ACosD Intrinsic, *** 15113,15121 **** ACosD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL ACosD' to use this name for an external ! procedure.  File: g77.info, Node: AIMax0 Intrinsic, Next: AIMin0 Intrinsic, Prev: ACosD Intrinsic, Up: Other Intrinsics --- 15115,15123 ---- ACosD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL ACosD' to use this name for an ! external procedure.  File: g77.info, Node: AIMax0 Intrinsic, Next: AIMin0 Intrinsic, Prev: ACosD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: AIMax0 Intrinsic, *** 15123,15130 **** AIMax0 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AIMax0' to use this name for an external procedure.  --- 15125,15132 ---- AIMax0 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AIMax0' to use this name for an external procedure.  *************** File: g77.info, Node: AIMin0 Intrinsic, *** 15133,15140 **** AIMin0 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AIMin0' to use this name for an external procedure.  --- 15135,15142 ---- AIMin0 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AIMin0' to use this name for an external procedure.  *************** File: g77.info, Node: AJMax0 Intrinsic, *** 15143,15150 **** AJMax0 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AJMax0' to use this name for an external procedure.  --- 15145,15152 ---- AJMax0 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AJMax0' to use this name for an external procedure.  *************** File: g77.info, Node: AJMin0 Intrinsic, *** 15153,15160 **** AJMin0 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL AJMin0' to use this name for an external procedure.  --- 15155,15162 ---- AJMin0 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL AJMin0' to use this name for an external procedure.  *************** File: g77.info, Node: ASinD Intrinsic, *** 15163,15171 **** ASinD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL ASinD' to use this name for an external ! procedure.  File: g77.info, Node: ATan2D Intrinsic, Next: ATanD Intrinsic, Prev: ASinD Intrinsic, Up: Other Intrinsics --- 15165,15173 ---- ASinD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL ASinD' to use this name for an ! external procedure.  File: g77.info, Node: ATan2D Intrinsic, Next: ATanD Intrinsic, Prev: ASinD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: ATan2D Intrinsic, *** 15173,15180 **** ATan2D Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL ATan2D' to use this name for an external procedure.  --- 15175,15182 ---- ATan2D Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL ATan2D' to use this name for an external procedure.  *************** File: g77.info, Node: ATanD Intrinsic, *** 15183,15191 **** ATanD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL ATanD' to use this name for an external ! procedure.  File: g77.info, Node: BITest Intrinsic, Next: BJTest Intrinsic, Prev: ATanD Intrinsic, Up: Other Intrinsics --- 15185,15193 ---- ATanD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL ATanD' to use this name for an ! external procedure.  File: g77.info, Node: BITest Intrinsic, Next: BJTest Intrinsic, Prev: ATanD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: BITest Intrinsic, *** 15193,15200 **** BITest Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL BITest' to use this name for an external procedure.  --- 15195,15202 ---- BITest Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL BITest' to use this name for an external procedure.  *************** File: g77.info, Node: BJTest Intrinsic, *** 15203,15210 **** BJTest Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL BJTest' to use this name for an external procedure.  --- 15205,15212 ---- BJTest Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL BJTest' to use this name for an external procedure.  *************** File: g77.info, Node: CosD Intrinsic, *** 15392,15400 **** CosD Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL CosD' to use this name for an external ! procedure.  File: g77.info, Node: DACosD Intrinsic, Next: DASinD Intrinsic, Prev: CosD Intrinsic, Up: Other Intrinsics --- 15394,15402 ---- CosD Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL CosD' to use this name for an ! external procedure.  File: g77.info, Node: DACosD Intrinsic, Next: DASinD Intrinsic, Prev: CosD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: DACosD Intrinsic, *** 15402,15409 **** DACosD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DACosD' to use this name for an external procedure.  --- 15404,15411 ---- DACosD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DACosD' to use this name for an external procedure.  *************** File: g77.info, Node: DASinD Intrinsic, *** 15412,15419 **** DASinD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DASinD' to use this name for an external procedure.  --- 15414,15421 ---- DASinD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DASinD' to use this name for an external procedure.  *************** File: g77.info, Node: DATan2D Intrinsic *** 15422,15430 **** DATan2D Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DATan2D' to use this name for an ! external procedure.  File: g77.info, Node: DATanD Intrinsic, Next: Date Intrinsic, Prev: DATan2D Intrinsic, Up: Other Intrinsics --- 15424,15432 ---- DATan2D Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DATan2D' to use this name for ! an external procedure.  File: g77.info, Node: DATanD Intrinsic, Next: Date Intrinsic, Prev: DATan2D Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: DATanD Intrinsic, *** 15432,15439 **** DATanD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DATanD' to use this name for an external procedure.  --- 15434,15441 ---- DATanD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DATanD' to use this name for an external procedure.  *************** File: g77.info, Node: DbleQ Intrinsic, *** 15465,15473 **** DbleQ Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DbleQ' to use this name for an external ! procedure.  File: g77.info, Node: DCmplx Intrinsic, Next: DConjg Intrinsic, Prev: DbleQ Intrinsic, Up: Other Intrinsics --- 15467,15475 ---- DbleQ Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DbleQ' to use this name for an ! external procedure.  File: g77.info, Node: DCmplx Intrinsic, Next: DConjg Intrinsic, Prev: DbleQ Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: DCosD Intrinsic, *** 15537,15545 **** DCosD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DCosD' to use this name for an external ! procedure.  File: g77.info, Node: DFloat Intrinsic, Next: DFlotI Intrinsic, Prev: DCosD Intrinsic, Up: Other Intrinsics --- 15539,15547 ---- DCosD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DCosD' to use this name for an ! external procedure.  File: g77.info, Node: DFloat Intrinsic, Next: DFlotI Intrinsic, Prev: DCosD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: DFlotI Intrinsic, *** 15566,15573 **** DFlotI Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DFlotI' to use this name for an external procedure.  --- 15568,15575 ---- DFlotI Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DFlotI' to use this name for an external procedure.  *************** File: g77.info, Node: DFlotJ Intrinsic, *** 15576,15583 **** DFlotJ Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DFlotJ' to use this name for an external procedure.  --- 15578,15585 ---- DFlotJ Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DFlotJ' to use this name for an external procedure.  *************** File: g77.info, Node: DSinD Intrinsic, *** 15642,15650 **** DSinD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DSinD' to use this name for an external ! procedure.  File: g77.info, Node: DTanD Intrinsic, Next: DTime Intrinsic (function), Prev: DSinD Intrinsic, Up: Other Intrinsics --- 15644,15652 ---- DSinD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DSinD' to use this name for an ! external procedure.  File: g77.info, Node: DTanD Intrinsic, Next: DTime Intrinsic (function), Prev: DSinD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: DTanD Intrinsic, *** 15652,15660 **** DTanD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL DTanD' to use this name for an external ! procedure.  File: g77.info, Node: DTime Intrinsic (function), Next: FGet Intrinsic (function), Prev: DTanD Intrinsic, Up: Other Intrinsics --- 15654,15662 ---- DTanD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL DTanD' to use this name for an ! external procedure.  File: g77.info, Node: DTime Intrinsic (function), Next: FGet Intrinsic (function), Prev: DTanD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: FloatI Intrinsic, *** 15756,15763 **** FloatI Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL FloatI' to use this name for an external procedure.  --- 15758,15765 ---- FloatI Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL FloatI' to use this name for an external procedure.  *************** File: g77.info, Node: FloatJ Intrinsic, *** 15766,15773 **** FloatJ Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL FloatJ' to use this name for an external procedure.  --- 15768,15775 ---- FloatJ Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL FloatJ' to use this name for an external procedure.  *************** File: g77.info, Node: IIAbs Intrinsic, *** 15867,15875 **** IIAbs Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIAbs' to use this name for an external ! procedure.  File: g77.info, Node: IIAnd Intrinsic, Next: IIBClr Intrinsic, Prev: IIAbs Intrinsic, Up: Other Intrinsics --- 15869,15877 ---- IIAbs Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIAbs' to use this name for an ! external procedure.  File: g77.info, Node: IIAnd Intrinsic, Next: IIBClr Intrinsic, Prev: IIAbs Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IIAnd Intrinsic, *** 15877,15885 **** IIAnd Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIAnd' to use this name for an external ! procedure.  File: g77.info, Node: IIBClr Intrinsic, Next: IIBits Intrinsic, Prev: IIAnd Intrinsic, Up: Other Intrinsics --- 15879,15887 ---- IIAnd Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIAnd' to use this name for an ! external procedure.  File: g77.info, Node: IIBClr Intrinsic, Next: IIBits Intrinsic, Prev: IIAnd Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IIBClr Intrinsic, *** 15887,15894 **** IIBClr Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIBClr' to use this name for an external procedure.  --- 15889,15896 ---- IIBClr Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIBClr' to use this name for an external procedure.  *************** File: g77.info, Node: IIBits Intrinsic, *** 15897,15904 **** IIBits Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIBits' to use this name for an external procedure.  --- 15899,15906 ---- IIBits Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIBits' to use this name for an external procedure.  *************** File: g77.info, Node: IIBSet Intrinsic, *** 15907,15914 **** IIBSet Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIBSet' to use this name for an external procedure.  --- 15909,15916 ---- IIBSet Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIBSet' to use this name for an external procedure.  *************** File: g77.info, Node: IIDiM Intrinsic, *** 15917,15925 **** IIDiM Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIDiM' to use this name for an external ! procedure.  File: g77.info, Node: IIDInt Intrinsic, Next: IIDNnt Intrinsic, Prev: IIDiM Intrinsic, Up: Other Intrinsics --- 15919,15927 ---- IIDiM Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIDiM' to use this name for an ! external procedure.  File: g77.info, Node: IIDInt Intrinsic, Next: IIDNnt Intrinsic, Prev: IIDiM Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IIDInt Intrinsic, *** 15927,15934 **** IIDInt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIDInt' to use this name for an external procedure.  --- 15929,15936 ---- IIDInt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIDInt' to use this name for an external procedure.  *************** File: g77.info, Node: IIDNnt Intrinsic, *** 15937,15944 **** IIDNnt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIDNnt' to use this name for an external procedure.  --- 15939,15946 ---- IIDNnt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIDNnt' to use this name for an external procedure.  *************** File: g77.info, Node: IIEOr Intrinsic, *** 15947,15955 **** IIEOr Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIEOr' to use this name for an external ! procedure.  File: g77.info, Node: IIFix Intrinsic, Next: IInt Intrinsic, Prev: IIEOr Intrinsic, Up: Other Intrinsics --- 15949,15957 ---- IIEOr Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIEOr' to use this name for an ! external procedure.  File: g77.info, Node: IIFix Intrinsic, Next: IInt Intrinsic, Prev: IIEOr Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IIFix Intrinsic, *** 15957,15965 **** IIFix Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIFix' to use this name for an external ! procedure.  File: g77.info, Node: IInt Intrinsic, Next: IIOr Intrinsic, Prev: IIFix Intrinsic, Up: Other Intrinsics --- 15959,15967 ---- IIFix Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIFix' to use this name for an ! external procedure.  File: g77.info, Node: IInt Intrinsic, Next: IIOr Intrinsic, Prev: IIFix Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IInt Intrinsic, *** 15967,15975 **** IInt Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IInt' to use this name for an external ! procedure.  File: g77.info, Node: IIOr Intrinsic, Next: IIQint Intrinsic, Prev: IInt Intrinsic, Up: Other Intrinsics --- 15969,15977 ---- IInt Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IInt' to use this name for an ! external procedure.  File: g77.info, Node: IIOr Intrinsic, Next: IIQint Intrinsic, Prev: IInt Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IIOr Intrinsic, *** 15977,15985 **** IIOr Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIOr' to use this name for an external ! procedure.  File: g77.info, Node: IIQint Intrinsic, Next: IIQNnt Intrinsic, Prev: IIOr Intrinsic, Up: Other Intrinsics --- 15979,15987 ---- IIOr Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIOr' to use this name for an ! external procedure.  File: g77.info, Node: IIQint Intrinsic, Next: IIQNnt Intrinsic, Prev: IIOr Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IIQint Intrinsic, *** 15987,15994 **** IIQint Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIQint' to use this name for an external procedure.  --- 15989,15996 ---- IIQint Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIQint' to use this name for an external procedure.  *************** File: g77.info, Node: IIQNnt Intrinsic, *** 15997,16004 **** IIQNnt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIQNnt' to use this name for an external procedure.  --- 15999,16006 ---- IIQNnt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIQNnt' to use this name for an external procedure.  *************** File: g77.info, Node: IIShftC Intrinsic *** 16007,16015 **** IIShftC Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IIShftC' to use this name for an ! external procedure.  File: g77.info, Node: IISign Intrinsic, Next: IMax0 Intrinsic, Prev: IIShftC Intrinsic, Up: Other Intrinsics --- 16009,16017 ---- IIShftC Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IIShftC' to use this name for ! an external procedure.  File: g77.info, Node: IISign Intrinsic, Next: IMax0 Intrinsic, Prev: IIShftC Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IISign Intrinsic, *** 16017,16024 **** IISign Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IISign' to use this name for an external procedure.  --- 16019,16026 ---- IISign Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IISign' to use this name for an external procedure.  *************** File: g77.info, Node: IMax0 Intrinsic, *** 16027,16035 **** IMax0 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IMax0' to use this name for an external ! procedure.  File: g77.info, Node: IMax1 Intrinsic, Next: IMin0 Intrinsic, Prev: IMax0 Intrinsic, Up: Other Intrinsics --- 16029,16037 ---- IMax0 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IMax0' to use this name for an ! external procedure.  File: g77.info, Node: IMax1 Intrinsic, Next: IMin0 Intrinsic, Prev: IMax0 Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IMax1 Intrinsic, *** 16037,16045 **** IMax1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IMax1' to use this name for an external ! procedure.  File: g77.info, Node: IMin0 Intrinsic, Next: IMin1 Intrinsic, Prev: IMax1 Intrinsic, Up: Other Intrinsics --- 16039,16047 ---- IMax1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IMax1' to use this name for an ! external procedure.  File: g77.info, Node: IMin0 Intrinsic, Next: IMin1 Intrinsic, Prev: IMax1 Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IMin0 Intrinsic, *** 16047,16055 **** IMin0 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IMin0' to use this name for an external ! procedure.  File: g77.info, Node: IMin1 Intrinsic, Next: IMod Intrinsic, Prev: IMin0 Intrinsic, Up: Other Intrinsics --- 16049,16057 ---- IMin0 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IMin0' to use this name for an ! external procedure.  File: g77.info, Node: IMin1 Intrinsic, Next: IMod Intrinsic, Prev: IMin0 Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IMin1 Intrinsic, *** 16057,16065 **** IMin1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IMin1' to use this name for an external ! procedure.  File: g77.info, Node: IMod Intrinsic, Next: INInt Intrinsic, Prev: IMin1 Intrinsic, Up: Other Intrinsics --- 16059,16067 ---- IMin1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IMin1' to use this name for an ! external procedure.  File: g77.info, Node: IMod Intrinsic, Next: INInt Intrinsic, Prev: IMin1 Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IMod Intrinsic, *** 16067,16075 **** IMod Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IMod' to use this name for an external ! procedure.  File: g77.info, Node: INInt Intrinsic, Next: INot Intrinsic, Prev: IMod Intrinsic, Up: Other Intrinsics --- 16069,16077 ---- IMod Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IMod' to use this name for an ! external procedure.  File: g77.info, Node: INInt Intrinsic, Next: INot Intrinsic, Prev: IMod Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: INInt Intrinsic, *** 16077,16085 **** INInt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL INInt' to use this name for an external ! procedure.  File: g77.info, Node: INot Intrinsic, Next: IZExt Intrinsic, Prev: INInt Intrinsic, Up: Other Intrinsics --- 16079,16087 ---- INInt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL INInt' to use this name for an ! external procedure.  File: g77.info, Node: INot Intrinsic, Next: IZExt Intrinsic, Prev: INInt Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: INot Intrinsic, *** 16087,16095 **** INot Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL INot' to use this name for an external ! procedure.  File: g77.info, Node: IZExt Intrinsic, Next: JIAbs Intrinsic, Prev: INot Intrinsic, Up: Other Intrinsics --- 16089,16097 ---- INot Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL INot' to use this name for an ! external procedure.  File: g77.info, Node: IZExt Intrinsic, Next: JIAbs Intrinsic, Prev: INot Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: IZExt Intrinsic, *** 16097,16105 **** IZExt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL IZExt' to use this name for an external ! procedure.  File: g77.info, Node: JIAbs Intrinsic, Next: JIAnd Intrinsic, Prev: IZExt Intrinsic, Up: Other Intrinsics --- 16099,16107 ---- IZExt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL IZExt' to use this name for an ! external procedure.  File: g77.info, Node: JIAbs Intrinsic, Next: JIAnd Intrinsic, Prev: IZExt Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JIAbs Intrinsic, *** 16107,16115 **** JIAbs Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIAbs' to use this name for an external ! procedure.  File: g77.info, Node: JIAnd Intrinsic, Next: JIBClr Intrinsic, Prev: JIAbs Intrinsic, Up: Other Intrinsics --- 16109,16117 ---- JIAbs Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIAbs' to use this name for an ! external procedure.  File: g77.info, Node: JIAnd Intrinsic, Next: JIBClr Intrinsic, Prev: JIAbs Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JIAnd Intrinsic, *** 16117,16125 **** JIAnd Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIAnd' to use this name for an external ! procedure.  File: g77.info, Node: JIBClr Intrinsic, Next: JIBits Intrinsic, Prev: JIAnd Intrinsic, Up: Other Intrinsics --- 16119,16127 ---- JIAnd Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIAnd' to use this name for an ! external procedure.  File: g77.info, Node: JIBClr Intrinsic, Next: JIBits Intrinsic, Prev: JIAnd Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JIBClr Intrinsic, *** 16127,16134 **** JIBClr Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIBClr' to use this name for an external procedure.  --- 16129,16136 ---- JIBClr Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIBClr' to use this name for an external procedure.  *************** File: g77.info, Node: JIBits Intrinsic, *** 16137,16144 **** JIBits Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIBits' to use this name for an external procedure.  --- 16139,16146 ---- JIBits Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIBits' to use this name for an external procedure.  *************** File: g77.info, Node: JIBSet Intrinsic, *** 16147,16154 **** JIBSet Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIBSet' to use this name for an external procedure.  --- 16149,16156 ---- JIBSet Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIBSet' to use this name for an external procedure.  *************** File: g77.info, Node: JIDiM Intrinsic, *** 16157,16165 **** JIDiM Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIDiM' to use this name for an external ! procedure.  File: g77.info, Node: JIDInt Intrinsic, Next: JIDNnt Intrinsic, Prev: JIDiM Intrinsic, Up: Other Intrinsics --- 16159,16167 ---- JIDiM Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIDiM' to use this name for an ! external procedure.  File: g77.info, Node: JIDInt Intrinsic, Next: JIDNnt Intrinsic, Prev: JIDiM Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JIDInt Intrinsic, *** 16167,16174 **** JIDInt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIDInt' to use this name for an external procedure.  --- 16169,16176 ---- JIDInt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIDInt' to use this name for an external procedure.  *************** File: g77.info, Node: JIDNnt Intrinsic, *** 16177,16184 **** JIDNnt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIDNnt' to use this name for an external procedure.  --- 16179,16186 ---- JIDNnt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIDNnt' to use this name for an external procedure.  *************** File: g77.info, Node: JIEOr Intrinsic, *** 16187,16195 **** JIEOr Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIEOr' to use this name for an external ! procedure.  File: g77.info, Node: JIFix Intrinsic, Next: JInt Intrinsic, Prev: JIEOr Intrinsic, Up: Other Intrinsics --- 16189,16197 ---- JIEOr Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIEOr' to use this name for an ! external procedure.  File: g77.info, Node: JIFix Intrinsic, Next: JInt Intrinsic, Prev: JIEOr Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JIFix Intrinsic, *** 16197,16205 **** JIFix Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIFix' to use this name for an external ! procedure.  File: g77.info, Node: JInt Intrinsic, Next: JIOr Intrinsic, Prev: JIFix Intrinsic, Up: Other Intrinsics --- 16199,16207 ---- JIFix Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIFix' to use this name for an ! external procedure.  File: g77.info, Node: JInt Intrinsic, Next: JIOr Intrinsic, Prev: JIFix Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JInt Intrinsic, *** 16207,16215 **** JInt Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JInt' to use this name for an external ! procedure.  File: g77.info, Node: JIOr Intrinsic, Next: JIQint Intrinsic, Prev: JInt Intrinsic, Up: Other Intrinsics --- 16209,16217 ---- JInt Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JInt' to use this name for an ! external procedure.  File: g77.info, Node: JIOr Intrinsic, Next: JIQint Intrinsic, Prev: JInt Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JIOr Intrinsic, *** 16217,16225 **** JIOr Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIOr' to use this name for an external ! procedure.  File: g77.info, Node: JIQint Intrinsic, Next: JIQNnt Intrinsic, Prev: JIOr Intrinsic, Up: Other Intrinsics --- 16219,16227 ---- JIOr Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIOr' to use this name for an ! external procedure.  File: g77.info, Node: JIQint Intrinsic, Next: JIQNnt Intrinsic, Prev: JIOr Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JIQint Intrinsic, *** 16227,16234 **** JIQint Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIQint' to use this name for an external procedure.  --- 16229,16236 ---- JIQint Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIQint' to use this name for an external procedure.  *************** File: g77.info, Node: JIQNnt Intrinsic, *** 16237,16244 **** JIQNnt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIQNnt' to use this name for an external procedure.  --- 16239,16246 ---- JIQNnt Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIQNnt' to use this name for an external procedure.  *************** File: g77.info, Node: JIShft Intrinsic, *** 16247,16254 **** JIShft Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIShft' to use this name for an external procedure.  --- 16249,16256 ---- JIShft Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIShft' to use this name for an external procedure.  *************** File: g77.info, Node: JIShftC Intrinsic *** 16257,16265 **** JIShftC Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JIShftC' to use this name for an ! external procedure.  File: g77.info, Node: JISign Intrinsic, Next: JMax0 Intrinsic, Prev: JIShftC Intrinsic, Up: Other Intrinsics --- 16259,16267 ---- JIShftC Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JIShftC' to use this name for ! an external procedure.  File: g77.info, Node: JISign Intrinsic, Next: JMax0 Intrinsic, Prev: JIShftC Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JISign Intrinsic, *** 16267,16274 **** JISign Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JISign' to use this name for an external procedure.  --- 16269,16276 ---- JISign Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JISign' to use this name for an external procedure.  *************** File: g77.info, Node: JMax0 Intrinsic, *** 16277,16285 **** JMax0 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JMax0' to use this name for an external ! procedure.  File: g77.info, Node: JMax1 Intrinsic, Next: JMin0 Intrinsic, Prev: JMax0 Intrinsic, Up: Other Intrinsics --- 16279,16287 ---- JMax0 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JMax0' to use this name for an ! external procedure.  File: g77.info, Node: JMax1 Intrinsic, Next: JMin0 Intrinsic, Prev: JMax0 Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JMax1 Intrinsic, *** 16287,16295 **** JMax1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JMax1' to use this name for an external ! procedure.  File: g77.info, Node: JMin0 Intrinsic, Next: JMin1 Intrinsic, Prev: JMax1 Intrinsic, Up: Other Intrinsics --- 16289,16297 ---- JMax1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JMax1' to use this name for an ! external procedure.  File: g77.info, Node: JMin0 Intrinsic, Next: JMin1 Intrinsic, Prev: JMax1 Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JMin0 Intrinsic, *** 16297,16305 **** JMin0 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JMin0' to use this name for an external ! procedure.  File: g77.info, Node: JMin1 Intrinsic, Next: JMod Intrinsic, Prev: JMin0 Intrinsic, Up: Other Intrinsics --- 16299,16307 ---- JMin0 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JMin0' to use this name for an ! external procedure.  File: g77.info, Node: JMin1 Intrinsic, Next: JMod Intrinsic, Prev: JMin0 Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JMin1 Intrinsic, *** 16307,16315 **** JMin1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JMin1' to use this name for an external ! procedure.  File: g77.info, Node: JMod Intrinsic, Next: JNInt Intrinsic, Prev: JMin1 Intrinsic, Up: Other Intrinsics --- 16309,16317 ---- JMin1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JMin1' to use this name for an ! external procedure.  File: g77.info, Node: JMod Intrinsic, Next: JNInt Intrinsic, Prev: JMin1 Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JMod Intrinsic, *** 16317,16325 **** JMod Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JMod' to use this name for an external ! procedure.  File: g77.info, Node: JNInt Intrinsic, Next: JNot Intrinsic, Prev: JMod Intrinsic, Up: Other Intrinsics --- 16319,16327 ---- JMod Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JMod' to use this name for an ! external procedure.  File: g77.info, Node: JNInt Intrinsic, Next: JNot Intrinsic, Prev: JMod Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JNInt Intrinsic, *** 16327,16335 **** JNInt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JNInt' to use this name for an external ! procedure.  File: g77.info, Node: JNot Intrinsic, Next: JZExt Intrinsic, Prev: JNInt Intrinsic, Up: Other Intrinsics --- 16329,16337 ---- JNInt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JNInt' to use this name for an ! external procedure.  File: g77.info, Node: JNot Intrinsic, Next: JZExt Intrinsic, Prev: JNInt Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JNot Intrinsic, *** 16337,16345 **** JNot Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JNot' to use this name for an external ! procedure.  File: g77.info, Node: JZExt Intrinsic, Next: Kill Intrinsic (function), Prev: JNot Intrinsic, Up: Other Intrinsics --- 16339,16347 ---- JNot Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JNot' to use this name for an ! external procedure.  File: g77.info, Node: JZExt Intrinsic, Next: Kill Intrinsic (function), Prev: JNot Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: JZExt Intrinsic, *** 16347,16355 **** JZExt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL JZExt' to use this name for an external ! procedure.  File: g77.info, Node: Kill Intrinsic (function), Next: Link Intrinsic (function), Prev: JZExt Intrinsic, Up: Other Intrinsics --- 16349,16357 ---- JZExt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL JZExt' to use this name for an ! external procedure.  File: g77.info, Node: Kill Intrinsic (function), Next: Link Intrinsic (function), Prev: JZExt Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QAbs Intrinsic, *** 16413,16421 **** QAbs Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QAbs' to use this name for an external ! procedure.  File: g77.info, Node: QACos Intrinsic, Next: QACosD Intrinsic, Prev: QAbs Intrinsic, Up: Other Intrinsics --- 16415,16423 ---- QAbs Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QAbs' to use this name for an ! external procedure.  File: g77.info, Node: QACos Intrinsic, Next: QACosD Intrinsic, Prev: QAbs Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QACos Intrinsic, *** 16423,16431 **** QACos Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QACos' to use this name for an external ! procedure.  File: g77.info, Node: QACosD Intrinsic, Next: QASin Intrinsic, Prev: QACos Intrinsic, Up: Other Intrinsics --- 16425,16433 ---- QACos Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QACos' to use this name for an ! external procedure.  File: g77.info, Node: QACosD Intrinsic, Next: QASin Intrinsic, Prev: QACos Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QACosD Intrinsic, *** 16433,16440 **** QACosD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QACosD' to use this name for an external procedure.  --- 16435,16442 ---- QACosD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QACosD' to use this name for an external procedure.  *************** File: g77.info, Node: QASin Intrinsic, *** 16443,16451 **** QASin Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QASin' to use this name for an external ! procedure.  File: g77.info, Node: QASinD Intrinsic, Next: QATan Intrinsic, Prev: QASin Intrinsic, Up: Other Intrinsics --- 16445,16453 ---- QASin Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QASin' to use this name for an ! external procedure.  File: g77.info, Node: QASinD Intrinsic, Next: QATan Intrinsic, Prev: QASin Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QASinD Intrinsic, *** 16453,16460 **** QASinD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QASinD' to use this name for an external procedure.  --- 16455,16462 ---- QASinD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QASinD' to use this name for an external procedure.  *************** File: g77.info, Node: QATan Intrinsic, *** 16463,16471 **** QATan Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QATan' to use this name for an external ! procedure.  File: g77.info, Node: QATan2 Intrinsic, Next: QATan2D Intrinsic, Prev: QATan Intrinsic, Up: Other Intrinsics --- 16465,16473 ---- QATan Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QATan' to use this name for an ! external procedure.  File: g77.info, Node: QATan2 Intrinsic, Next: QATan2D Intrinsic, Prev: QATan Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QATan2 Intrinsic, *** 16473,16480 **** QATan2 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QATan2' to use this name for an external procedure.  --- 16475,16482 ---- QATan2 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QATan2' to use this name for an external procedure.  *************** File: g77.info, Node: QATan2D Intrinsic *** 16483,16491 **** QATan2D Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QATan2D' to use this name for an ! external procedure.  File: g77.info, Node: QATanD Intrinsic, Next: QCos Intrinsic, Prev: QATan2D Intrinsic, Up: Other Intrinsics --- 16485,16493 ---- QATan2D Intrinsic ................. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QATan2D' to use this name for ! an external procedure.  File: g77.info, Node: QATanD Intrinsic, Next: QCos Intrinsic, Prev: QATan2D Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QATanD Intrinsic, *** 16493,16500 **** QATanD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QATanD' to use this name for an external procedure.  --- 16495,16502 ---- QATanD Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QATanD' to use this name for an external procedure.  *************** File: g77.info, Node: QCos Intrinsic, *** 16503,16511 **** QCos Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QCos' to use this name for an external ! procedure.  File: g77.info, Node: QCosD Intrinsic, Next: QCosH Intrinsic, Prev: QCos Intrinsic, Up: Other Intrinsics --- 16505,16513 ---- QCos Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QCos' to use this name for an ! external procedure.  File: g77.info, Node: QCosD Intrinsic, Next: QCosH Intrinsic, Prev: QCos Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QCosD Intrinsic, *** 16513,16521 **** QCosD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QCosD' to use this name for an external ! procedure.  File: g77.info, Node: QCosH Intrinsic, Next: QDiM Intrinsic, Prev: QCosD Intrinsic, Up: Other Intrinsics --- 16515,16523 ---- QCosD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QCosD' to use this name for an ! external procedure.  File: g77.info, Node: QCosH Intrinsic, Next: QDiM Intrinsic, Prev: QCosD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QCosH Intrinsic, *** 16523,16531 **** QCosH Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QCosH' to use this name for an external ! procedure.  File: g77.info, Node: QDiM Intrinsic, Next: QExp Intrinsic, Prev: QCosH Intrinsic, Up: Other Intrinsics --- 16525,16533 ---- QCosH Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QCosH' to use this name for an ! external procedure.  File: g77.info, Node: QDiM Intrinsic, Next: QExp Intrinsic, Prev: QCosH Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QDiM Intrinsic, *** 16533,16541 **** QDiM Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QDiM' to use this name for an external ! procedure.  File: g77.info, Node: QExp Intrinsic, Next: QExt Intrinsic, Prev: QDiM Intrinsic, Up: Other Intrinsics --- 16535,16543 ---- QDiM Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QDiM' to use this name for an ! external procedure.  File: g77.info, Node: QExp Intrinsic, Next: QExt Intrinsic, Prev: QDiM Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QExp Intrinsic, *** 16543,16551 **** QExp Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QExp' to use this name for an external ! procedure.  File: g77.info, Node: QExt Intrinsic, Next: QExtD Intrinsic, Prev: QExp Intrinsic, Up: Other Intrinsics --- 16545,16553 ---- QExp Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QExp' to use this name for an ! external procedure.  File: g77.info, Node: QExt Intrinsic, Next: QExtD Intrinsic, Prev: QExp Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QExt Intrinsic, *** 16553,16561 **** QExt Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QExt' to use this name for an external ! procedure.  File: g77.info, Node: QExtD Intrinsic, Next: QFloat Intrinsic, Prev: QExt Intrinsic, Up: Other Intrinsics --- 16555,16563 ---- QExt Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QExt' to use this name for an ! external procedure.  File: g77.info, Node: QExtD Intrinsic, Next: QFloat Intrinsic, Prev: QExt Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QExtD Intrinsic, *** 16563,16571 **** QExtD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QExtD' to use this name for an external ! procedure.  File: g77.info, Node: QFloat Intrinsic, Next: QInt Intrinsic, Prev: QExtD Intrinsic, Up: Other Intrinsics --- 16565,16573 ---- QExtD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QExtD' to use this name for an ! external procedure.  File: g77.info, Node: QFloat Intrinsic, Next: QInt Intrinsic, Prev: QExtD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QFloat Intrinsic, *** 16573,16580 **** QFloat Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QFloat' to use this name for an external procedure.  --- 16575,16582 ---- QFloat Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QFloat' to use this name for an external procedure.  *************** File: g77.info, Node: QInt Intrinsic, *** 16583,16591 **** QInt Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QInt' to use this name for an external ! procedure.  File: g77.info, Node: QLog Intrinsic, Next: QLog10 Intrinsic, Prev: QInt Intrinsic, Up: Other Intrinsics --- 16585,16593 ---- QInt Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QInt' to use this name for an ! external procedure.  File: g77.info, Node: QLog Intrinsic, Next: QLog10 Intrinsic, Prev: QInt Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QLog Intrinsic, *** 16593,16601 **** QLog Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QLog' to use this name for an external ! procedure.  File: g77.info, Node: QLog10 Intrinsic, Next: QMax1 Intrinsic, Prev: QLog Intrinsic, Up: Other Intrinsics --- 16595,16603 ---- QLog Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QLog' to use this name for an ! external procedure.  File: g77.info, Node: QLog10 Intrinsic, Next: QMax1 Intrinsic, Prev: QLog Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QLog10 Intrinsic, *** 16603,16610 **** QLog10 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QLog10' to use this name for an external procedure.  --- 16605,16612 ---- QLog10 Intrinsic ................ ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QLog10' to use this name for an external procedure.  *************** File: g77.info, Node: QMax1 Intrinsic, *** 16613,16621 **** QMax1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QMax1' to use this name for an external ! procedure.  File: g77.info, Node: QMin1 Intrinsic, Next: QMod Intrinsic, Prev: QMax1 Intrinsic, Up: Other Intrinsics --- 16615,16623 ---- QMax1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QMax1' to use this name for an ! external procedure.  File: g77.info, Node: QMin1 Intrinsic, Next: QMod Intrinsic, Prev: QMax1 Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QMin1 Intrinsic, *** 16623,16631 **** QMin1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QMin1' to use this name for an external ! procedure.  File: g77.info, Node: QMod Intrinsic, Next: QNInt Intrinsic, Prev: QMin1 Intrinsic, Up: Other Intrinsics --- 16625,16633 ---- QMin1 Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QMin1' to use this name for an ! external procedure.  File: g77.info, Node: QMod Intrinsic, Next: QNInt Intrinsic, Prev: QMin1 Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QMod Intrinsic, *** 16633,16641 **** QMod Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QMod' to use this name for an external ! procedure.  File: g77.info, Node: QNInt Intrinsic, Next: QSin Intrinsic, Prev: QMod Intrinsic, Up: Other Intrinsics --- 16635,16643 ---- QMod Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QMod' to use this name for an ! external procedure.  File: g77.info, Node: QNInt Intrinsic, Next: QSin Intrinsic, Prev: QMod Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QNInt Intrinsic, *** 16643,16651 **** QNInt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QNInt' to use this name for an external ! procedure.  File: g77.info, Node: QSin Intrinsic, Next: QSinD Intrinsic, Prev: QNInt Intrinsic, Up: Other Intrinsics --- 16645,16653 ---- QNInt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QNInt' to use this name for an ! external procedure.  File: g77.info, Node: QSin Intrinsic, Next: QSinD Intrinsic, Prev: QNInt Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QSin Intrinsic, *** 16653,16661 **** QSin Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QSin' to use this name for an external ! procedure.  File: g77.info, Node: QSinD Intrinsic, Next: QSinH Intrinsic, Prev: QSin Intrinsic, Up: Other Intrinsics --- 16655,16663 ---- QSin Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QSin' to use this name for an ! external procedure.  File: g77.info, Node: QSinD Intrinsic, Next: QSinH Intrinsic, Prev: QSin Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QSinD Intrinsic, *** 16663,16671 **** QSinD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QSinD' to use this name for an external ! procedure.  File: g77.info, Node: QSinH Intrinsic, Next: QSqRt Intrinsic, Prev: QSinD Intrinsic, Up: Other Intrinsics --- 16665,16673 ---- QSinD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QSinD' to use this name for an ! external procedure.  File: g77.info, Node: QSinH Intrinsic, Next: QSqRt Intrinsic, Prev: QSinD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QSinH Intrinsic, *** 16673,16681 **** QSinH Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QSinH' to use this name for an external ! procedure.  File: g77.info, Node: QSqRt Intrinsic, Next: QTan Intrinsic, Prev: QSinH Intrinsic, Up: Other Intrinsics --- 16675,16683 ---- QSinH Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QSinH' to use this name for an ! external procedure.  File: g77.info, Node: QSqRt Intrinsic, Next: QTan Intrinsic, Prev: QSinH Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QSqRt Intrinsic, *** 16683,16691 **** QSqRt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QSqRt' to use this name for an external ! procedure.  File: g77.info, Node: QTan Intrinsic, Next: QTanD Intrinsic, Prev: QSqRt Intrinsic, Up: Other Intrinsics --- 16685,16693 ---- QSqRt Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QSqRt' to use this name for an ! external procedure.  File: g77.info, Node: QTan Intrinsic, Next: QTanD Intrinsic, Prev: QSqRt Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QTan Intrinsic, *** 16693,16701 **** QTan Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QTan' to use this name for an external ! procedure.  File: g77.info, Node: QTanD Intrinsic, Next: QTanH Intrinsic, Prev: QTan Intrinsic, Up: Other Intrinsics --- 16695,16703 ---- QTan Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QTan' to use this name for an ! external procedure.  File: g77.info, Node: QTanD Intrinsic, Next: QTanH Intrinsic, Prev: QTan Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QTanD Intrinsic, *** 16703,16711 **** QTanD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QTanD' to use this name for an external ! procedure.  File: g77.info, Node: QTanH Intrinsic, Next: Rename Intrinsic (function), Prev: QTanD Intrinsic, Up: Other Intrinsics --- 16705,16713 ---- QTanD Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QTanD' to use this name for an ! external procedure.  File: g77.info, Node: QTanH Intrinsic, Next: Rename Intrinsic (function), Prev: QTanD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: QTanH Intrinsic, *** 16713,16721 **** QTanH Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL QTanH' to use this name for an external ! procedure.  File: g77.info, Node: Rename Intrinsic (function), Next: Secnds Intrinsic, Prev: QTanH Intrinsic, Up: Other Intrinsics --- 16715,16723 ---- QTanH Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL QTanH' to use this name for an ! external procedure.  File: g77.info, Node: Rename Intrinsic (function), Next: Secnds Intrinsic, Prev: QTanH Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: SinD Intrinsic, *** 16855,16863 **** SinD Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL SinD' to use this name for an external ! procedure.  File: g77.info, Node: SnglQ Intrinsic, Next: SymLnk Intrinsic (function), Prev: SinD Intrinsic, Up: Other Intrinsics --- 16857,16865 ---- SinD Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL SinD' to use this name for an ! external procedure.  File: g77.info, Node: SnglQ Intrinsic, Next: SymLnk Intrinsic (function), Prev: SinD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: SnglQ Intrinsic, *** 16865,16873 **** SnglQ Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL SnglQ' to use this name for an external ! procedure.  File: g77.info, Node: SymLnk Intrinsic (function), Next: System Intrinsic (function), Prev: SnglQ Intrinsic, Up: Other Intrinsics --- 16867,16875 ---- SnglQ Intrinsic ............... ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL SnglQ' to use this name for an ! external procedure.  File: g77.info, Node: SymLnk Intrinsic (function), Next: System Intrinsic (function), Prev: SnglQ Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: TanD Intrinsic, *** 16941,16949 **** TanD Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL TanD' to use this name for an external ! procedure.  File: g77.info, Node: Time Intrinsic (VXT), Next: UMask Intrinsic (function), Prev: TanD Intrinsic, Up: Other Intrinsics --- 16943,16951 ---- TanD Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL TanD' to use this name for an ! external procedure.  File: g77.info, Node: Time Intrinsic (VXT), Next: UMask Intrinsic (function), Prev: TanD Intrinsic, Up: Other Intrinsics *************** File: g77.info, Node: ZExt Intrinsic, *** 17029,17037 **** ZExt Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, reserved ! as an intrinsic. Use `EXTERNAL ZExt' to use this name for an external ! procedure.  File: g77.info, Node: Other Compilers, Next: Other Languages, Prev: Other Dialects, Up: Top --- 17031,17039 ---- ZExt Intrinsic .............. ! This intrinsic is not yet implemented. The name is, however, ! reserved as an intrinsic. Use `EXTERNAL ZExt' to use this name for an ! external procedure.  File: g77.info, Node: Other Compilers, Next: Other Languages, Prev: Other Dialects, Up: Top *************** File: g77.info, Node: Other Compilers, *** 17039,17051 **** Other Compilers *************** ! An individual Fortran source file can be compiled to an object (`*.o') ! file instead of to the final program executable. This allows several ! portions of a program to be compiled at different times and linked ! together whenever a new version of the program is needed. However, it ! introduces the issue of "object compatibility" across the various ! object files (and libraries, or `*.a' files) that are linked together ! to produce any particular executable file. Object compatibility is an issue when combining, in one program, Fortran code compiled by more than one compiler (or more than one --- 17041,17053 ---- Other Compilers *************** ! An individual Fortran source file can be compiled to an object ! (`*.o') file instead of to the final program executable. This allows ! several portions of a program to be compiled at different times and ! linked together whenever a new version of the program is needed. ! However, it introduces the issue of "object compatibility" across the ! various object files (and libraries, or `*.a' files) that are linked ! together to produce any particular executable file. Object compatibility is an issue when combining, in one program, Fortran code compiled by more than one compiler (or more than one *************** File: g77.info, Node: Dropping f2c Comp *** 17093,17101 **** Dropping `f2c' Compatibility ============================ ! Specifying `-fno-f2c' allows `g77' to generate, in some cases, faster ! code, by not needing to allow to the possibility of linking with code ! compiled by `f2c'. For example, this affects how `REAL(KIND=1)', `COMPLEX(KIND=1)', and `COMPLEX(KIND=2)' functions are called. With `-fno-f2c', they are --- 17095,17103 ---- Dropping `f2c' Compatibility ============================ ! Specifying `-fno-f2c' allows `g77' to generate, in some cases, ! faster code, by not needing to allow to the possibility of linking with ! code compiled by `f2c'. For example, this affects how `REAL(KIND=1)', `COMPLEX(KIND=1)', and `COMPLEX(KIND=2)' functions are called. With `-fno-f2c', they are *************** File: g77.info, Node: Compilers Other T *** 17153,17159 **** Compilers Other Than `f2c' ========================== ! On systems with Fortran compilers other than `f2c' and `g77', code compiled by `g77' is not expected to work well with code compiled by the native compiler. (This is true for `f2c'-compiled objects as well.) Libraries compiled with the native compiler probably will have to be --- 17155,17161 ---- Compilers Other Than `f2c' ========================== ! On systems with Fortran compilers other than `f2c' and `g77', code compiled by `g77' is not expected to work well with code compiled by the native compiler. (This is true for `f2c'-compiled objects as well.) Libraries compiled with the native compiler probably will have to be *************** File: g77.info, Node: Other Languages, *** 17191,17197 **** Other Languages *************** ! _Note: This portion of the documentation definitely needs a lot of work!_ * Menu: --- 17193,17199 ---- Other Languages *************** ! _Note: This portion of the documentation definitely needs a lot of work!_ * Menu: *************** File: g77.info, Node: Interoperating wi *** 17204,17210 **** Tools and advice for interoperating with C and C++ ================================================== ! The following discussion assumes that you are running `g77' in `f2c' compatibility mode, i.e. not using `-fno-f2c'. It provides some advice about quick and simple techniques for linking Fortran and C (or C++), the most common requirement. For the full story consult the --- 17206,17212 ---- Tools and advice for interoperating with C and C++ ================================================== ! The following discussion assumes that you are running `g77' in `f2c' compatibility mode, i.e. not using `-fno-f2c'. It provides some advice about quick and simple techniques for linking Fortran and C (or C++), the most common requirement. For the full story consult the *************** File: g77.info, Node: C Interfacing Too *** 17231,17237 **** C Interfacing Tools ------------------- ! Even if you don't actually use it as a compiler, `f2c' from `ftp://ftp.netlib.org/f2c/src', can be a useful tool when you're interfacing (linking) Fortran and C. *Note Generating Skeletons and Prototypes with `f2c': f2c Skeletons and Prototypes. --- 17233,17239 ---- C Interfacing Tools ------------------- ! Even if you don't actually use it as a compiler, `f2c' from `ftp://ftp.netlib.org/f2c/src', can be a useful tool when you're interfacing (linking) Fortran and C. *Note Generating Skeletons and Prototypes with `f2c': f2c Skeletons and Prototypes. *************** File: g77.info, Node: C Access to Type *** 17253,17265 **** Accessing Type Information in C ------------------------------- ! Generally, C code written to link with `g77' code--calling and/or being ! called from Fortran--should `#include ' to define the C versions ! of the Fortran types. Don't assume Fortran `INTEGER' types correspond ! to C `int's, for instance; instead, declare them as `integer', a type ! defined by `g2c.h'. `g2c.h' is installed where `gcc' will find it by ! default, assuming you use a copy of `gcc' compatible with `g77', ! probably built at the same time as `g77'.  File: g77.info, Node: f2c Skeletons and Prototypes, Next: C++ Considerations, Prev: C Access to Type Information, Up: Interoperating with C and C++ --- 17255,17267 ---- Accessing Type Information in C ------------------------------- ! Generally, C code written to link with `g77' code--calling and/or ! being called from Fortran--should `#include ' to define the C ! versions of the Fortran types. Don't assume Fortran `INTEGER' types ! correspond to C `int's, for instance; instead, declare them as ! `integer', a type defined by `g2c.h'. `g2c.h' is installed where `gcc' ! will find it by default, assuming you use a copy of `gcc' compatible ! with `g77', probably built at the same time as `g77'.  File: g77.info, Node: f2c Skeletons and Prototypes, Next: C++ Considerations, Prev: C Access to Type Information, Up: Interoperating with C and C++ *************** File: g77.info, Node: f2c Skeletons and *** 17267,17274 **** Generating Skeletons and Prototypes with `f2c' ---------------------------------------------- ! A simple and foolproof way to write `g77'-callable C routines--e.g. to ! interface with an existing library--is to write a file (named, for example, `fred.f') of dummy Fortran skeletons comprising just the declaration of the routine(s) and dummy arguments plus `END' statements. Then run `f2c' on file `fred.f' to produce `fred.c' into which you can --- 17269,17276 ---- Generating Skeletons and Prototypes with `f2c' ---------------------------------------------- ! A simple and foolproof way to write `g77'-callable C routines--e.g. ! to interface with an existing library--is to write a file (named, for example, `fred.f') of dummy Fortran skeletons comprising just the declaration of the routine(s) and dummy arguments plus `END' statements. Then run `f2c' on file `fred.f' to produce `fred.c' into which you can *************** File: g77.info, Node: C++ Consideration *** 17301,17308 **** C++ Considerations ------------------ ! `f2c' can be used to generate suitable code for compilation with a C++ ! system using the `-C++' option. The important thing about linking `g77'-compiled code with C++ is that the prototypes for the `g77' routines must specify C linkage to avoid name mangling. So, use an `extern "C"' declaration. `f2c''s `-C++' option will not take care of --- 17303,17310 ---- C++ Considerations ------------------ ! `f2c' can be used to generate suitable code for compilation with a ! C++ system using the `-C++' option. The important thing about linking `g77'-compiled code with C++ is that the prototypes for the `g77' routines must specify C linkage to avoid name mangling. So, use an `extern "C"' declaration. `f2c''s `-C++' option will not take care of *************** File: g77.info, Node: Startup Code, Pr *** 17315,17321 **** Startup Code ------------ ! Unlike with some runtime systems, it shouldn't be necessary (unless there are bugs) to use a Fortran main program unit to ensure the runtime--specifically the I/O system--is initialized. --- 17317,17323 ---- Startup Code ------------ ! Unlike with some runtime systems, it shouldn't be necessary (unless there are bugs) to use a Fortran main program unit to ensure the runtime--specifically the I/O system--is initialized. *************** File: g77.info, Node: Debugging and Int *** 17426,17436 **** Debugging and Interfacing ************************* ! GNU Fortran currently generates code that is object-compatible with the ! `f2c' converter. Also, it avoids limitations in the current GBE, such ! as the inability to generate a procedure with multiple entry points, by ! generating code that is structured differently (in terms of procedure ! names, scopes, arguments, and so on) than might be expected. As a result, writing code in other languages that calls on, is called by, or shares in-memory data with `g77'-compiled code generally --- 17428,17438 ---- Debugging and Interfacing ************************* ! GNU Fortran currently generates code that is object-compatible with ! the `f2c' converter. Also, it avoids limitations in the current GBE, ! such as the inability to generate a procedure with multiple entry ! points, by generating code that is structured differently (in terms of ! procedure names, scopes, arguments, and so on) than might be expected. As a result, writing code in other languages that calls on, is called by, or shares in-memory data with `g77'-compiled code generally *************** File: g77.info, Node: Main Program Unit *** 17480,17486 **** Main Program Unit (PROGRAM) =========================== ! When `g77' compiles a main program unit, it gives it the public procedure name `MAIN__'. The `libg2c' library has the actual `main()' procedure as is typical of C-based environments, and it is this procedure that performs some initial start-up activity and then calls --- 17482,17488 ---- Main Program Unit (PROGRAM) =========================== ! When `g77' compiles a main program unit, it gives it the public procedure name `MAIN__'. The `libg2c' library has the actual `main()' procedure as is typical of C-based environments, and it is this procedure that performs some initial start-up activity and then calls *************** File: g77.info, Node: Procedures, Next *** 17536,17542 **** Procedures (SUBROUTINE and FUNCTION) ==================================== ! Currently, `g77' passes arguments via reference--specifically, by passing a pointer to the location in memory of a variable, array, array element, a temporary location that holds the result of evaluating an expression, or a temporary or permanent location that holds the value --- 17538,17544 ---- Procedures (SUBROUTINE and FUNCTION) ==================================== ! Currently, `g77' passes arguments via reference--specifically, by passing a pointer to the location in memory of a variable, array, array element, a temporary location that holds the result of evaluating an expression, or a temporary or permanent location that holds the value *************** File: g77.info, Node: Functions, Next: *** 17599,17605 **** Functions (FUNCTION and RETURN) =============================== ! `g77' handles in a special way functions that return the following types: * `CHARACTER' --- 17601,17607 ---- Functions (FUNCTION and RETURN) =============================== ! `g77' handles in a special way functions that return the following types: * `CHARACTER' *************** File: g77.info, Node: Names, Next: Com *** 17638,17647 **** Names ===== ! Fortran permits each implementation to decide how to represent names as ! far as how they're seen in other contexts, such as debuggers and when ! interfacing to other languages, and especially as far as how casing is ! handled. External names--names of entities that are public, or "accessible", to all modules in a program--normally have an underscore (`_') appended --- 17640,17649 ---- Names ===== ! Fortran permits each implementation to decide how to represent names ! as far as how they're seen in other contexts, such as debuggers and ! when interfacing to other languages, and especially as far as how ! casing is handled. External names--names of entities that are public, or "accessible", to all modules in a program--normally have an underscore (`_') appended *************** File: g77.info, Node: Common Blocks, N *** 17714,17720 **** Common Blocks (COMMON) ====================== ! `g77' names and lays out `COMMON' areas the same way `f2c' does, for compatibility with `f2c'.  --- 17716,17722 ---- Common Blocks (COMMON) ====================== ! `g77' names and lays out `COMMON' areas the same way `f2c' does, for compatibility with `f2c'.  *************** File: g77.info, Node: Local Equivalence *** 17723,17729 **** Local Equivalence Areas (EQUIVALENCE) ===================================== ! `g77' treats storage-associated areas involving a `COMMON' block as explained in the section on common blocks. A local `EQUIVALENCE' area is a collection of variables and arrays --- 17725,17731 ---- Local Equivalence Areas (EQUIVALENCE) ===================================== ! `g77' treats storage-associated areas involving a `COMMON' block as explained in the section on common blocks. A local `EQUIVALENCE' area is a collection of variables and arrays *************** File: g77.info, Node: Complex Variables *** 17745,17753 **** Complex Variables (COMPLEX) =========================== ! As of 0.5.20, `g77' defaults to handling `COMPLEX' types (and related ! intrinsics, constants, functions, and so on) in a manner that makes ! direct debugging involving these types in Fortran language mode difficult. Essentially, `g77' implements these types using an internal --- 17747,17755 ---- Complex Variables (COMPLEX) =========================== ! As of 0.5.20, `g77' defaults to handling `COMPLEX' types (and ! related intrinsics, constants, functions, and so on) in a manner that ! makes direct debugging involving these types in Fortran language mode difficult. Essentially, `g77' implements these types using an internal *************** File: g77.info, Node: Arrays, Next: Ad *** 17771,17778 **** Arrays (DIMENSION) ================== ! Fortran uses "column-major ordering" in its arrays. This differs from ! other languages, such as C, which use "row-major ordering". The difference is that, with Fortran, array elements adjacent to each other in memory differ in the _first_ subscript instead of the last; `A(5,10,20)' immediately follows `A(4,10,20)', whereas with row-major --- 17773,17780 ---- Arrays (DIMENSION) ================== ! Fortran uses "column-major ordering" in its arrays. This differs ! from other languages, such as C, which use "row-major ordering". The difference is that, with Fortran, array elements adjacent to each other in memory differ in the _first_ subscript instead of the last; `A(5,10,20)' immediately follows `A(4,10,20)', whereas with row-major *************** File: g77.info, Node: Adjustable Arrays *** 17841,17847 **** Adjustable Arrays (DIMENSION) ============================= ! Adjustable and automatic arrays in Fortran require the implementation (in this case, the `g77' compiler) to "memorize" the expressions that dimension the arrays each time the procedure is invoked. This is so that subsequent changes to variables used in those expressions, made --- 17843,17849 ---- Adjustable Arrays (DIMENSION) ============================= ! Adjustable and automatic arrays in Fortran require the implementation (in this case, the `g77' compiler) to "memorize" the expressions that dimension the arrays each time the procedure is invoked. This is so that subsequent changes to variables used in those expressions, made *************** File: g77.info, Node: Alternate Entry P *** 17906,17912 **** Alternate Entry Points (ENTRY) ============================== ! The GBE does not understand the general concept of alternate entry points as Fortran provides via the ENTRY statement. `g77' gets around this by using an approach to compiling procedures having at least one `ENTRY' statement that is almost identical to the approach used by --- 17908,17914 ---- Alternate Entry Points (ENTRY) ============================== ! The GBE does not understand the general concept of alternate entry points as Fortran provides via the ENTRY statement. `g77' gets around this by using an approach to compiling procedures having at least one `ENTRY' statement that is almost identical to the approach used by *************** File: g77.info, Node: Alternate Returns *** 18042,18048 **** Alternate Returns (SUBROUTINE and RETURN) ========================================= ! Subroutines with alternate returns (e.g. `SUBROUTINE X(*)' and `CALL X(*50)') are implemented by `g77' as functions returning the C `int' type. The actual alternate-return arguments are omitted from the calling sequence. Instead, the caller uses the return value to do a --- 18044,18050 ---- Alternate Returns (SUBROUTINE and RETURN) ========================================= ! Subroutines with alternate returns (e.g. `SUBROUTINE X(*)' and `CALL X(*50)') are implemented by `g77' as functions returning the C `int' type. The actual alternate-return arguments are omitted from the calling sequence. Instead, the caller uses the return value to do a *************** File: g77.info, Node: Assigned Statemen *** 18059,18070 **** Assigned Statement Labels (ASSIGN and GOTO) =========================================== ! For portability to machines where a pointer (such as to a label, which ! is how `g77' implements `ASSIGN' and its relatives, the assigned-`GOTO' ! and assigned-`FORMAT'-I/O statements) is wider (bitwise) than an ! `INTEGER(KIND=1)', `g77' uses a different memory location to hold the ! `ASSIGN'ed value of a variable than it does the numerical value in that ! variable, unless the variable is wide enough (can hold enough bits). In particular, while `g77' implements --- 18061,18073 ---- Assigned Statement Labels (ASSIGN and GOTO) =========================================== ! For portability to machines where a pointer (such as to a label, ! which is how `g77' implements `ASSIGN' and its relatives, the ! assigned-`GOTO' and assigned-`FORMAT'-I/O statements) is wider ! (bitwise) than an `INTEGER(KIND=1)', `g77' uses a different memory ! location to hold the `ASSIGN'ed value of a variable than it does the ! numerical value in that variable, unless the variable is wide enough ! (can hold enough bits). In particular, while `g77' implements *************** File: g77.info, Node: Run-time Library *** 18100,18107 **** Run-time Library Errors ======================= ! The `libg2c' library currently has the following table to relate error ! code numbers, returned in `IOSTAT=' variables, to messages. This information should, in future versions of this document, be expanded upon to include detailed descriptions of each message. --- 18103,18110 ---- Run-time Library Errors ======================= ! The `libg2c' library currently has the following table to relate ! error code numbers, returned in `IOSTAT=' variables, to messages. This information should, in future versions of this document, be expanded upon to include detailed descriptions of each message. *************** File: g77.info, Node: Collected Fortran *** 18153,18159 **** Collected Fortran Wisdom ************************ ! Most users of `g77' can be divided into two camps: * Those writing new Fortran code to be compiled by `g77'. --- 18156,18162 ---- Collected Fortran Wisdom ************************ ! Most users of `g77' can be divided into two camps: * Those writing new Fortran code to be compiled by `g77'. *************** File: g77.info, Node: Advantages Over f *** 18189,18195 **** Advantages Over f2c =================== ! Without `f2c', `g77' would have taken much longer to do and probably not been as good for quite a while. Sometimes people who notice how much `g77' depends on, and documents encouragement to use, `f2c' ask why `g77' was created if `f2c' already existed. --- 18192,18198 ---- Advantages Over f2c =================== ! Without `f2c', `g77' would have taken much longer to do and probably not been as good for quite a while. Sometimes people who notice how much `g77' depends on, and documents encouragement to use, `f2c' ask why `g77' was created if `f2c' already existed. *************** File: g77.info, Node: Language Extensio *** 18213,18219 **** Language Extensions ------------------- ! `g77' offers several extensions to FORTRAN 77 language that `f2c' doesn't: * Automatic arrays --- 18216,18222 ---- Language Extensions ------------------- ! `g77' offers several extensions to FORTRAN 77 language that `f2c' doesn't: * Automatic arrays *************** File: g77.info, Node: Diagnostic Abilit *** 18257,18263 **** Diagnostic Abilities -------------------- ! `g77' offers better diagnosis of problems in `FORMAT' statements. `f2c' doesn't, for example, emit any diagnostic for `FORMAT(XZFAJG10324)', leaving that to be diagnosed, at run time, by the `libf2c' run-time library. --- 18260,18266 ---- Diagnostic Abilities -------------------- ! `g77' offers better diagnosis of problems in `FORMAT' statements. `f2c' doesn't, for example, emit any diagnostic for `FORMAT(XZFAJG10324)', leaving that to be diagnosed, at run time, by the `libf2c' run-time library. *************** File: g77.info, Node: Compiler Options, *** 18268,18274 **** Compiler Options ---------------- ! `g77' offers compiler options that `f2c' doesn't, most of which are designed to more easily accommodate legacy code: * Two that control the automatic appending of extra underscores to --- 18271,18277 ---- Compiler Options ---------------- ! `g77' offers compiler options that `f2c' doesn't, most of which are designed to more easily accommodate legacy code: * Two that control the automatic appending of extra underscores to *************** File: g77.info, Node: Compiler Speed, *** 18299,18305 **** Compiler Speed -------------- ! Saving the steps of writing and then rereading C code is a big reason why `g77' should be able to compile code much faster than using `f2c' in conjunction with the equivalent invocation of `gcc'. --- 18302,18308 ---- Compiler Speed -------------- ! Saving the steps of writing and then rereading C code is a big reason why `g77' should be able to compile code much faster than using `f2c' in conjunction with the equivalent invocation of `gcc'. *************** File: g77.info, Node: Program Speed, N *** 18316,18323 **** Program Speed ------------- ! `g77' has the potential to better optimize code than `f2c', even when ! `gcc' is used to compile the output of `f2c', because `f2c' must necessarily translate Fortran into a somewhat lower-level language (C) that cannot preserve all the information that is potentially useful for optimization, while `g77' can gather, preserve, and transmit that --- 18319,18326 ---- Program Speed ------------- ! `g77' has the potential to better optimize code than `f2c', even ! when `gcc' is used to compile the output of `f2c', because `f2c' must necessarily translate Fortran into a somewhat lower-level language (C) that cannot preserve all the information that is potentially useful for optimization, while `g77' can gather, preserve, and transmit that *************** File: g77.info, Node: Ease of Debugging *** 18350,18358 **** Ease of Debugging ----------------- ! Because `g77' compiles directly to assembler code like `gcc', instead ! of translating to an intermediate language (C) as does `f2c', support ! for debugging can be better for `g77' than `f2c'. However, although `g77' might be somewhat more "native" in terms of debugging support than `f2c' plus `gcc', there still are a lot of --- 18353,18361 ---- Ease of Debugging ----------------- ! Because `g77' compiles directly to assembler code like `gcc', ! instead of translating to an intermediate language (C) as does `f2c', ! support for debugging can be better for `g77' than `f2c'. However, although `g77' might be somewhat more "native" in terms of debugging support than `f2c' plus `gcc', there still are a lot of *************** File: g77.info, Node: Character and Hol *** 18404,18414 **** Character and Hollerith Constants --------------------------------- ! To avoid the extensive hassle that would be needed to avoid this, `f2c' ! uses C character constants to encode character and Hollerith constants. ! That means a constant like `'HELLO'' is translated to `"hello"' in C, ! which further means that an extra null byte is present at the end of ! the constant. This null byte is superfluous. `g77' does not generate such null bytes. This represents significant savings of resources, such as on systems where `/dev/null' or --- 18407,18417 ---- Character and Hollerith Constants --------------------------------- ! To avoid the extensive hassle that would be needed to avoid this, ! `f2c' uses C character constants to encode character and Hollerith ! constants. That means a constant like `'HELLO'' is translated to ! `"hello"' in C, which further means that an extra null byte is present ! at the end of the constant. This null byte is superfluous. `g77' does not generate such null bytes. This represents significant savings of resources, such as on systems where `/dev/null' or *************** File: g77.info, Node: Block Data and Li *** 18424,18433 **** Block Data and Libraries ======================== ! To ensure that block data program units are linked, especially a concern ! when they are put into libraries, give each one a name (as in `BLOCK ! DATA FOO') and make sure there is an `EXTERNAL FOO' statement in every ! program unit that uses any common block initialized by the corresponding `BLOCK DATA'. `g77' currently compiles a `BLOCK DATA' as if it were a `SUBROUTINE', that is, it generates an actual procedure having the appropriate name. The procedure does nothing but return --- 18427,18436 ---- Block Data and Libraries ======================== ! To ensure that block data program units are linked, especially a ! concern when they are put into libraries, give each one a name (as in ! `BLOCK DATA FOO') and make sure there is an `EXTERNAL FOO' statement in ! every program unit that uses any common block initialized by the corresponding `BLOCK DATA'. `g77' currently compiles a `BLOCK DATA' as if it were a `SUBROUTINE', that is, it generates an actual procedure having the appropriate name. The procedure does nothing but return *************** File: g77.info, Node: Loops, Next: Wor *** 18499,18505 **** Loops ===== ! The meaning of a `DO' loop in Fortran is precisely specified in the Fortran standard...and is quite different from what many programmers might expect. --- 18502,18508 ---- Loops ===== ! The meaning of a `DO' loop in Fortran is precisely specified in the Fortran standard...and is quite different from what many programmers might expect. *************** File: g77.info, Node: Working Programs, *** 18631,18637 **** Working Programs ================ ! Getting Fortran programs to work in the first place can be quite a challenge--even when the programs already work on other systems, or when using other compilers. --- 18634,18640 ---- Working Programs ================ ! Getting Fortran programs to work in the first place can be quite a challenge--even when the programs already work on other systems, or when using other compilers. *************** File: g77.info, Node: Not My Type, Nex *** 18658,18665 **** Not My Type ----------- ! A fruitful source of bugs in Fortran source code is use, or mis-use, of ! Fortran's implicit-typing feature, whereby the type of a variable, array, or function is determined by the first character of its name. Simple cases of this include statements like `LOGX=9.227', without a --- 18661,18668 ---- Not My Type ----------- ! A fruitful source of bugs in Fortran source code is use, or mis-use, ! of Fortran's implicit-typing feature, whereby the type of a variable, array, or function is determined by the first character of its name. Simple cases of this include statements like `LOGX=9.227', without a *************** File: g77.info, Node: Variables Assumed *** 18698,18707 **** Variables Assumed To Be Zero ---------------------------- ! Many Fortran programs were developed on systems that provided automatic ! initialization of all, or some, variables and arrays to zero. As a ! result, many of these programs depend, sometimes inadvertently, on this ! behavior, though to do so violates the Fortran standards. You can ask `g77' for this behavior by specifying the `-finit-local-zero' option when compiling Fortran code. (You might --- 18701,18710 ---- Variables Assumed To Be Zero ---------------------------- ! Many Fortran programs were developed on systems that provided ! automatic initialization of all, or some, variables and arrays to zero. ! As a result, many of these programs depend, sometimes inadvertently, on ! this behavior, though to do so violates the Fortran standards. You can ask `g77' for this behavior by specifying the `-finit-local-zero' option when compiling Fortran code. (You might *************** File: g77.info, Node: Variables Assumed *** 18721,18729 **** Variables Assumed To Be Saved ----------------------------- ! Many Fortran programs were developed on systems that saved the values ! of all, or some, variables and arrays across procedure calls. As a ! result, many of these programs depend, sometimes inadvertently, on being able to assign a value to a variable, perform a `RETURN' to a calling procedure, and, upon subsequent invocation, reference the previously assigned variable to obtain the value. --- 18724,18732 ---- Variables Assumed To Be Saved ----------------------------- ! Many Fortran programs were developed on systems that saved the ! values of all, or some, variables and arrays across procedure calls. ! As a result, many of these programs depend, sometimes inadvertently, on being able to assign a value to a variable, perform a `RETURN' to a calling procedure, and, upon subsequent invocation, reference the previously assigned variable to obtain the value. *************** File: g77.info, Node: Unwanted Variable *** 18749,18759 **** Unwanted Variables ------------------ ! The `-Wunused' option can find bugs involving implicit typing, sometimes ! more easily than using `-Wimplicit' in code that makes heavy use of ! implicit typing. An unused variable or array might indicate that the ! spelling for its declaration is different from that of its intended ! uses. Other than cases involving typos, unused variables rarely indicate actual bugs in a program. However, investigating such cases thoroughly --- 18752,18762 ---- Unwanted Variables ------------------ ! The `-Wunused' option can find bugs involving implicit typing, ! sometimes more easily than using `-Wimplicit' in code that makes heavy ! use of implicit typing. An unused variable or array might indicate ! that the spelling for its declaration is different from that of its ! intended uses. Other than cases involving typos, unused variables rarely indicate actual bugs in a program. However, investigating such cases thoroughly *************** File: g77.info, Node: Unused Arguments, *** 18768,18774 **** Unused Arguments ---------------- ! As with unused variables, It is possible that unused arguments to a procedure might indicate a bug. Compile with `-W -Wunused' option to catch cases of unused arguments. --- 18771,18777 ---- Unused Arguments ---------------- ! As with unused variables, It is possible that unused arguments to a procedure might indicate a bug. Compile with `-W -Wunused' option to catch cases of unused arguments. *************** File: g77.info, Node: Surprising Interp *** 18781,18787 **** Surprising Interpretations of Code ---------------------------------- ! The `-Wsurprising' option can help find bugs involving expression evaluation or in the way `DO' loops with non-integral iteration variables are handled. Cases found by this option might indicate a difference of interpretation between the author of the code involved, --- 18784,18790 ---- Surprising Interpretations of Code ---------------------------------- ! The `-Wsurprising' option can help find bugs involving expression evaluation or in the way `DO' loops with non-integral iteration variables are handled. Cases found by this option might indicate a difference of interpretation between the author of the code involved, *************** File: g77.info, Node: Aliasing Assumed *** 18799,18805 **** Aliasing Assumed To Work ------------------------ ! The `-falias-check', `-fargument-alias', `-fargument-noalias', and `-fno-argument-noalias-global' options, introduced in version 0.5.20 and `g77''s version 2.7.2.2.f.2 of `gcc', were withdrawn as of `g77' version 0.5.23 due to their not being supported by `gcc' version 2.8. --- 18802,18808 ---- Aliasing Assumed To Work ------------------------ ! The `-falias-check', `-fargument-alias', `-fargument-noalias', and `-fno-argument-noalias-global' options, introduced in version 0.5.20 and `g77''s version 2.7.2.2.f.2 of `gcc', were withdrawn as of `g77' version 0.5.23 due to their not being supported by `gcc' version 2.8. *************** File: g77.info, Node: Output Assumed To *** 18936,18944 **** Output Assumed To Flush ----------------------- ! For several versions prior to 0.5.20, `g77' configured its version of ! the `libf2c' run-time library so that one of its configuration macros, ! `ALWAYS_FLUSH', was defined. This was done as a result of a belief that many programs expected output to be flushed to the operating system (under UNIX, via the --- 18939,18947 ---- Output Assumed To Flush ----------------------- ! For several versions prior to 0.5.20, `g77' configured its version ! of the `libf2c' run-time library so that one of its configuration ! macros, `ALWAYS_FLUSH', was defined. This was done as a result of a belief that many programs expected output to be flushed to the operating system (under UNIX, via the *************** File: g77.info, Node: Large File Unit N *** 18999,19007 **** Large File Unit Numbers ----------------------- ! If your program crashes at run time with a message including the text ! `illegal unit number', that probably is a message from the run-time ! library, `libg2c'. The message means that your program has attempted to use a file unit number that is out of the range accepted by `libg2c'. Normally, this --- 19002,19010 ---- Large File Unit Numbers ----------------------- ! If your program crashes at run time with a message including the ! text `illegal unit number', that probably is a message from the ! run-time library, `libg2c'. The message means that your program has attempted to use a file unit number that is out of the range accepted by `libg2c'. Normally, this *************** File: g77.info, Node: Floating-point pr *** 19049,19056 **** Floating-point precision ------------------------ ! If your program depends on exact IEEE 754 floating-point handling it may ! help on some systems--specifically x86 or m68k hardware--to use the `-ffloat-store' option or to reset the precision flag on the floating-point unit. *Note Optimize Options::. --- 19052,19059 ---- Floating-point precision ------------------------ ! If your program depends on exact IEEE 754 floating-point handling it ! may help on some systems--specifically x86 or m68k hardware--to use the `-ffloat-store' option or to reset the precision flag on the floating-point unit. *Note Optimize Options::. *************** File: g77.info, Node: Inconsistent Call *** 19078,19084 **** Inconsistent Calling Sequences ------------------------------ ! Code containing inconsistent calling sequences in the same file is normally rejected--see *Note GLOBALS::. (Use, say, `ftnchek' to ensure consistency across source files. *Note Generating Skeletons and Prototypes with `f2c': f2c Skeletons and Prototypes.) --- 19081,19087 ---- Inconsistent Calling Sequences ------------------------------ ! Code containing inconsistent calling sequences in the same file is normally rejected--see *Note GLOBALS::. (Use, say, `ftnchek' to ensure consistency across source files. *Note Generating Skeletons and Prototypes with `f2c': f2c Skeletons and Prototypes.) *************** File: g77.info, Node: Overly Convenient *** 19098,19109 **** Overly Convenient Command-line Options ====================================== ! These options should be used only as a quick-and-dirty way to determine ! how well your program will run under different compilation models ! without having to change the source. Some are more problematic than ! others, depending on how portable and maintainable you want the program ! to be (and, of course, whether you are allowed to change it at all is ! crucial). You should not continue to use these command-line options to compile a given program, but rather should make changes to the source code: --- 19101,19112 ---- Overly Convenient Command-line Options ====================================== ! These options should be used only as a quick-and-dirty way to ! determine how well your program will run under different compilation ! models without having to change the source. Some are more problematic ! than others, depending on how portable and maintainable you want the ! program to be (and, of course, whether you are allowed to change it at ! all is crucial). You should not continue to use these command-line options to compile a given program, but rather should make changes to the source code: *************** File: g77.info, Node: Faster Programs, *** 19166,19174 **** Faster Programs =============== ! Aside from the usual `gcc' options, such as `-O', `-ffast-math', and so ! on, consider trying some of the following approaches to speed up your ! program (once you get it working). * Menu: --- 19169,19177 ---- Faster Programs =============== ! Aside from the usual `gcc' options, such as `-O', `-ffast-math', and ! so on, consider trying some of the following approaches to speed up ! your program (once you get it working). * Menu: *************** File: g77.info, Node: Aligned Data, Ne *** 19183,19189 **** Aligned Data ------------ ! On some systems, such as those with Pentium Pro CPUs, programs that make heavy use of `REAL(KIND=2)' (`DOUBLE PRECISION') might run much slower than possible due to the compiler not aligning these 64-bit values to 64-bit boundaries in memory. (The effect also is present, --- 19186,19192 ---- Aligned Data ------------ ! On some systems, such as those with Pentium Pro CPUs, programs that make heavy use of `REAL(KIND=2)' (`DOUBLE PRECISION') might run much slower than possible due to the compiler not aligning these 64-bit values to 64-bit boundaries in memory. (The effect also is present, *************** File: g77.info, Node: Prefer Automatic *** 19275,19281 **** Prefer Automatic Uninitialized Variables ---------------------------------------- ! If you're using `-fno-automatic' already, you probably should change your code to allow compilation with `-fautomatic' (the default), to allow the program to run faster. --- 19278,19284 ---- Prefer Automatic Uninitialized Variables ---------------------------------------- ! If you're using `-fno-automatic' already, you probably should change your code to allow compilation with `-fautomatic' (the default), to allow the program to run faster. *************** File: g77.info, Node: Avoid f2c Compati *** 19304,19312 **** Avoid f2c Compatibility ----------------------- ! If you aren't linking with any code compiled using `f2c', try using the ! `-fno-f2c' option when compiling _all_ the code in your program. (Note ! that `libf2c' is _not_ an example of code that is compiled using `f2c'--it is compiled by a C compiler, typically `gcc'.)  --- 19307,19315 ---- Avoid f2c Compatibility ----------------------- ! If you aren't linking with any code compiled using `f2c', try using ! the `-fno-f2c' option when compiling _all_ the code in your program. ! (Note that `libf2c' is _not_ an example of code that is compiled using `f2c'--it is compiled by a C compiler, typically `gcc'.)  *************** File: g77.info, Node: Use Submodel Opti *** 19315,19324 **** Use Submodel Options -------------------- ! Using an appropriate `-m' option to generate specific code for your CPU ! may be worthwhile, though it may mean the executable won't run on other ! versions of the CPU that don't support the same instruction set. *Note ! Hardware Models and Configurations: (gcc)Submodel Options. For instance on an x86 system the compiler might have been built--as shown by `g77 -v'--for the target `i386-pc-linux-gnu', i.e. an `i386' CPU. In that case to generate code best optimized for a Pentium you could --- 19318,19327 ---- Use Submodel Options -------------------- ! Using an appropriate `-m' option to generate specific code for your ! CPU may be worthwhile, though it may mean the executable won't run on ! other versions of the CPU that don't support the same instruction set. ! *Note Hardware Models and Configurations: (gcc)Submodel Options. For instance on an x86 system the compiler might have been built--as shown by `g77 -v'--for the target `i386-pc-linux-gnu', i.e. an `i386' CPU. In that case to generate code best optimized for a Pentium you could *************** File: g77.info, Node: Trouble, Next: O *** 19338,19346 **** Known Causes of Trouble with GNU Fortran **************************************** ! This section describes known problems that affect users of GNU Fortran. ! Most of these are not GNU Fortran bugs per se--if they were, we would ! fix them. But the result for a user might be like the result of a bug. Some of these problems are due to bugs in other software, some are missing features that are too much work to add, and some are places --- 19341,19350 ---- Known Causes of Trouble with GNU Fortran **************************************** ! This section describes known problems that affect users of GNU ! Fortran. Most of these are not GNU Fortran bugs per se--if they were, ! we would fix them. But the result for a user might be like the result ! of a bug. Some of these problems are due to bugs in other software, some are missing features that are too much work to add, and some are places *************** File: g77.info, Node: But-bugs, Next: *** 19368,19375 **** Bugs Not In GNU Fortran ======================= ! These are bugs to which the maintainers often have to reply, "but that ! isn't a bug in `g77'...". Some of these already are fixed in new versions of other software; some still need to be fixed; some are problems with how `g77' is installed or is being used; some are the result of bad hardware that causes software to misbehave in sometimes --- 19372,19379 ---- Bugs Not In GNU Fortran ======================= ! These are bugs to which the maintainers often have to reply, "but ! that isn't a bug in `g77'...". Some of these already are fixed in new versions of other software; some still need to be fixed; some are problems with how `g77' is installed or is being used; some are the result of bad hardware that causes software to misbehave in sometimes *************** File: g77.info, Node: Signal 11 and Fri *** 19407,19413 **** Signal 11 and Friends --------------------- ! A whole variety of strange behaviors can occur when the software, or the way you are using the software, stresses the hardware in a way that triggers hardware bugs. This might seem hard to believe, but it happens frequently enough that there exist documents explaining in --- 19411,19417 ---- Signal 11 and Friends --------------------- ! A whole variety of strange behaviors can occur when the software, or the way you are using the software, stresses the hardware in a way that triggers hardware bugs. This might seem hard to believe, but it happens frequently enough that there exist documents explaining in *************** File: g77.info, Node: Cannot Link Fortr *** 19454,19460 **** Cannot Link Fortran Programs ---------------------------- ! On some systems, perhaps just those with out-of-date (shared?) libraries, unresolved-reference errors happen when linking `g77'-compiled programs (which should be done using `g77'). --- 19458,19464 ---- Cannot Link Fortran Programs ---------------------------- ! On some systems, perhaps just those with out-of-date (shared?) libraries, unresolved-reference errors happen when linking `g77'-compiled programs (which should be done using `g77'). *************** File: g77.info, Node: Large Common Bloc *** 19483,19489 **** Large Common Blocks ------------------- ! On some older GNU/Linux systems, programs with common blocks larger than 16MB cannot be linked without some kind of error message being produced. --- 19487,19493 ---- Large Common Blocks ------------------- ! On some older GNU/Linux systems, programs with common blocks larger than 16MB cannot be linked without some kind of error message being produced. *************** File: g77.info, Node: Debugger Problems *** 19496,19502 **** Debugger Problems ----------------- ! There are some known problems when using `gdb' on code compiled by `g77'. Inadequate investigation as of the release of 0.5.16 results in not knowing which products are the culprit, but `gdb-4.14' definitely crashes when, for example, an attempt is made to print the contents of --- 19500,19506 ---- Debugger Problems ----------------- ! There are some known problems when using `gdb' on code compiled by `g77'. Inadequate investigation as of the release of 0.5.16 results in not knowing which products are the culprit, but `gdb-4.14' definitely crashes when, for example, an attempt is made to print the contents of *************** File: g77.info, Node: NeXTStep Problems *** 19511,19517 **** NeXTStep Problems ----------------- ! Developers of Fortran code on NeXTStep (all architectures) have to watch out for the following problem when writing programs with large, statically allocated (i.e. non-stack based) data structures (common blocks, saved arrays). --- 19515,19521 ---- NeXTStep Problems ----------------- ! Developers of Fortran code on NeXTStep (all architectures) have to watch out for the following problem when writing programs with large, statically allocated (i.e. non-stack based) data structures (common blocks, saved arrays). *************** File: g77.info, Node: Stack Overflow, *** 19558,19564 **** Stack Overflow -------------- ! `g77' code might fail at runtime (probably with a "segmentation violation") due to overflowing the stack. This happens most often on systems with an environment that provides substantially more heap space (for use when arbitrarily allocating and freeing memory) than stack --- 19562,19568 ---- Stack Overflow -------------- ! `g77' code might fail at runtime (probably with a "segmentation violation") due to overflowing the stack. This happens most often on systems with an environment that provides substantially more heap space (for use when arbitrarily allocating and freeing memory) than stack *************** File: g77.info, Node: Nothing Happens, *** 19617,19626 **** Nothing Happens --------------- ! It is occasionally reported that a "simple" program, such as a "Hello, ! World!" program, does nothing when it is run, even though the compiler ! reported no errors, despite the program containing nothing other than a ! simple `PRINT' statement. This most often happens because the program has been compiled and linked on a UNIX system and named `test', though other names can lead --- 19621,19630 ---- Nothing Happens --------------- ! It is occasionally reported that a "simple" program, such as a ! "Hello, World!" program, does nothing when it is run, even though the ! compiler reported no errors, despite the program containing nothing ! other than a simple `PRINT' statement. This most often happens because the program has been compiled and linked on a UNIX system and named `test', though other names can lead *************** File: g77.info, Node: Strange Behavior *** 19658,19664 **** Strange Behavior at Run Time ---------------------------- ! `g77' code might fail at runtime with "segmentation violation", "bus error", or even something as subtle as a procedure call overwriting a variable or array element that it is not supposed to touch. --- 19662,19668 ---- Strange Behavior at Run Time ---------------------------- ! `g77' code might fail at runtime with "segmentation violation", "bus error", or even something as subtle as a procedure call overwriting a variable or array element that it is not supposed to touch. *************** File: g77.info, Node: Floating-point Er *** 19712,19718 **** Floating-point Errors --------------------- ! Some programs appear to produce inconsistent floating-point results compiled by `g77' versus by other compilers. Often the reason for this behavior is the fact that floating-point --- 19716,19722 ---- Floating-point Errors --------------------- ! Some programs appear to produce inconsistent floating-point results compiled by `g77' versus by other compilers. Often the reason for this behavior is the fact that floating-point *************** Known Bugs In GNU Fortran *** 19836,19842 **** ========================= This section identifies bugs that `g77' _users_ might run into in ! the GCC-3.3.4 version of `g77'. This includes bugs that are actually in the `gcc' back end (GBE) or in `libf2c', because those sets of code are at least somewhat under the control of (and necessarily intertwined with) `g77', so it isn't worth separating them out. --- 19840,19846 ---- ========================= This section identifies bugs that `g77' _users_ might run into in ! the GCC-3.3.5 version of `g77'. This includes bugs that are actually in the `gcc' back end (GBE) or in `libf2c', because those sets of code are at least somewhat under the control of (and necessarily intertwined with) `g77', so it isn't worth separating them out. *************** File: g77.info, Node: Missing Features, *** 19985,19993 **** Missing Features ================ ! This section lists features we know are missing from `g77', and which ! we want to add someday. (There is no priority implied in the ordering ! below.) * Menu: --- 19989,19997 ---- Missing Features ================ ! This section lists features we know are missing from `g77', and ! which we want to add someday. (There is no priority implied in the ! ordering below.) * Menu: *************** File: g77.info, Node: Better Source Mod *** 20060,20066 **** Better Source Model ------------------- ! `g77' needs to provide, as the default source-line model, a "pure visual" mode, where the interpretation of a source program in this mode can be accurately determined by a user looking at a traditionally displayed rendition of the program (assuming the user knows whether the --- 20064,20070 ---- Better Source Model ------------------- ! `g77' needs to provide, as the default source-line model, a "pure visual" mode, where the interpretation of a source program in this mode can be accurately determined by a user looking at a traditionally displayed rendition of the program (assuming the user knows whether the *************** File: g77.info, Node: Fortran 90 Suppor *** 20097,20104 **** Fortran 90 Support ------------------ ! `g77' does not support many of the features that distinguish Fortran 90 ! (and, now, Fortran 95) from ANSI FORTRAN 77. Some Fortran 90 features are supported, because they make sense to offer even to die-hard users of F77. For example, many of them codify --- 20101,20108 ---- Fortran 90 Support ------------------ ! `g77' does not support many of the features that distinguish Fortran ! 90 (and, now, Fortran 95) from ANSI FORTRAN 77. Some Fortran 90 features are supported, because they make sense to offer even to die-hard users of F77. For example, many of them codify *************** File: g77.info, Node: Intrinsics in PAR *** 20120,20126 **** Intrinsics in `PARAMETER' Statements ------------------------------------ ! `g77' doesn't allow intrinsics in `PARAMETER' statements. Related to this, `g77' doesn't allow non-integral exponentiation in `PARAMETER' statements, such as `PARAMETER (R=2**.25)'. It is unlikely --- 20124,20130 ---- Intrinsics in `PARAMETER' Statements ------------------------------------ ! `g77' doesn't allow intrinsics in `PARAMETER' statements. Related to this, `g77' doesn't allow non-integral exponentiation in `PARAMETER' statements, such as `PARAMETER (R=2**.25)'. It is unlikely *************** File: g77.info, Node: Arbitrary Concate *** 20136,20143 **** Arbitrary Concatenation ----------------------- ! `g77' doesn't support arbitrary operands for concatenation in contexts ! where run-time allocation is required. For example: SUBROUTINE X(A) CHARACTER*(*) A --- 20140,20147 ---- Arbitrary Concatenation ----------------------- ! `g77' doesn't support arbitrary operands for concatenation in ! contexts where run-time allocation is required. For example: SUBROUTINE X(A) CHARACTER*(*) A *************** File: g77.info, Node: SELECT CASE on CH *** 20149,20155 **** `SELECT CASE' on `CHARACTER' Type --------------------------------- ! Character-type selector/cases for `SELECT CASE' currently are not supported.  --- 20153,20159 ---- `SELECT CASE' on `CHARACTER' Type --------------------------------- ! Character-type selector/cases for `SELECT CASE' currently are not supported.  *************** File: g77.info, Node: RECURSIVE Keyword *** 20158,20164 **** `RECURSIVE' Keyword ------------------- ! `g77' doesn't support the `RECURSIVE' keyword that F90 compilers do. Nor does it provide any means for compiling procedures designed to do recursion. --- 20162,20168 ---- `RECURSIVE' Keyword ------------------- ! `g77' doesn't support the `RECURSIVE' keyword that F90 compilers do. Nor does it provide any means for compiling procedures designed to do recursion. *************** File: g77.info, Node: Increasing Precis *** 20171,20180 **** Increasing Precision/Range -------------------------- ! Some compilers, such as `f2c', have an option (`-r8', `-qrealsize=8' or ! similar) that provides automatic treatment of `REAL' entities such that ! they have twice the storage size, and a corresponding increase in the ! range and precision, of what would normally be the `REAL(KIND=1)' (default `REAL') type. (This affects `COMPLEX' the same way.) They also typically offer another option (`-i8') to increase --- 20175,20184 ---- Increasing Precision/Range -------------------------- ! Some compilers, such as `f2c', have an option (`-r8', `-qrealsize=8' ! or similar) that provides automatic treatment of `REAL' entities such ! that they have twice the storage size, and a corresponding increase in ! the range and precision, of what would normally be the `REAL(KIND=1)' (default `REAL') type. (This affects `COMPLEX' the same way.) They also typically offer another option (`-i8') to increase *************** File: g77.info, Node: Popular Non-stand *** 20205,20212 **** Popular Non-standard Types -------------------------- ! `g77' doesn't fully support `INTEGER*2', `LOGICAL*1', and similar. In ! the meantime, version 0.5.18 provides rudimentary support for them.  File: g77.info, Node: Full Support for Compiler Types, Next: Array Bounds Expressions, Prev: Popular Non-standard Types, Up: Missing Features --- 20209,20216 ---- Popular Non-standard Types -------------------------- ! `g77' doesn't fully support `INTEGER*2', `LOGICAL*1', and similar. ! In the meantime, version 0.5.18 provides rudimentary support for them.  File: g77.info, Node: Full Support for Compiler Types, Next: Array Bounds Expressions, Prev: Popular Non-standard Types, Up: Missing Features *************** File: g77.info, Node: Full Support for *** 20214,20225 **** Full Support for Compiler Types ------------------------------- ! `g77' doesn't support `INTEGER', `REAL', and `COMPLEX' equivalents for ! _all_ applicable back-end-supported types (`char', `short int', `int', ! `long int', `long long int', and `long double'). This means providing ! intrinsic support, and maybe constant support (using F90 syntax) as ! well, and, for most machines will result in automatic support of ! `INTEGER*1', `INTEGER*2', `INTEGER*8', maybe even `REAL*16', and so on.  File: g77.info, Node: Array Bounds Expressions, Next: POINTER Statements, Prev: Full Support for Compiler Types, Up: Missing Features --- 20218,20230 ---- Full Support for Compiler Types ------------------------------- ! `g77' doesn't support `INTEGER', `REAL', and `COMPLEX' equivalents ! for _all_ applicable back-end-supported types (`char', `short int', ! `int', `long int', `long long int', and `long double'). This means ! providing intrinsic support, and maybe constant support (using F90 ! syntax) as well, and, for most machines will result in automatic ! support of `INTEGER*1', `INTEGER*2', `INTEGER*8', maybe even `REAL*16', ! and so on.  File: g77.info, Node: Array Bounds Expressions, Next: POINTER Statements, Prev: Full Support for Compiler Types, Up: Missing Features *************** File: g77.info, Node: Array Bounds Expr *** 20227,20233 **** Array Bounds Expressions ------------------------ ! `g77' doesn't support more general expressions to dimension arrays, such as array element references, function references, etc. For example, `g77' currently does not accept the following: --- 20232,20238 ---- Array Bounds Expressions ------------------------ ! `g77' doesn't support more general expressions to dimension arrays, such as array element references, function references, etc. For example, `g77' currently does not accept the following: *************** File: g77.info, Node: POINTER Statement *** 20241,20247 **** POINTER Statements ------------------ ! `g77' doesn't support pointers or allocatable objects (other than automatic arrays). This set of features is probably considered just behind intrinsics in `PARAMETER' statements on the list of large, important things to add to `g77'. --- 20246,20252 ---- POINTER Statements ------------------ ! `g77' doesn't support pointers or allocatable objects (other than automatic arrays). This set of features is probably considered just behind intrinsics in `PARAMETER' statements on the list of large, important things to add to `g77'. *************** File: g77.info, Node: Sensible Non-stan *** 20261,20271 **** Sensible Non-standard Constructs -------------------------------- ! `g77' rejects things other compilers accept, like `INTRINSIC SQRT,SQRT'. ! As time permits in the future, some of these things that are easy for ! humans to read and write and unlikely to be intended to mean something ! else will be accepted by `g77' (though `-fpedantic' should trigger ! warnings about such non-standard constructs). Until `g77' no longer gratuitously rejects sensible code, you might as well fix your code to be more standard-conforming and portable. --- 20266,20276 ---- Sensible Non-standard Constructs -------------------------------- ! `g77' rejects things other compilers accept, like `INTRINSIC ! SQRT,SQRT'. As time permits in the future, some of these things that ! are easy for humans to read and write and unlikely to be intended to ! mean something else will be accepted by `g77' (though `-fpedantic' ! should trigger warnings about such non-standard constructs). Until `g77' no longer gratuitously rejects sensible code, you might as well fix your code to be more standard-conforming and portable. *************** File: g77.info, Node: READONLY Keyword, *** 20308,20317 **** `READONLY' Keyword ------------------ ! Support for `READONLY', in `OPEN' statements, requires `libg2c' support, ! to make sure that `CLOSE(...,STATUS='DELETE')' does not delete a file ! opened on a unit with the `READONLY' keyword, and perhaps to trigger a ! fatal diagnostic if a `WRITE' or `PRINT' to such a unit is attempted. _Note:_ It is not sufficient for `g77' and `libg2c' (its version of `libf2c') to assume that `READONLY' does not need some kind of explicit --- 20313,20323 ---- `READONLY' Keyword ------------------ ! Support for `READONLY', in `OPEN' statements, requires `libg2c' ! support, to make sure that `CLOSE(...,STATUS='DELETE')' does not delete ! a file opened on a unit with the `READONLY' keyword, and perhaps to ! trigger a fatal diagnostic if a `WRITE' or `PRINT' to such a unit is ! attempted. _Note:_ It is not sufficient for `g77' and `libg2c' (its version of `libf2c') to assume that `READONLY' does not need some kind of explicit *************** File: g77.info, Node: FLUSH Statement, *** 20330,20338 **** `FLUSH' Statement ----------------- ! `g77' could perhaps use a `FLUSH' statement that does what `CALL FLUSH' ! does, but that supports `*' as the unit designator (same unit as for ! `PRINT') and accepts `ERR=' and/or `IOSTAT=' specifiers.  File: g77.info, Node: Expressions in FORMAT Statements, Next: Explicit Assembler Code, Prev: FLUSH Statement, Up: Missing Features --- 20336,20344 ---- `FLUSH' Statement ----------------- ! `g77' could perhaps use a `FLUSH' statement that does what `CALL ! FLUSH' does, but that supports `*' as the unit designator (same unit as ! for `PRINT') and accepts `ERR=' and/or `IOSTAT=' specifiers.  File: g77.info, Node: Expressions in FORMAT Statements, Next: Explicit Assembler Code, Prev: FLUSH Statement, Up: Missing Features *************** File: g77.info, Node: Expressions in FO *** 20340,20346 **** Expressions in `FORMAT' Statements ---------------------------------- ! `g77' doesn't support `FORMAT(I)' and the like. Supporting this requires a significant redesign or replacement of `libg2c'. However, `g77' does support this construct when the expression is --- 20346,20352 ---- Expressions in `FORMAT' Statements ---------------------------------- ! `g77' doesn't support `FORMAT(I)' and the like. Supporting this requires a significant redesign or replacement of `libg2c'. However, `g77' does support this construct when the expression is *************** File: g77.info, Node: Explicit Assemble *** 20373,20380 **** Explicit Assembler Code ----------------------- ! `g77' needs to provide some way, a la `gcc', for `g77' code to specify ! explicit assembler code.  File: g77.info, Node: Q Edit Descriptor, Next: Old-style PARAMETER Statements, Prev: Explicit Assembler Code, Up: Missing Features --- 20379,20386 ---- Explicit Assembler Code ----------------------- ! `g77' needs to provide some way, a la `gcc', for `g77' code to ! specify explicit assembler code.  File: g77.info, Node: Q Edit Descriptor, Next: Old-style PARAMETER Statements, Prev: Explicit Assembler Code, Up: Missing Features *************** File: g77.info, Node: Q Edit Descriptor *** 20382,20389 **** Q Edit Descriptor ----------------- ! The `Q' edit descriptor in `FORMAT's isn't supported. (This is meant ! to get the number of characters remaining in an input record.) Supporting this requires a significant redesign or replacement of `libg2c'. --- 20388,20395 ---- Q Edit Descriptor ----------------- ! The `Q' edit descriptor in `FORMAT's isn't supported. (This is ! meant to get the number of characters remaining in an input record.) Supporting this requires a significant redesign or replacement of `libg2c'. *************** File: g77.info, Node: Old-style PARAMET *** 20396,20404 **** Old-style PARAMETER Statements ------------------------------ ! `g77' doesn't accept `PARAMETER I=1'. Supporting this obsolete form of ! the `PARAMETER' statement would not be particularly hard, as most of the ! parsing code is already in place and working. Until time/money is spent implementing it, you might as well fix your code to use the standard form, `PARAMETER (I=1)' (possibly needing --- 20402,20410 ---- Old-style PARAMETER Statements ------------------------------ ! `g77' doesn't accept `PARAMETER I=1'. Supporting this obsolete form ! of the `PARAMETER' statement would not be particularly hard, as most of ! the parsing code is already in place and working. Until time/money is spent implementing it, you might as well fix your code to use the standard form, `PARAMETER (I=1)' (possibly needing *************** File: g77.info, Node: TYPE and ACCEPT I *** 20412,20418 **** `TYPE' and `ACCEPT' I/O Statements ---------------------------------- ! `g77' doesn't support the I/O statements `TYPE' and `ACCEPT'. These are common extensions that should be easy to support, but also are fairly easy to work around in user code. --- 20418,20424 ---- `TYPE' and `ACCEPT' I/O Statements ---------------------------------- ! `g77' doesn't support the I/O statements `TYPE' and `ACCEPT'. These are common extensions that should be easy to support, but also are fairly easy to work around in user code. *************** File: g77.info, Node: STRUCTURE UNION R *** 20426,20433 **** `STRUCTURE', `UNION', `RECORD', `MAP' ------------------------------------- ! `g77' doesn't support `STRUCTURE', `UNION', `RECORD', `MAP'. This set ! of extensions is quite a bit lower on the list of large, important things to add to `g77', partly because it requires a great deal of work either upgrading or replacing `libg2c'. --- 20432,20439 ---- `STRUCTURE', `UNION', `RECORD', `MAP' ------------------------------------- ! `g77' doesn't support `STRUCTURE', `UNION', `RECORD', `MAP'. This ! set of extensions is quite a bit lower on the list of large, important things to add to `g77', partly because it requires a great deal of work either upgrading or replacing `libg2c'. *************** File: g77.info, Node: OPEN CLOSE and IN *** 20437,20445 **** `OPEN', `CLOSE', and `INQUIRE' Keywords --------------------------------------- ! `g77' doesn't have support for keywords such as `DISP='DELETE'' in the ! `OPEN', `CLOSE', and `INQUIRE' statements. These extensions are easy ! to add to `g77' itself, but require much more work on `libg2c'. `g77' doesn't support `FORM='PRINT'' or an equivalent to translate the traditional `carriage control' characters in column 1 of output to --- 20443,20451 ---- `OPEN', `CLOSE', and `INQUIRE' Keywords --------------------------------------- ! `g77' doesn't have support for keywords such as `DISP='DELETE'' in ! the `OPEN', `CLOSE', and `INQUIRE' statements. These extensions are ! easy to add to `g77' itself, but require much more work on `libg2c'. `g77' doesn't support `FORM='PRINT'' or an equivalent to translate the traditional `carriage control' characters in column 1 of output to *************** File: g77.info, Node: ENCODE and DECODE *** 20456,20462 **** `ENCODE' and `DECODE' --------------------- ! `g77' doesn't support `ENCODE' or `DECODE'. These statements are best replaced by READ and WRITE statements involving internal files (CHARACTER variables and arrays). --- 20462,20468 ---- `ENCODE' and `DECODE' --------------------- ! `g77' doesn't support `ENCODE' or `DECODE'. These statements are best replaced by READ and WRITE statements involving internal files (CHARACTER variables and arrays). *************** File: g77.info, Node: AUTOMATIC Stateme *** 20502,20508 **** `AUTOMATIC' Statement --------------------- ! `g77' doesn't support the `AUTOMATIC' statement that `f2c' does. `AUTOMATIC' would identify a variable or array as not being `SAVE''d, which is normally the default, but which would be especially --- 20508,20514 ---- `AUTOMATIC' Statement --------------------- ! `g77' doesn't support the `AUTOMATIC' statement that `f2c' does. `AUTOMATIC' would identify a variable or array as not being `SAVE''d, which is normally the default, but which would be especially *************** File: g77.info, Node: Suppressing Space *** 20535,20542 **** Suppressing Space Padding of Source Lines ----------------------------------------- ! `g77' should offer VXT-Fortran-style suppression of virtual spaces at ! the end of a source line if an appropriate command-line option is specified. This affects cases where a character constant is continued onto the --- 20541,20548 ---- Suppressing Space Padding of Source Lines ----------------------------------------- ! `g77' should offer VXT-Fortran-style suppression of virtual spaces ! at the end of a source line if an appropriate command-line option is specified. This affects cases where a character constant is continued onto the *************** File: g77.info, Node: Fortran Preproces *** 20563,20570 **** Fortran Preprocessor -------------------- ! `g77' should offer a preprocessor designed specifically for Fortran to ! replace `cpp -traditional'. There are several out there worth evaluating, at least. Such a preprocessor would recognize Hollerith constants, properly --- 20569,20576 ---- Fortran Preprocessor -------------------- ! `g77' should offer a preprocessor designed specifically for Fortran ! to replace `cpp -traditional'. There are several out there worth evaluating, at least. Such a preprocessor would recognize Hollerith constants, properly *************** File: g77.info, Node: Bit Operations on *** 20578,20585 **** Bit Operations on Floating-point Data ------------------------------------- ! `g77' does not allow `REAL' and other non-integral types for arguments ! to intrinsics like `And', `Or', and `Shift'. For example, this program is rejected by `g77', because the intrinsic `Iand' does not accept `REAL' arguments: --- 20584,20591 ---- Bit Operations on Floating-point Data ------------------------------------- ! `g77' does not allow `REAL' and other non-integral types for ! arguments to intrinsics like `And', `Or', and `Shift'. For example, this program is rejected by `g77', because the intrinsic `Iand' does not accept `REAL' arguments: *************** File: g77.info, Node: Really Ugly Chara *** 20594,20600 **** Really Ugly Character Assignments --------------------------------- ! An option such as `-fugly-char' should be provided to allow REAL*8 A1 DATA A1 / '12345678' / --- 20600,20606 ---- Really Ugly Character Assignments --------------------------------- ! An option such as `-fugly-char' should be provided to allow REAL*8 A1 DATA A1 / '12345678' / *************** File: g77.info, Node: POSIX Standard, *** 20610,20616 **** `POSIX' Standard ---------------- ! `g77' should support the POSIX standard for Fortran.  File: g77.info, Node: Floating-point Exception Handling, Next: Nonportable Conversions, Prev: POSIX Standard, Up: Missing Features --- 20616,20622 ---- `POSIX' Standard ---------------- ! `g77' should support the POSIX standard for Fortran.  File: g77.info, Node: Floating-point Exception Handling, Next: Nonportable Conversions, Prev: POSIX Standard, Up: Missing Features *************** File: g77.info, Node: Floating-point Ex *** 20618,20624 **** Floating-point Exception Handling --------------------------------- ! The `gcc' backend and, consequently, `g77', currently provides no general control over whether or not floating-point exceptions are trapped or ignored. (Ignoring them typically results in NaN values being propagated in systems that conform to IEEE 754.) The behavior is --- 20624,20630 ---- Floating-point Exception Handling --------------------------------- ! The `gcc' backend and, consequently, `g77', currently provides no general control over whether or not floating-point exceptions are trapped or ignored. (Ignoring them typically results in NaN values being propagated in systems that conform to IEEE 754.) The behavior is *************** File: g77.info, Node: Nonportable Conve *** 20653,20659 **** Nonportable Conversions ----------------------- ! `g77' doesn't accept some particularly nonportable, silent data-type conversions such as `LOGICAL' to `REAL' (as in `A=.FALSE.', where `A' is type `REAL'), that other compilers might quietly accept. --- 20659,20665 ---- Nonportable Conversions ----------------------- ! `g77' doesn't accept some particularly nonportable, silent data-type conversions such as `LOGICAL' to `REAL' (as in `A=.FALSE.', where `A' is type `REAL'), that other compilers might quietly accept. *************** File: g77.info, Node: Large Automatic A *** 20667,20673 **** Large Automatic Arrays ---------------------- ! Currently, automatic arrays always are allocated on the stack. For situations where the stack cannot be made large enough, `g77' should offer a compiler option that specifies allocation of automatic arrays in heap storage. --- 20673,20679 ---- Large Automatic Arrays ---------------------- ! Currently, automatic arrays always are allocated on the stack. For situations where the stack cannot be made large enough, `g77' should offer a compiler option that specifies allocation of automatic arrays in heap storage. *************** File: g77.info, Node: Support for Threa *** 20678,20684 **** Support for Threads ------------------- ! Neither the code produced by `g77' nor the `libg2c' library are thread-safe, nor does `g77' have support for parallel processing (other than the instruction-level parallelism available on some processors). A package such as PVM might help here. --- 20684,20690 ---- Support for Threads ------------------- ! Neither the code produced by `g77' nor the `libg2c' library are thread-safe, nor does `g77' have support for parallel processing (other than the instruction-level parallelism available on some processors). A package such as PVM might help here. *************** File: g77.info, Node: Enabling Debug Li *** 20689,20697 **** Enabling Debug Lines -------------------- ! An option such as `-fdebug-lines' should be provided to turn fixed-form ! lines beginning with `D' to be treated as if they began with a space, ! instead of as if they began with a `C' (as comment lines).  File: g77.info, Node: Better Warnings, Next: Gracefully Handle Sensible Bad Code, Prev: Enabling Debug Lines, Up: Missing Features --- 20695,20703 ---- Enabling Debug Lines -------------------- ! An option such as `-fdebug-lines' should be provided to turn ! fixed-form lines beginning with `D' to be treated as if they began with ! a space, instead of as if they began with a `C' (as comment lines).  File: g77.info, Node: Better Warnings, Next: Gracefully Handle Sensible Bad Code, Prev: Enabling Debug Lines, Up: Missing Features *************** File: g77.info, Node: Better Warnings, *** 20699,20706 **** Better Warnings --------------- ! Because of how `g77' generates code via the back end, it doesn't always ! provide warnings the user wants. Consider: PROGRAM X PRINT *, A --- 20705,20712 ---- Better Warnings --------------- ! Because of how `g77' generates code via the back end, it doesn't ! always provide warnings the user wants. Consider: PROGRAM X PRINT *, A *************** File: g77.info, Node: Gracefully Handle *** 20743,20751 **** Gracefully Handle Sensible Bad Code ----------------------------------- ! `g77' generally should continue processing for warnings and recoverable ! (user) errors whenever possible--that is, it shouldn't gratuitously ! make bad or useless code. For example: --- 20749,20757 ---- Gracefully Handle Sensible Bad Code ----------------------------------- ! `g77' generally should continue processing for warnings and ! recoverable (user) errors whenever possible--that is, it shouldn't ! gratuitously make bad or useless code. For example: *************** File: g77.info, Node: Non-standard Conv *** 20765,20771 **** Non-standard Conversions ------------------------ ! `-Wconversion' and related should flag places where non-standard conversions are found. Perhaps much of this would be part of `-Wugly*'.  --- 20771,20777 ---- Non-standard Conversions ------------------------ ! `-Wconversion' and related should flag places where non-standard conversions are found. Perhaps much of this would be part of `-Wugly*'.  *************** File: g77.info, Node: Non-standard Intr *** 20774,20780 **** Non-standard Intrinsics ----------------------- ! `g77' needs a new option, like `-Wintrinsics', to warn about use of non-standard intrinsics without explicit `INTRINSIC' statements for them. This would help find code that might fail silently when ported to another compiler. --- 20780,20786 ---- Non-standard Intrinsics ----------------------- ! `g77' needs a new option, like `-Wintrinsics', to warn about use of non-standard intrinsics without explicit `INTRINSIC' statements for them. This would help find code that might fail silently when ported to another compiler. *************** File: g77.info, Node: Modifying DO Vari *** 20785,20791 **** Modifying `DO' Variable ----------------------- ! `g77' should warn about modifying `DO' variables via `EQUIVALENCE'. (The internal information gathered to produce this warning might also be useful in setting the internal "doiter" flag for a variable or even array reference within a loop, since that might produce faster code --- 20791,20797 ---- Modifying `DO' Variable ----------------------- ! `g77' should warn about modifying `DO' variables via `EQUIVALENCE'. (The internal information gathered to produce this warning might also be useful in setting the internal "doiter" flag for a variable or even array reference within a loop, since that might produce faster code *************** File: g77.info, Node: Better Pedantic C *** 20805,20812 **** Better Pedantic Compilation --------------------------- ! `g77' needs to support `-fpedantic' more thoroughly, and use it only to ! generate warnings instead of rejecting constructs outright. Have it warn: if a variable that dimensions an array is not a dummy or placed explicitly in `COMMON' (F77 does not allow it to be placed in `COMMON' via `EQUIVALENCE'); if specification statements follow --- 20811,20818 ---- Better Pedantic Compilation --------------------------- ! `g77' needs to support `-fpedantic' more thoroughly, and use it only ! to generate warnings instead of rejecting constructs outright. Have it warn: if a variable that dimensions an array is not a dummy or placed explicitly in `COMMON' (F77 does not allow it to be placed in `COMMON' via `EQUIVALENCE'); if specification statements follow *************** File: g77.info, Node: Warn About Implic *** 20819,20826 **** Warn About Implicit Conversions ------------------------------- ! `g77' needs a `-Wpromotions' option to warn if source code appears to ! expect automatic, silent, and somewhat dangerous compiler-assisted conversion of `REAL(KIND=1)' constants to `REAL(KIND=2)' based on context. --- 20825,20832 ---- Warn About Implicit Conversions ------------------------------- ! `g77' needs a `-Wpromotions' option to warn if source code appears ! to expect automatic, silent, and somewhat dangerous compiler-assisted conversion of `REAL(KIND=1)' constants to `REAL(KIND=2)' based on context. *************** File: g77.info, Node: Invalid Use of Ho *** 20836,20844 **** Invalid Use of Hollerith Constant --------------------------------- ! `g77' should disallow statements like `RETURN 2HAB', which are invalid ! in both source forms (unlike `RETURN (2HAB)', which probably still ! makes no sense but at least can be reliably parsed). Fixed-form processing rejects it, but not free-form, except in a way that is a bit difficult to understand. --- 20842,20850 ---- Invalid Use of Hollerith Constant --------------------------------- ! `g77' should disallow statements like `RETURN 2HAB', which are ! invalid in both source forms (unlike `RETURN (2HAB)', which probably ! still makes no sense but at least can be reliably parsed). Fixed-form processing rejects it, but not free-form, except in a way that is a bit difficult to understand. *************** File: g77.info, Node: Dummy Array Witho *** 20848,20854 **** Dummy Array Without Dimensioning Dummy -------------------------------------- ! `g77' should complain when a list of dummy arguments containing an adjustable dummy array does not also contain every variable listed in the dimension list of the adjustable array. --- 20854,20860 ---- Dummy Array Without Dimensioning Dummy -------------------------------------- ! `g77' should complain when a list of dummy arguments containing an adjustable dummy array does not also contain every variable listed in the dimension list of the adjustable array. *************** File: g77.info, Node: Invalid FORMAT Sp *** 20870,20877 **** Invalid FORMAT Specifiers ------------------------- ! `g77' should check `FORMAT' specifiers for validity as it does `FORMAT' ! statements. For example, a diagnostic would be produced for: --- 20876,20883 ---- Invalid FORMAT Specifiers ------------------------- ! `g77' should check `FORMAT' specifiers for validity as it does ! `FORMAT' statements. For example, a diagnostic would be produced for: *************** File: g77.info, Node: Ambiguous Dialect *** 20883,20892 **** Ambiguous Dialects ------------------ ! `g77' needs a set of options such as `-Wugly*', `-Wautomatic', `-Wvxt', ! `-Wf90', and so on. These would warn about places in the user's source ! where ambiguities are found, helpful in resolving ambiguities in the ! program's dialect or dialects.  File: g77.info, Node: Unused Labels, Next: Informational Messages, Prev: Ambiguous Dialects, Up: Missing Features --- 20889,20898 ---- Ambiguous Dialects ------------------ ! `g77' needs a set of options such as `-Wugly*', `-Wautomatic', ! `-Wvxt', `-Wf90', and so on. These would warn about places in the ! user's source where ambiguities are found, helpful in resolving ! ambiguities in the program's dialect or dialects.  File: g77.info, Node: Unused Labels, Next: Informational Messages, Prev: Ambiguous Dialects, Up: Missing Features *************** File: g77.info, Node: Unused Labels, N *** 20894,20900 **** Unused Labels ------------- ! `g77' should warn about unused labels when `-Wunused' is in effect.  File: g77.info, Node: Informational Messages, Next: Uninitialized Variables at Run Time, Prev: Unused Labels, Up: Missing Features --- 20900,20906 ---- Unused Labels ------------- ! `g77' should warn about unused labels when `-Wunused' is in effect.  File: g77.info, Node: Informational Messages, Next: Uninitialized Variables at Run Time, Prev: Unused Labels, Up: Missing Features *************** File: g77.info, Node: Informational Mes *** 20902,20909 **** Informational Messages ---------------------- ! `g77' needs an option to suppress information messages (notes). `-w' ! does this but also suppresses warnings. The default should be to suppress info messages. Perhaps info messages should simply be eliminated. --- 20908,20915 ---- Informational Messages ---------------------- ! `g77' needs an option to suppress information messages (notes). ! `-w' does this but also suppresses warnings. The default should be to suppress info messages. Perhaps info messages should simply be eliminated. *************** File: g77.info, Node: Uninitialized Var *** 20914,20920 **** Uninitialized Variables at Run Time ----------------------------------- ! `g77' needs an option to initialize everything (not otherwise explicitly initialized) to "weird" (machine-dependent) values, e.g. NaNs, bad (non-`NULL') pointers, and largest-magnitude integers, would help track down references to some kinds of uninitialized variables at --- 20920,20926 ---- Uninitialized Variables at Run Time ----------------------------------- ! `g77' needs an option to initialize everything (not otherwise explicitly initialized) to "weird" (machine-dependent) values, e.g. NaNs, bad (non-`NULL') pointers, and largest-magnitude integers, would help track down references to some kinds of uninitialized variables at *************** File: g77.info, Node: Portable Unformat *** 20929,20935 **** Portable Unformatted Files -------------------------- ! `g77' has no facility for exchanging unformatted files with systems using different number formats--even differing only in endianness (byte order)--or written by other compilers. Some compilers provide facilities at least for doing byte-swapping during unformatted I/O. --- 20935,20941 ---- Portable Unformatted Files -------------------------- ! `g77' has no facility for exchanging unformatted files with systems using different number formats--even differing only in endianness (byte order)--or written by other compilers. Some compilers provide facilities at least for doing byte-swapping during unformatted I/O. *************** File: g77.info, Node: Better List-direc *** 20992,20998 **** Better List-directed I/O ------------------------ ! Values output using list-directed I/O (`PRINT *, R, D') should be written with a field width, precision, and so on appropriate for the type (precision) of each value. --- 20998,21004 ---- Better List-directed I/O ------------------------ ! Values output using list-directed I/O (`PRINT *, R, D') should be written with a field width, precision, and so on appropriate for the type (precision) of each value. *************** File: g77.info, Node: Default to Consol *** 21015,21022 **** Default to Console I/O ---------------------- ! The default I/O units, specified by `READ FMT', `READ (UNIT=*)', `WRITE ! (UNIT=*)', and `PRINT FMT', should not be units 5 (input) and 6 (output), but, rather, unit numbers not normally available for use in statements such as `OPEN' and `CLOSE'. --- 21021,21028 ---- Default to Console I/O ---------------------- ! The default I/O units, specified by `READ FMT', `READ (UNIT=*)', ! `WRITE (UNIT=*)', and `PRINT FMT', should not be units 5 (input) and 6 (output), but, rather, unit numbers not normally available for use in statements such as `OPEN' and `CLOSE'. *************** File: g77.info, Node: Labels Visible to *** 21032,21038 **** Labels Visible to Debugger -------------------------- ! `g77' should output debugging information for statements labels, for use by debuggers that know how to support them. Same with weirder things like construct names. It is not yet known if any debug formats or debuggers support these. --- 21038,21044 ---- Labels Visible to Debugger -------------------------- ! `g77' should output debugging information for statements labels, for use by debuggers that know how to support them. Same with weirder things like construct names. It is not yet known if any debug formats or debuggers support these. *************** File: g77.info, Node: Disappointments, *** 21043,21050 **** Disappointments and Misunderstandings ===================================== ! These problems are perhaps regrettable, but we don't know any practical ! way around them for now. * Menu: --- 21049,21056 ---- Disappointments and Misunderstandings ===================================== ! These problems are perhaps regrettable, but we don't know any ! practical way around them for now. * Menu: *************** File: g77.info, Node: Mangling of Names *** 21060,21066 **** Mangling of Names in Source Code -------------------------------- ! The current external-interface design, which includes naming of external procedures, COMMON blocks, and the library interface, has various usability problems, including things like adding underscores where not really necessary (and preventing easier inter-language --- 21066,21072 ---- Mangling of Names in Source Code -------------------------------- ! The current external-interface design, which includes naming of external procedures, COMMON blocks, and the library interface, has various usability problems, including things like adding underscores where not really necessary (and preventing easier inter-language *************** File: g77.info, Node: Multiple Definiti *** 21079,21087 **** Multiple Definitions of External Names -------------------------------------- ! `g77' doesn't allow a common block and an external procedure or `BLOCK ! DATA' to have the same name. Some systems allow this, but `g77' does ! not, to be compatible with `f2c'. `g77' could special-case the way it handles `BLOCK DATA', since it is not compatible with `f2c' in this particular area (necessarily, --- 21085,21093 ---- Multiple Definitions of External Names -------------------------------------- ! `g77' doesn't allow a common block and an external procedure or ! `BLOCK DATA' to have the same name. Some systems allow this, but `g77' ! does not, to be compatible with `f2c'. `g77' could special-case the way it handles `BLOCK DATA', since it is not compatible with `f2c' in this particular area (necessarily, *************** File: g77.info, Node: Limitation on Imp *** 21108,21114 **** Limitation on Implicit Declarations ----------------------------------- ! `g77' disallows `IMPLICIT CHARACTER*(*)'. This is not standard-conforming.  --- 21114,21120 ---- Limitation on Implicit Declarations ----------------------------------- ! `g77' disallows `IMPLICIT CHARACTER*(*)'. This is not standard-conforming.  *************** File: g77.info, Node: Non-bugs, Next: *** 21117,21124 **** Certain Changes We Don't Want to Make ===================================== ! This section lists changes that people frequently request, but which we ! do not make because we think GNU Fortran is better without them. * Menu: --- 21123,21130 ---- Certain Changes We Don't Want to Make ===================================== ! This section lists changes that people frequently request, but which ! we do not make because we think GNU Fortran is better without them. * Menu: *************** File: g77.info, Node: Backslash in Cons *** 21141,21147 **** Backslash in Constants ---------------------- ! In the opinion of many experienced Fortran users, `-fno-backslash' should be the default, not `-fbackslash', as currently set by `g77'. First of all, you can always specify `-fno-backslash' to turn off --- 21147,21153 ---- Backslash in Constants ---------------------- ! In the opinion of many experienced Fortran users, `-fno-backslash' should be the default, not `-fbackslash', as currently set by `g77'. First of all, you can always specify `-fno-backslash' to turn off *************** File: g77.info, Node: Initializing Befo *** 21242,21249 **** Initializing Before Specifying ------------------------------ ! `g77' does not allow `DATA VAR/1/' to appear in the source code before ! `COMMON VAR', `DIMENSION VAR(10)', `INTEGER VAR', and so on. In general, `g77' requires initialization of a variable or array to be specified _after_ all other specifications of attributes (type, size, placement, and so on) of that variable or array are specified (though --- 21248,21255 ---- Initializing Before Specifying ------------------------------ ! `g77' does not allow `DATA VAR/1/' to appear in the source code ! before `COMMON VAR', `DIMENSION VAR(10)', `INTEGER VAR', and so on. In general, `g77' requires initialization of a variable or array to be specified _after_ all other specifications of attributes (type, size, placement, and so on) of that variable or array are specified (though *************** File: g77.info, Node: Context-Sensitive *** 21267,21273 **** Context-Sensitive Intrinsicness ------------------------------- ! `g77' treats procedure references to _possible_ intrinsic names as always enabling their intrinsic nature, regardless of whether the _form_ of the reference is valid for that intrinsic. --- 21273,21279 ---- Context-Sensitive Intrinsicness ------------------------------- ! `g77' treats procedure references to _possible_ intrinsic names as always enabling their intrinsic nature, regardless of whether the _form_ of the reference is valid for that intrinsic. *************** File: g77.info, Node: Context-Sensitive *** 21312,21320 **** Context-Sensitive Constants --------------------------- ! `g77' does not use context to determine the types of constants or named ! constants (`PARAMETER'), except for (non-standard) typeless constants ! such as `'123'O'. For example, consider the following statement: --- 21318,21326 ---- Context-Sensitive Constants --------------------------- ! `g77' does not use context to determine the types of constants or ! named constants (`PARAMETER'), except for (non-standard) typeless ! constants such as `'123'O'. For example, consider the following statement: *************** File: g77.info, Node: Equivalence Versu *** 21380,21388 **** Equivalence Versus Equality --------------------------- ! Use of `.EQ.' and `.NE.' on `LOGICAL' operands is not supported, except ! via `-fugly-logint', which is not recommended except for legacy code ! (where the behavior expected by the _code_ is assumed). Legacy code should be changed, as resources permit, to use `.EQV.' and `.NEQV.' instead, as these are permitted by the various Fortran --- 21386,21394 ---- Equivalence Versus Equality --------------------------- ! Use of `.EQ.' and `.NE.' on `LOGICAL' operands is not supported, ! except via `-fugly-logint', which is not recommended except for legacy ! code (where the behavior expected by the _code_ is assumed). Legacy code should be changed, as resources permit, to use `.EQV.' and `.NEQV.' instead, as these are permitted by the various Fortran *************** File: g77.info, Node: Order of Side Eff *** 21449,21459 **** Order of Side Effects --------------------- ! `g77' does not necessarily produce code that, when run, performs side ! effects (such as those performed by function invocations) in the same ! order as in some other compiler--or even in the same order as another ! version, port, or invocation (using different command-line options) of ! `g77'. It is never safe to depend on the order of evaluation of side effects. For example, an expression like this may very well behave --- 21455,21465 ---- Order of Side Effects --------------------- ! `g77' does not necessarily produce code that, when run, performs ! side effects (such as those performed by function invocations) in the ! same order as in some other compiler--or even in the same order as ! another version, port, or invocation (using different command-line ! options) of `g77'. It is never safe to depend on the order of evaluation of side effects. For example, an expression like this may very well behave *************** File: g77.info, Node: Warnings and Erro *** 21491,21497 **** Warning Messages and Error Messages =================================== ! The GNU compiler can produce two kinds of diagnostics: errors and warnings. Each kind has a different purpose: _Errors_ report problems that make it impossible to compile your --- 21497,21503 ---- Warning Messages and Error Messages =================================== ! The GNU compiler can produce two kinds of diagnostics: errors and warnings. Each kind has a different purpose: _Errors_ report problems that make it impossible to compile your *************** File: g77.info, Node: Open Questions, *** 21523,21529 **** Open Questions ************** ! Please consider offering useful answers to these questions! * `LOC()' and other intrinsics are probably somewhat misclassified. Is the a need for more precise classification of intrinsics, and --- 21529,21535 ---- Open Questions ************** ! Please consider offering useful answers to these questions! * `LOC()' and other intrinsics are probably somewhat misclassified. Is the a need for more precise classification of intrinsics, and *************** File: g77.info, Node: Bugs, Next: Serv *** 21537,21543 **** Reporting Bugs ************** ! Your bug reports play an essential role in making GNU Fortran reliable. When you encounter a problem, the first thing to do is to see if it is already known. *Note Trouble::. If it isn't known, then you should --- 21543,21550 ---- Reporting Bugs ************** ! Your bug reports play an essential role in making GNU Fortran ! reliable. When you encounter a problem, the first thing to do is to see if it is already known. *Note Trouble::. If it isn't known, then you should *************** File: g77.info, Node: Bug Criteria, Ne *** 21560,21566 **** Have You Found a Bug? ===================== ! If you are not sure whether you have found a bug, here are some guidelines: * If the compiler gets a fatal signal, for any input whatever, that --- 21567,21573 ---- Have You Found a Bug? ===================== ! If you are not sure whether you have found a bug, here are some guidelines: * If the compiler gets a fatal signal, for any input whatever, that *************** File: g77.info, Node: Bug Reporting, P *** 21711,21717 **** How to Report Bugs ================== ! Bugs should be reported to our bug database. Please refer to `http://gcc.gnu.org/bugs.html' for up-to-date instructions how to submit bug reports. Copies of this file in HTML (`bugs.html') and plain text (`BUGS') are also part of GCC releases. --- 21718,21724 ---- How to Report Bugs ================== ! Bugs should be reported to our bug database. Please refer to `http://gcc.gnu.org/bugs.html' for up-to-date instructions how to submit bug reports. Copies of this file in HTML (`bugs.html') and plain text (`BUGS') are also part of GCC releases. *************** File: g77.info, Node: Service, Next: A *** 21722,21729 **** How To Get Help with GNU Fortran ******************************** ! If you need help installing, using or changing GNU Fortran, there are ! two ways to find it: * Look in the service directory for someone who might help you for a fee. The service directory is found in the file named `SERVICE' --- 21729,21736 ---- How To Get Help with GNU Fortran ******************************** ! If you need help installing, using or changing GNU Fortran, there ! are two ways to find it: * Look in the service directory for someone who might help you for a fee. The service directory is found in the file named `SERVICE' *************** File: g77.info, Node: Adding Options, *** 21737,21743 **** Adding Options ************** ! To add a new command-line option to `g77', first decide what kind of option you wish to add. Search the `g77' and `gcc' documentation for one or more options that is most closely like the one you want to add (in terms of what kind of effect it has, and so on) to help clarify its --- 21744,21750 ---- Adding Options ************** ! To add a new command-line option to `g77', first decide what kind of option you wish to add. Search the `g77' and `gcc' documentation for one or more options that is most closely like the one you want to add (in terms of what kind of effect it has, and so on) to help clarify its *************** File: g77.info, Node: Projects, Next: *** 21838,21844 **** Projects ******** ! If you want to contribute to `g77' by doing research, design, specification, documentation, coding, or testing, the following information should give you some ideas. --- 21845,21851 ---- Projects ******** ! If you want to contribute to `g77' by doing research, design, specification, documentation, coding, or testing, the following information should give you some ideas. *************** File: g77.info, Node: Efficiency, Next *** 21860,21869 **** Improve Efficiency ================== ! Don't bother doing any performance analysis until most of the following ! items are taken care of, because there's no question they represent ! serious space/time problems, although some of them show up only given ! certain kinds of (popular) input. * Improve `malloc' package and its uses to specify more info about memory pools and, where feasible, use obstacks to implement them. --- 21867,21876 ---- Improve Efficiency ================== ! Don't bother doing any performance analysis until most of the ! following items are taken care of, because there's no question they ! represent serious space/time problems, although some of them show up ! only given certain kinds of (popular) input. * Improve `malloc' package and its uses to specify more info about memory pools and, where feasible, use obstacks to implement them. *************** File: g77.info, Node: Better Optimizati *** 21919,21925 **** Better Optimization =================== ! Much of this work should be put off until after `g77' has all the features necessary for its widespread acceptance as a useful F77 compiler. However, perhaps this work can be done in parallel during the feature-adding work. --- 21926,21932 ---- Better Optimization =================== ! Much of this work should be put off until after `g77' has all the features necessary for its widespread acceptance as a useful F77 compiler. However, perhaps this work can be done in parallel during the feature-adding work. *************** File: g77.info, Node: Simplify Porting, *** 21985,21992 **** Simplify Porting ================ ! Making `g77' easier to configure, port, build, and install, either as a ! single-system compiler or as a cross-compiler, would be very useful. * A new library (replacing `libg2c') should improve portability as well as produce more optimal code. Further, `g77' and the new --- 21992,22000 ---- Simplify Porting ================ ! Making `g77' easier to configure, port, build, and install, either ! as a single-system compiler or as a cross-compiler, would be very ! useful. * A new library (replacing `libg2c') should improve portability as well as produce more optimal code. Further, `g77' and the new *************** File: g77.info, Node: More Extensions, *** 22022,22028 **** More Extensions =============== ! These extensions are not the sort of things users ask for "by name", but they might improve the usability of `g77', and Fortran in general, in the long run. Some of these items really pertain to improving `g77' internals so that some popular extensions can be more easily supported. --- 22030,22036 ---- More Extensions =============== ! These extensions are not the sort of things users ask for "by name", but they might improve the usability of `g77', and Fortran in general, in the long run. Some of these items really pertain to improving `g77' internals so that some popular extensions can be more easily supported. *************** File: g77.info, Node: Machine Model, N *** 22089,22096 **** Machine Model ============= ! This items pertain to generalizing `g77''s view of the machine model to ! more fully accept whatever the GBE provides it via its configuration. * Switch to using `REAL_VALUE_TYPE' to represent floating-point constants exclusively so the target float format need not be --- 22097,22104 ---- Machine Model ============= ! This items pertain to generalizing `g77''s view of the machine model ! to more fully accept whatever the GBE provides it via its configuration. * Switch to using `REAL_VALUE_TYPE' to represent floating-point constants exclusively so the target float format need not be *************** File: g77.info, Node: Internals Documen *** 22117,22123 **** Internals Documentation ======================= ! Better info on how `g77' works and how to port it is needed. *Note Front End::, which contains some information on `g77' internals. --- 22125,22131 ---- Internals Documentation ======================= ! Better info on how `g77' works and how to port it is needed. *Note Front End::, which contains some information on `g77' internals. *************** File: g77.info, Node: Internals Improve *** 22128,22134 **** Internals Improvements ====================== ! Some more items that would make `g77' more reliable and easier to maintain: * Generally make expression handling focus more on critical syntax --- 22136,22142 ---- Internals Improvements ====================== ! Some more items that would make `g77' more reliable and easier to maintain: * Generally make expression handling focus more on critical syntax *************** File: g77.info, Node: Better Diagnostic *** 22203,22211 **** Better Diagnostics ================== ! These are things users might not ask about, or that need to be looked ! into, before worrying about. Also here are items that involve reducing ! unnecessary diagnostic clutter. * When `FUNCTION' and `ENTRY' point types disagree (`CHARACTER' lengths, type classes, and so on), `ANY'-ize the offending `ENTRY' --- 22211,22219 ---- Better Diagnostics ================== ! These are things users might not ask about, or that need to be ! looked into, before worrying about. Also here are items that involve ! reducing unnecessary diagnostic clutter. * When `FUNCTION' and `ENTRY' point types disagree (`CHARACTER' lengths, type classes, and so on), `ANY'-ize the offending `ENTRY' *************** File: g77.info, Node: Front End, Next: *** 22230,22237 **** Front End ********* ! This chapter describes some aspects of the design and implementation of ! the `g77' front end. To find about things that are "To Be Determined" or "To Be Done", search for the string TBD. If you want to help by working on one or --- 22238,22245 ---- Front End ********* ! This chapter describes some aspects of the design and implementation ! of the `g77' front end. To find about things that are "To Be Determined" or "To Be Done", search for the string TBD. If you want to help by working on one or *************** File: g77.info, Node: Overview of Sourc *** 22257,22280 **** Overview of Sources =================== ! The current directory layout includes the following: ! `{Aucune valeur pour « srcdir »}/gcc/' Non-g77 files in gcc ! `{Aucune valeur pour « srcdir »}/gcc/f/' GNU Fortran front end sources ! `{Aucune valeur pour « srcdir »}/libf2c/' `libg2c' configuration and `g2c.h' file generation ! `{Aucune valeur pour « srcdir »}/libf2c/libF77/' General support and math portion of `libg2c' ! `{Aucune valeur pour « srcdir »}/libf2c/libI77/' I/O portion of `libg2c' ! `{Aucune valeur pour « srcdir »}/libf2c/libU77/' Additional interfaces to Unix `libc' for `libg2c' Components of note in `g77' are described below. --- 22265,22288 ---- Overview of Sources =================== ! The current directory layout includes the following: ! `{No value for `srcdir'}/gcc/' Non-g77 files in gcc ! `{No value for `srcdir'}/gcc/f/' GNU Fortran front end sources ! `{No value for `srcdir'}/libf2c/' `libg2c' configuration and `g2c.h' file generation ! `{No value for `srcdir'}/libf2c/libF77/' General support and math portion of `libg2c' ! `{No value for `srcdir'}/libf2c/libI77/' I/O portion of `libg2c' ! `{No value for `srcdir'}/libf2c/libU77/' Additional interfaces to Unix `libc' for `libg2c' Components of note in `g77' are described below. *************** File: g77.info, Node: Overview of Trans *** 22436,22443 **** Overview of Translation Process =============================== ! The order of phases translating source code to the form accepted by the ! GBE is: 1. Stripping punched-card sources (`g77stripcard.c') --- 22444,22451 ---- Overview of Translation Process =============================== ! The order of phases translating source code to the form accepted by ! the GBE is: 1. Stripping punched-card sources (`g77stripcard.c') *************** File: g77.info, Node: g77stripcard, Ne *** 22568,22574 **** g77stripcard ------------ ! The `g77stripcard' program handles removing content beyond column 72 (adjustable via a command-line option), optionally warning about that content being something other than trailing whitespace or Fortran commentary. --- 22576,22582 ---- g77stripcard ------------ ! The `g77stripcard' program handles removing content beyond column 72 (adjustable via a command-line option), optionally warning about that content being something other than trailing whitespace or Fortran commentary. *************** File: g77.info, Node: lex.c, Next: sta *** 22622,22631 **** lex.c ----- ! To help make the lexer simple, fast, and easy to maintain, while also ! having `g77' generally encourage Fortran programmers to write simple, ! maintainable, portable code by maximizing the performance of compiling ! that kind of code: * There'll be just one lexer, for both fixed-form and free-form source. --- 22630,22639 ---- lex.c ----- ! To help make the lexer simple, fast, and easy to maintain, while ! also having `g77' generally encourage Fortran programmers to write ! simple, maintainable, portable code by maximizing the performance of ! compiling that kind of code: * There'll be just one lexer, for both fixed-form and free-form source. *************** File: g77.info, Node: Gotchas (Transfor *** 22873,22886 **** Gotchas (Transforming) ---------------------- ! This section is not about transforming "gotchas" into something else. It is about the weirder aspects of transforming Fortran, however that's defined, into a more modern, canonical form. Multi-character Lexemes ....................... ! Each lexeme carries with it a pointer to where it appears in the source. To provide the ability for diagnostics to point to column numbers, in addition to line numbers and names, lexemes that represent more than --- 22881,22895 ---- Gotchas (Transforming) ---------------------- ! This section is not about transforming "gotchas" into something else. It is about the weirder aspects of transforming Fortran, however that's defined, into a more modern, canonical form. Multi-character Lexemes ....................... ! Each lexeme carries with it a pointer to where it appears in the ! source. To provide the ability for diagnostics to point to column numbers, in addition to line numbers and names, lexemes that represent more than *************** it makes the parser harder. *** 22952,22959 **** Space-padding Lexemes ..................... ! Certain lexemes need to be padded with virtual spaces when the end of ! the line (or file) is encountered. This is necessary in fixed form, to handle lines that don't extend to column 72, assuming that's the line length in effect. --- 22961,22968 ---- Space-padding Lexemes ..................... ! Certain lexemes need to be padded with virtual spaces when the end ! of the line (or file) is encountered. This is necessary in fixed form, to handle lines that don't extend to column 72, assuming that's the line length in effect. *************** to column 72, assuming that's the line l *** 22961,22968 **** Bizarre Free-form Hollerith Constants ..................................... ! Last I checked, the Fortran 90 standard actually required the compiler ! to silently accept something like FORMAT ( 1 2 Htwelve chars ) --- 22970,22977 ---- Bizarre Free-form Hollerith Constants ..................................... ! Last I checked, the Fortran 90 standard actually required the ! compiler to silently accept something like FORMAT ( 1 2 Htwelve chars ) *************** between lexemes, the latter must be acce *** 23002,23008 **** Hollerith Constants ................... ! Recognizing a Hollerith constant--specifically, that an `H' or `h' after a digit string begins such a constant--requires some knowledge of context. --- 23011,23017 ---- Hollerith Constants ................... ! Recognizing a Hollerith constant--specifically, that an `H' or `h' after a digit string begins such a constant--requires some knowledge of context. *************** context. *** 23026,23032 **** Confusing Function Keyword .......................... ! While REAL FUNCTION FOO () --- 23035,23041 ---- Confusing Function Keyword .......................... ! While REAL FUNCTION FOO () *************** nested). *** 23056,23062 **** Weird READ .......... ! The statement READ (N) --- 23065,23071 ---- Weird READ .......... ! The statement READ (N) *************** File: g77.info, Node: TBD (Transforming *** 23108,23114 **** TBD (Transforming) ------------------ ! Continue researching gotchas, designing the transformational process, and implementing it. Specific issues to resolve: --- 23117,23123 ---- TBD (Transforming) ------------------ ! Continue researching gotchas, designing the transformational process, and implementing it. Specific issues to resolve: *************** File: g77.info, Node: Philosophy of Cod *** 23169,23175 **** Philosophy of Code Generation ============================= ! Don't poke the bear. The `g77' front end generates code via the `gcc' back end. --- 23178,23184 ---- Philosophy of Code Generation ============================= ! Don't poke the bear. The `g77' front end generates code via the `gcc' back end. *************** File: g77.info, Node: Two-pass Design, *** 23297,23307 **** Two-pass Design =============== ! The FFE does not tell the GBE anything about a program unit until after ! the last statement in that unit has been parsed. (A program unit is a ! Fortran concept that corresponds, in the C world, mostly closely to ! functions definitions in ISO C. That is, a program unit in Fortran is ! like a top-level function in C. Nested functions, found among the extensions offered by GNU C, correspond roughly to Fortran's statement functions.) --- 23306,23316 ---- Two-pass Design =============== ! The FFE does not tell the GBE anything about a program unit until ! after the last statement in that unit has been parsed. (A program unit ! is a Fortran concept that corresponds, in the C world, mostly closely ! to functions definitions in ISO C. That is, a program unit in Fortran ! is like a top-level function in C. Nested functions, found among the extensions offered by GNU C, correspond roughly to Fortran's statement functions.) *************** File: g77.info, Node: Two-pass Code, N *** 23328,23335 **** Two-pass Code ------------- ! Most of the code that turns the first pass (parsing) into a second pass ! for code generation is in `gcc/gcc/f/std.c'. It has external functions, called mainly by siblings in `gcc/gcc/f/stc.c', that record the information on statements and --- 23337,23344 ---- Two-pass Code ------------- ! Most of the code that turns the first pass (parsing) into a second ! pass for code generation is in `gcc/gcc/f/std.c'. It has external functions, called mainly by siblings in `gcc/gcc/f/stc.c', that record the information on statements and *************** File: g77.info, Node: Why Two Passes, *** 23347,23359 **** Why Two Passes -------------- ! The need for two passes was not immediately evident during the design ! and implementation of the code in the FFE that was to produce GBEL. ! Only after a few kludges, to handle things like incorrectly-guessed ! `ASSIGN' label nature, had been implemented, did enough evidence pile ! up to make it clear that `std.c' had to be introduced to intercept, ! save, then revisit as part of a second pass, the digested contents of a ! program unit. Other such missteps have occurred during the evolution of the FFE, because of the different goals of the FFE and the GBE. --- 23356,23368 ---- Why Two Passes -------------- ! The need for two passes was not immediately evident during the ! design and implementation of the code in the FFE that was to produce ! GBEL. Only after a few kludges, to handle things like ! incorrectly-guessed `ASSIGN' label nature, had been implemented, did ! enough evidence pile up to make it clear that `std.c' had to be ! introduced to intercept, save, then revisit as part of a second pass, ! the digested contents of a program unit. Other such missteps have occurred during the evolution of the FFE, because of the different goals of the FFE and the GBE. *************** File: g77.info, Node: Challenges Posed, *** 23515,23521 **** Challenges Posed ================ ! Consider the following Fortran code, which uses various extensions (including some to Fortran 90): SUBROUTINE X(A) --- 23524,23530 ---- Challenges Posed ================ ! Consider the following Fortran code, which uses various extensions (including some to Fortran 90): SUBROUTINE X(A) *************** File: g77.info, Node: Transforming Stat *** 23576,23583 **** Transforming Statements ======================= ! Most Fortran statements are given their own block, and, for temporary ! variables they might need, their own scope. (A block is what distinguishes `{ foo (); }' from just `foo ();' in C. A scope is included with every such block, providing a distinct name space for local variables.) --- 23585,23592 ---- Transforming Statements ======================= ! Most Fortran statements are given their own block, and, for ! temporary variables they might need, their own scope. (A block is what distinguishes `{ foo (); }' from just `foo ();' in C. A scope is included with every such block, providing a distinct name space for local variables.) *************** File: g77.info, Node: Statements Needin *** 23601,23608 **** Statements Needing Temporaries ------------------------------ ! Any temporaries needed during, but not beyond, execution of a Fortran ! statement, are made local to the scope of that statement's block. This allows the GBE to share storage for these temporaries among the various statements without the FFE having to manage that itself. --- 23610,23618 ---- Statements Needing Temporaries ------------------------------ ! Any temporaries needed during, but not beyond, execution of a ! Fortran statement, are made local to the scope of that statement's ! block. This allows the GBE to share storage for these temporaries among the various statements without the FFE having to manage that itself. *************** File: g77.info, Node: Transforming DO W *** 23657,23663 **** Transforming DO WHILE --------------------- ! `DO WHILE(expr)' _must_ be implemented so that temporaries needed to evaluate `expr' are generated just for the test, each time. Consider how `DO WHILE (A//B .NE. 'END'); ...; END DO' is --- 23667,23673 ---- Transforming DO WHILE --------------------- ! `DO WHILE(expr)' _must_ be implemented so that temporaries needed to evaluate `expr' are generated just for the test, each time. Consider how `DO WHILE (A//B .NE. 'END'); ...; END DO' is *************** File: g77.info, Node: Transforming Iter *** 23698,23704 **** Transforming Iterative DO ------------------------- ! An iterative `DO' loop (one that specifies an iteration variable) is required by the Fortran standards to be implemented as though an iteration count is computed before entering the loop body, and that iteration count used to determine the number of times the loop body is --- 23708,23714 ---- Transforming Iterative DO ------------------------- ! An iterative `DO' loop (one that specifies an iteration variable) is required by the Fortran standards to be implemented as though an iteration count is computed before entering the loop body, and that iteration count used to determine the number of times the loop body is *************** File: g77.info, Node: Transforming Bloc *** 23716,23722 **** Transforming Block IF --------------------- ! Consider: SUBROUTINE X(A,B,C) CHARACTER*(*) A, B, C --- 23726,23732 ---- Transforming Block IF --------------------- ! Consider: SUBROUTINE X(A,B,C) CHARACTER*(*) A, B, C *************** File: g77.info, Node: Transforming SELE *** 23757,23764 **** Transforming SELECT CASE ------------------------ ! `SELECT CASE' poses a few interesting problems for code generation, if ! efficiency and frugal stack management are important. Consider `SELECT CASE (I('PREFIX'//A))', where `A' is `CHARACTER*(*)'. In a case like this--basically, in any case where --- 23767,23774 ---- Transforming SELECT CASE ------------------------ ! `SELECT CASE' poses a few interesting problems for code generation, ! if efficiency and frugal stack management are important. Consider `SELECT CASE (I('PREFIX'//A))', where `A' is `CHARACTER*(*)'. In a case like this--basically, in any case where *************** File: g77.info, Node: Transforming Expr *** 23851,23858 **** Transforming Expressions ======================== ! The interactions between statements, expressions, and subexpressions at ! program run time can be viewed as: ACTION(EXPR) --- 23861,23868 ---- Transforming Expressions ======================== ! The interactions between statements, expressions, and subexpressions ! at program run time can be viewed as: ACTION(EXPR) *************** File: g77.info, Node: Internal Naming C *** 23905,23916 **** Internal Naming Conventions =========================== ! Names exported by FFE modules have the following (regular-expression) ! forms. Note that all names beginning `ffeMOD' or `FFEMOD', where MOD ! is lowercase or uppercase alphanumerics, respectively, are exported by ! the module `ffeMOD', with the source code doing the exporting in ! `MOD.h'. (Usually, the source code for the implementation is in ! `MOD.c'.) Identifiers that don't fit the following forms are not considered exported, even if they are according to the C language. (For example, --- 23915,23926 ---- Internal Naming Conventions =========================== ! Names exported by FFE modules have the following ! (regular-expression) forms. Note that all names beginning `ffeMOD' or ! `FFEMOD', where MOD is lowercase or uppercase alphanumerics, ! respectively, are exported by the module `ffeMOD', with the source code ! doing the exporting in `MOD.h'. (Usually, the source code for the ! implementation is in `MOD.c'.) Identifiers that don't fit the following forms are not considered exported, even if they are according to the C language. (For example, *************** File: g77.info, Node: Diagnostics, Nex *** 24007,24014 **** Diagnostics *********** ! Some diagnostics produced by `g77' require sufficient explanation that ! the explanations are given below, and the diagnostics themselves identify the appropriate explanation. Identification uses the GNU Info format--specifically, the `info' --- 24017,24024 ---- Diagnostics *********** ! Some diagnostics produced by `g77' require sufficient explanation ! that the explanations are given below, and the diagnostics themselves identify the appropriate explanation. Identification uses the GNU Info format--specifically, the `info' *************** Keyword Index *** 26738,27441 ****  Tag Table: ! Node: Top2323 ! Node: Copying4277 ! Node: GNU Free Documentation License23471 ! Node: Contributors45877 ! Node: Funding49153 ! Node: Funding GNU Fortran51662 Node: Getting Started52874 ! Node: What is GNU Fortran?55120 ! Node: G77 and GCC65005 ! Node: Invoking G7766220 ! Node: Option Summary68155 ! Node: Overall Options73011 ! Node: Shorthand Options79602 ! Node: Fortran Dialect Options81896 ! Node: Warning Options93150 ! Node: Debugging Options102064 ! Node: Optimize Options103651 ! Ref: Optimize Options-Footnote-1109666 ! Node: Preprocessor Options110359 ! Node: Directory Options111537 ! Node: Code Gen Options112846 ! Node: Environment Variables127750 ! Node: News128202 ! Node: Changes182606 ! Node: Language210450 ! Node: Direction of Language Development212648 ! Node: Standard Support218885 ! Node: No Passing External Assumed-length219603 ! Node: No Passing Dummy Assumed-length220077 ! Node: No Pathological Implied-DO220589 ! Node: No Useless Implied-DO221273 ! Node: Conformance222001 ! Node: Notation Used224021 ! Node: Terms and Concepts228224 ! Node: Syntactic Items228733 ! Node: Statements Comments Lines229412 ! Node: Scope of Names and Labels231274 ! Node: Characters Lines Sequence231701 ! Node: Character Set232304 ! Node: Lines233302 ! Node: Continuation Line235775 ! Node: Statements236727 ! Node: Statement Labels237680 ! Node: Order238369 ! Node: INCLUDE239251 ! Node: Cpp-style directives242020 ! Node: Data Types and Constants242472 ! Node: Types245990 ! Node: Double Notation247076 ! Node: Star Notation248145 ! Node: Kind Notation251087 ! Node: Constants259504 ! Node: Integer Type261017 ! Node: Character Type261612 ! Node: Expressions262373 ! Node: %LOC()262786 ! Node: Specification Statements265516 ! Node: NAMELIST265970 ! Node: DOUBLE COMPLEX266718 ! Node: Control Statements266969 ! Node: DO WHILE267458 ! Node: END DO267760 ! Node: Construct Names268764 ! Node: CYCLE and EXIT269501 ! Node: Functions and Subroutines272262 ! Node: %VAL()272905 ! Node: %REF()274269 ! Node: %DESCR()276097 ! Node: Generics and Specifics278230 ! Node: REAL() and AIMAG() of Complex285429 ! Node: CMPLX() of DOUBLE PRECISION287259 ! Node: MIL-STD 1753288982 ! Node: f77/f2c Intrinsics289321 ! Node: Table of Intrinsic Functions289888 ! Node: Abort Intrinsic306597 ! Node: Abs Intrinsic306861 ! Node: Access Intrinsic307724 ! Node: AChar Intrinsic308560 ! Node: ACos Intrinsic309082 ! Node: AdjustL Intrinsic309543 ! Node: AdjustR Intrinsic309865 ! Node: AImag Intrinsic310188 ! Node: AInt Intrinsic310993 ! Node: Alarm Intrinsic311621 ! Node: All Intrinsic312453 ! Node: Allocated Intrinsic312762 ! Node: ALog Intrinsic313088 ! Node: ALog10 Intrinsic313478 ! Node: AMax0 Intrinsic313876 ! Node: AMax1 Intrinsic314361 ! Node: AMin0 Intrinsic314814 ! Node: AMin1 Intrinsic315298 ! Node: AMod Intrinsic315750 ! Node: And Intrinsic316176 ! Node: ANInt Intrinsic316682 ! Node: Any Intrinsic317446 ! Node: ASin Intrinsic317750 ! Node: Associated Intrinsic318208 ! Node: ATan Intrinsic318539 ! Node: ATan2 Intrinsic319005 ! Node: BesJ0 Intrinsic319556 ! Node: BesJ1 Intrinsic320017 ! Node: BesJN Intrinsic320478 ! Node: BesY0 Intrinsic321009 ! Node: BesY1 Intrinsic321471 ! Node: BesYN Intrinsic321933 ! Node: Bit_Size Intrinsic322468 ! Node: BTest Intrinsic323127 ! Node: CAbs Intrinsic323847 ! Node: CCos Intrinsic324234 ! Node: Ceiling Intrinsic324626 ! Node: CExp Intrinsic324945 ! Node: Char Intrinsic325337 ! Node: ChDir Intrinsic (subroutine)326591 ! Node: ChMod Intrinsic (subroutine)327594 ! Node: CLog Intrinsic328864 ! Node: Cmplx Intrinsic329268 ! Node: Complex Intrinsic330069 ! Node: Conjg Intrinsic331515 ! Node: Cos Intrinsic331939 ! Node: CosH Intrinsic332402 ! Node: Count Intrinsic332777 ! Node: CPU_Time Intrinsic333092 ! Node: CShift Intrinsic333883 ! Node: CSin Intrinsic334202 ! Node: CSqRt Intrinsic334594 ! Node: CTime Intrinsic (subroutine)335004 ! Node: CTime Intrinsic (function)335759 ! Node: DAbs Intrinsic336393 ! Node: DACos Intrinsic336789 ! Node: DASin Intrinsic337180 ! Node: DATan Intrinsic337572 ! Node: DATan2 Intrinsic337965 ! Node: Date_and_Time Intrinsic338420 ! Node: DbesJ0 Intrinsic339784 ! Node: DbesJ1 Intrinsic340177 ! Node: DbesJN Intrinsic340563 ! Node: DbesY0 Intrinsic341019 ! Node: DbesY1 Intrinsic341405 ! Node: DbesYN Intrinsic341791 ! Node: Dble Intrinsic342245 ! Node: DCos Intrinsic342951 ! Node: DCosH Intrinsic343335 ! Node: DDiM Intrinsic343725 ! Node: DErF Intrinsic344157 ! Node: DErFC Intrinsic344526 ! Node: DExp Intrinsic344901 ! Node: Digits Intrinsic345287 ! Node: DiM Intrinsic345601 ! Node: DInt Intrinsic346100 ! Node: DLog Intrinsic346484 ! Node: DLog10 Intrinsic346869 ! Node: DMax1 Intrinsic347267 ! Node: DMin1 Intrinsic347721 ! Node: DMod Intrinsic348173 ! Node: DNInt Intrinsic348601 ! Node: Dot_Product Intrinsic349000 ! Node: DProd Intrinsic349337 ! Node: DSign Intrinsic349719 ! Node: DSin Intrinsic350158 ! Node: DSinH Intrinsic350543 ! Node: DSqRt Intrinsic350934 ! Node: DTan Intrinsic351325 ! Node: DTanH Intrinsic351710 ! Node: DTime Intrinsic (subroutine)352114 ! Node: EOShift Intrinsic353385 ! Node: Epsilon Intrinsic353721 ! Node: ErF Intrinsic354042 ! Node: ErFC Intrinsic354448 ! Node: ETime Intrinsic (subroutine)355008 ! Node: ETime Intrinsic (function)356171 ! Node: Exit Intrinsic357211 ! Node: Exp Intrinsic357720 ! Node: Exponent Intrinsic358182 ! Node: FDate Intrinsic (subroutine)358518 ! Node: FDate Intrinsic (function)359428 ! Node: FGet Intrinsic (subroutine)360200 ! Node: FGetC Intrinsic (subroutine)361037 ! Node: Float Intrinsic361914 ! Node: Floor Intrinsic362314 ! Node: Flush Intrinsic362627 ! Node: FNum Intrinsic363206 ! Node: FPut Intrinsic (subroutine)363654 ! Node: FPutC Intrinsic (subroutine)364451 ! Node: Fraction Intrinsic365298 ! Node: FSeek Intrinsic365636 ! Node: FStat Intrinsic (subroutine)366361 ! Node: FStat Intrinsic (function)367885 ! Node: FTell Intrinsic (subroutine)369174 ! Node: FTell Intrinsic (function)369847 ! Node: GError Intrinsic370364 ! Node: GetArg Intrinsic370738 ! Node: GetCWD Intrinsic (subroutine)371406 ! Node: GetCWD Intrinsic (function)372261 ! Node: GetEnv Intrinsic372880 ! Node: GetGId Intrinsic373467 ! Node: GetLog Intrinsic373773 ! Node: GetPId Intrinsic374311 ! Node: GetUId Intrinsic374619 ! Node: GMTime Intrinsic374924 ! Node: HostNm Intrinsic (subroutine)375932 ! Node: HostNm Intrinsic (function)377021 ! Node: Huge Intrinsic377863 ! Node: IAbs Intrinsic378183 ! Node: IAChar Intrinsic378574 ! Node: IAnd Intrinsic379114 ! Node: IArgC Intrinsic379602 ! Node: IBClr Intrinsic379978 ! Node: IBits Intrinsic380489 ! Node: IBSet Intrinsic381203 ! Node: IChar Intrinsic381705 ! Node: IDate Intrinsic (UNIX)382924 ! Node: IDiM Intrinsic383766 ! Node: IDInt Intrinsic384215 ! Node: IDNInt Intrinsic384608 ! Node: IEOr Intrinsic385007 ! Node: IErrNo Intrinsic385505 ! Node: IFix Intrinsic385832 ! Node: Imag Intrinsic386220 ! Node: ImagPart Intrinsic387225 ! Node: Index Intrinsic388251 ! Node: Int Intrinsic388804 ! Node: Int2 Intrinsic389519 ! Node: Int8 Intrinsic390228 ! Node: IOr Intrinsic390937 ! Node: IRand Intrinsic391417 ! Node: IsaTty Intrinsic392337 ! Node: IShft Intrinsic392761 ! Node: IShftC Intrinsic393591 ! Node: ISign Intrinsic394520 ! Node: ITime Intrinsic394970 ! Node: Kill Intrinsic (subroutine)395372 ! Node: Kind Intrinsic396208 ! Node: LBound Intrinsic396530 ! Node: Len Intrinsic396844 ! Node: Len_Trim Intrinsic397480 ! Node: LGe Intrinsic397892 ! Node: LGt Intrinsic399305 ! Node: Link Intrinsic (subroutine)400210 ! Node: LLe Intrinsic401174 ! Node: LLt Intrinsic402079 ! Node: LnBlnk Intrinsic402973 ! Node: Loc Intrinsic403376 ! Node: Log Intrinsic403807 ! Node: Log10 Intrinsic404398 ! Node: Logical Intrinsic404940 ! Node: Long Intrinsic405260 ! Node: LShift Intrinsic405784 ! Node: LStat Intrinsic (subroutine)406820 ! Node: LStat Intrinsic (function)408631 ! Node: LTime Intrinsic410193 ! Node: MatMul Intrinsic411197 ! Node: Max Intrinsic411512 ! Node: Max0 Intrinsic412063 ! Node: Max1 Intrinsic412514 ! Node: MaxExponent Intrinsic412998 ! Node: MaxLoc Intrinsic413335 ! Node: MaxVal Intrinsic413659 ! Node: MClock Intrinsic413978 ! Node: MClock8 Intrinsic414876 ! Node: Merge Intrinsic416064 ! Node: Min Intrinsic416377 ! Node: Min0 Intrinsic416928 ! Node: Min1 Intrinsic417379 ! Node: MinExponent Intrinsic417863 ! Node: MinLoc Intrinsic418200 ! Node: MinVal Intrinsic418524 ! Node: Mod Intrinsic418840 ! Node: Modulo Intrinsic419363 ! Node: MvBits Intrinsic419679 ! Node: Nearest Intrinsic420545 ! Node: NInt Intrinsic420866 ! Node: Not Intrinsic421704 ! Node: Or Intrinsic422099 ! Node: Pack Intrinsic422597 ! Node: PError Intrinsic422904 ! Node: Precision Intrinsic423358 ! Node: Present Intrinsic423690 ! Node: Product Intrinsic424017 ! Node: Radix Intrinsic424340 ! Node: Rand Intrinsic424654 ! Node: Random_Number Intrinsic425541 ! Node: Random_Seed Intrinsic425891 ! Node: Range Intrinsic426236 ! Node: Real Intrinsic426554 ! Node: RealPart Intrinsic427560 ! Node: Rename Intrinsic (subroutine)428593 ! Node: Repeat Intrinsic429564 ! Node: Reshape Intrinsic429897 ! Node: RRSpacing Intrinsic430223 ! Node: RShift Intrinsic430555 ! Node: Scale Intrinsic431553 ! Node: Scan Intrinsic431866 ! Node: Second Intrinsic (function)432187 ! Node: Second Intrinsic (subroutine)433018 ! Node: Selected_Int_Kind Intrinsic433993 ! Node: Selected_Real_Kind Intrinsic434381 ! Node: Set_Exponent Intrinsic434765 ! Node: Shape Intrinsic435119 ! Node: Short Intrinsic435439 ! Node: Sign Intrinsic436134 ! Node: Signal Intrinsic (subroutine)436734 ! Node: Sin Intrinsic438948 ! Node: SinH Intrinsic439423 ! Node: Sleep Intrinsic439796 ! Node: Sngl Intrinsic440138 ! Node: Spacing Intrinsic440527 ! Node: Spread Intrinsic440848 ! Node: SqRt Intrinsic441166 ! Node: SRand Intrinsic441770 ! Node: Stat Intrinsic (subroutine)442147 ! Node: Stat Intrinsic (function)443761 ! Node: Sum Intrinsic445124 ! Node: SymLnk Intrinsic (subroutine)445453 ! Node: System Intrinsic (subroutine)446484 ! Node: System_Clock Intrinsic447423 ! Node: Tan Intrinsic448547 ! Node: TanH Intrinsic449007 ! Node: Time Intrinsic (UNIX)449389 ! Node: Time8 Intrinsic450374 ! Node: Tiny Intrinsic451553 ! Node: Transfer Intrinsic451865 ! Node: Transpose Intrinsic452193 ! Node: Trim Intrinsic452524 ! Node: TtyNam Intrinsic (subroutine)452851 ! Node: TtyNam Intrinsic (function)453553 ! Node: UBound Intrinsic454122 ! Node: UMask Intrinsic (subroutine)454464 ! Node: Unlink Intrinsic (subroutine)455161 ! Node: Unpack Intrinsic456058 ! Node: Verify Intrinsic456390 ! Node: XOr Intrinsic456706 ! Node: ZAbs Intrinsic457222 ! Node: ZCos Intrinsic457591 ! Node: ZExp Intrinsic457964 ! Node: ZLog Intrinsic458337 ! Node: ZSin Intrinsic458710 ! Node: ZSqRt Intrinsic459084 ! Node: Scope and Classes of Names459441 ! Node: Underscores in Symbol Names459920 ! Node: I/O460164 ! Node: Fortran 90 Features460934 ! Node: Other Dialects463733 ! Node: Source Form464889 ! Node: Carriage Returns466101 ! Node: Tabs466427 ! Node: Short Lines467297 ! Node: Long Lines468268 ! Node: Ampersands468876 ! Node: Trailing Comment469127 ! Node: Debug Line469900 ! Node: Dollar Signs470566 ! Node: Case Sensitivity470849 ! Node: VXT Fortran479462 ! Node: Double Quote Meaning480642 ! Node: Exclamation Point481567 ! Node: Fortran 90482607 ! Node: Pedantic Compilation483656 ! Node: Distensions487617 ! Node: Ugly Implicit Argument Conversion488578 ! Node: Ugly Assumed-Size Arrays489189 ! Node: Ugly Complex Part Extraction490907 ! Node: Ugly Null Arguments492526 ! Node: Ugly Conversion of Initializers494126 ! Node: Ugly Integer Conversions495888 ! Node: Ugly Assigned Labels496993 ! Node: Compiler498921 ! Node: Compiler Limits499556 ! Node: Run-time Environment Limits500444 ! Node: Timer Wraparounds502383 ! Node: Year 2000 (Y2K) Problems503659 ! Node: Array Size508162 ! Node: Character-variable Length509344 ! Node: Year 10000 (Y10K) Problems509850 ! Node: Compiler Types510393 ! Node: Compiler Constants515101 ! Node: Compiler Intrinsics515957 ! Node: Intrinsic Groups516881 ! Node: Other Intrinsics520319 ! Node: ACosD Intrinsic527914 ! Node: AIMax0 Intrinsic528192 ! Node: AIMin0 Intrinsic528498 ! Node: AJMax0 Intrinsic528805 ! Node: AJMin0 Intrinsic529112 ! Node: ASinD Intrinsic529418 ! Node: ATan2D Intrinsic529721 ! Node: ATanD Intrinsic530026 ! Node: BITest Intrinsic530329 ! Node: BJTest Intrinsic530635 ! Node: CDAbs Intrinsic530941 ! Node: CDCos Intrinsic531314 ! Node: CDExp Intrinsic531689 ! Node: CDLog Intrinsic532064 ! Node: CDSin Intrinsic532439 ! Node: CDSqRt Intrinsic532815 ! Node: ChDir Intrinsic (function)533208 ! Node: ChMod Intrinsic (function)534036 ! Node: CosD Intrinsic535149 ! Node: DACosD Intrinsic535458 ! Node: DASinD Intrinsic535763 ! Node: DATan2D Intrinsic536071 ! Node: DATanD Intrinsic536382 ! Node: Date Intrinsic536688 ! Node: DbleQ Intrinsic537407 ! Node: DCmplx Intrinsic537708 ! Node: DConjg Intrinsic539339 ! Node: DCosD Intrinsic539724 ! Node: DFloat Intrinsic540027 ! Node: DFlotI Intrinsic540399 ! Node: DFlotJ Intrinsic540706 ! Node: DImag Intrinsic541012 ! Node: DReal Intrinsic541389 ! Node: DSinD Intrinsic542536 ! Node: DTanD Intrinsic542837 ! Node: DTime Intrinsic (function)543149 ! Node: FGet Intrinsic (function)544379 ! Node: FGetC Intrinsic (function)545152 ! Node: FloatI Intrinsic545968 ! Node: FloatJ Intrinsic546285 ! Node: FPut Intrinsic (function)546601 ! Node: FPutC Intrinsic (function)547337 ! Node: IDate Intrinsic (VXT)548130 ! Node: IIAbs Intrinsic549237 ! Node: IIAnd Intrinsic549544 ! Node: IIBClr Intrinsic549846 ! Node: IIBits Intrinsic550152 ! Node: IIBSet Intrinsic550459 ! Node: IIDiM Intrinsic550765 ! Node: IIDInt Intrinsic551068 ! Node: IIDNnt Intrinsic551374 ! Node: IIEOr Intrinsic551680 ! Node: IIFix Intrinsic551982 ! Node: IInt Intrinsic552282 ! Node: IIOr Intrinsic552578 ! Node: IIQint Intrinsic552875 ! Node: IIQNnt Intrinsic553180 ! Node: IIShftC Intrinsic553488 ! Node: IISign Intrinsic553799 ! Node: IMax0 Intrinsic554106 ! Node: IMax1 Intrinsic554408 ! Node: IMin0 Intrinsic554709 ! Node: IMin1 Intrinsic555010 ! Node: IMod Intrinsic555310 ! Node: INInt Intrinsic555607 ! Node: INot Intrinsic555906 ! Node: IZExt Intrinsic556203 ! Node: JIAbs Intrinsic556503 ! Node: JIAnd Intrinsic556804 ! Node: JIBClr Intrinsic557106 ! Node: JIBits Intrinsic557412 ! Node: JIBSet Intrinsic557719 ! Node: JIDiM Intrinsic558025 ! Node: JIDInt Intrinsic558328 ! Node: JIDNnt Intrinsic558634 ! Node: JIEOr Intrinsic558940 ! Node: JIFix Intrinsic559242 ! Node: JInt Intrinsic559542 ! Node: JIOr Intrinsic559838 ! Node: JIQint Intrinsic560135 ! Node: JIQNnt Intrinsic560440 ! Node: JIShft Intrinsic560747 ! Node: JIShftC Intrinsic561055 ! Node: JISign Intrinsic561366 ! Node: JMax0 Intrinsic561673 ! Node: JMax1 Intrinsic561975 ! Node: JMin0 Intrinsic562276 ! Node: JMin1 Intrinsic562577 ! Node: JMod Intrinsic562877 ! Node: JNInt Intrinsic563174 ! Node: JNot Intrinsic563473 ! Node: JZExt Intrinsic563770 ! Node: Kill Intrinsic (function)564080 ! Node: Link Intrinsic (function)564761 ! Node: QAbs Intrinsic565572 ! Node: QACos Intrinsic565879 ! Node: QACosD Intrinsic566180 ! Node: QASin Intrinsic566485 ! Node: QASinD Intrinsic566788 ! Node: QATan Intrinsic567093 ! Node: QATan2 Intrinsic567396 ! Node: QATan2D Intrinsic567703 ! Node: QATanD Intrinsic568014 ! Node: QCos Intrinsic568320 ! Node: QCosD Intrinsic568618 ! Node: QCosH Intrinsic568918 ! Node: QDiM Intrinsic569218 ! Node: QExp Intrinsic569514 ! Node: QExt Intrinsic569809 ! Node: QExtD Intrinsic570105 ! Node: QFloat Intrinsic570406 ! Node: QInt Intrinsic570710 ! Node: QLog Intrinsic571007 ! Node: QLog10 Intrinsic571304 ! Node: QMax1 Intrinsic571608 ! Node: QMin1 Intrinsic571910 ! Node: QMod Intrinsic572210 ! Node: QNInt Intrinsic572507 ! Node: QSin Intrinsic572806 ! Node: QSinD Intrinsic573103 ! Node: QSinH Intrinsic573403 ! Node: QSqRt Intrinsic573704 ! Node: QTan Intrinsic574004 ! Node: QTanD Intrinsic574301 ! Node: QTanH Intrinsic574601 ! Node: Rename Intrinsic (function)574914 ! Node: Secnds Intrinsic575718 ! Node: Signal Intrinsic (function)576317 ! Node: SinD Intrinsic579146 ! Node: SnglQ Intrinsic579455 ! Node: SymLnk Intrinsic (function)579767 ! Node: System Intrinsic (function)580634 ! Node: TanD Intrinsic581961 ! Node: Time Intrinsic (VXT)582275 ! Node: UMask Intrinsic (function)583029 ! Node: Unlink Intrinsic (function)583637 ! Node: ZExt Intrinsic584365 ! Node: Other Compilers584650 ! Node: Dropping f2c Compatibility587168 ! Node: Compilers Other Than f2c590237 ! Node: Other Languages592032 ! Node: Interoperating with C and C++592294 ! Node: C Interfacing Tools593324 ! Node: C Access to Type Information594249 ! Node: f2c Skeletons and Prototypes594933 ! Ref: f2c Skeletons and Prototypes-Footnote-1596377 ! Node: C++ Considerations596631 ! Node: Startup Code597295 ! Node: Debugging and Interfacing602081 ! Node: Main Program Unit604765 ! Node: Procedures607256 ! Node: Functions609911 ! Node: Names611526 ! Node: Common Blocks614666 ! Node: Local Equivalence Areas614927 ! Node: Complex Variables615908 ! Node: Arrays617025 ! Node: Adjustable Arrays620355 ! Node: Alternate Entry Points623211 ! Node: Alternate Returns629910 ! Node: Assigned Statement Labels630808 ! Node: Run-time Library Errors632650 ! Node: Collected Fortran Wisdom634599 ! Node: Advantages Over f2c636032 ! Node: Language Extensions637010 ! Node: Diagnostic Abilities638181 ! Node: Compiler Options638569 ! Node: Compiler Speed639614 ! Node: Program Speed640321 ! Node: Ease of Debugging641903 ! Node: Character and Hollerith Constants644330 ! Node: Block Data and Libraries645298 ! Node: Loops648624 ! Node: Working Programs653847 ! Node: Not My Type654588 ! Node: Variables Assumed To Be Zero656516 ! Node: Variables Assumed To Be Saved657568 ! Node: Unwanted Variables658936 ! Node: Unused Arguments659813 ! Node: Surprising Interpretations of Code660273 ! Node: Aliasing Assumed To Work661117 ! Node: Output Assumed To Flush667312 ! Node: Large File Unit Numbers670082 ! Node: Floating-point precision672231 ! Node: Inconsistent Calling Sequences673489 ! Node: Overly Convenient Options674466 ! Node: Faster Programs677769 ! Node: Aligned Data678212 ! Node: Prefer Automatic Uninitialized Variables682902 ! Node: Avoid f2c Compatibility684265 ! Node: Use Submodel Options684731 ! Node: Trouble685733 ! Node: But-bugs687053 ! Node: Signal 11 and Friends688823 ! Node: Cannot Link Fortran Programs690900 ! Node: Large Common Blocks692180 ! Node: Debugger Problems692603 ! Node: NeXTStep Problems693315 ! Node: Stack Overflow695138 ! Node: Nothing Happens698024 ! Node: Strange Behavior at Run Time699635 ! Node: Floating-point Errors702120 ! Node: Known Bugs708080 ! Node: Missing Features715371 ! Node: Better Source Model717295 ! Node: Fortran 90 Support719061 ! Node: Intrinsics in PARAMETER Statements720159 ! Node: Arbitrary Concatenation720907 ! Node: SELECT CASE on CHARACTER Type721307 ! Node: RECURSIVE Keyword721591 ! Node: Increasing Precision/Range722015 ! Node: Popular Non-standard Types723550 ! Node: Full Support for Compiler Types723887 ! Node: Array Bounds Expressions724520 ! Node: POINTER Statements724964 ! Node: Sensible Non-standard Constructs725844 ! Node: READONLY Keyword728166 ! Node: FLUSH Statement729073 ! Node: Expressions in FORMAT Statements729440 ! Node: Explicit Assembler Code730612 ! Node: Q Edit Descriptor730898 ! Node: Old-style PARAMETER Statements731399 ! Node: TYPE and ACCEPT I/O Statements732130 ! Node: STRUCTURE UNION RECORD MAP732693 ! Node: OPEN CLOSE and INQUIRE Keywords733176 ! Node: ENCODE and DECODE734153 ! Node: AUTOMATIC Statement735245 ! Node: Suppressing Space Padding736489 ! Node: Fortran Preprocessor737713 ! Node: Bit Operations on Floating-point Data738283 ! Node: Really Ugly Character Assignments738813 ! Node: POSIX Standard739185 ! Node: Floating-point Exception Handling739422 ! Node: Nonportable Conversions740821 ! Node: Large Automatic Arrays741361 ! Node: Support for Threads741765 ! Node: Enabling Debug Lines742187 ! Node: Better Warnings742561 ! Node: Gracefully Handle Sensible Bad Code744194 ! Node: Non-standard Conversions744935 ! Node: Non-standard Intrinsics745275 ! Node: Modifying DO Variable745688 ! Node: Better Pedantic Compilation746361 ! Node: Warn About Implicit Conversions746986 ! Node: Invalid Use of Hollerith Constant747570 ! Node: Dummy Array Without Dimensioning Dummy748110 ! Node: Invalid FORMAT Specifiers749020 ! Node: Ambiguous Dialects749418 ! Node: Unused Labels749826 ! Node: Informational Messages750045 ! Node: Uninitialized Variables at Run Time750446 ! Node: Portable Unformatted Files751049 ! Ref: Portable Unformatted Files-Footnote-1754002 ! Node: Better List-directed I/O754030 ! Node: Default to Console I/O754932 ! Node: Labels Visible to Debugger755577 ! Node: Disappointments755975 ! Node: Mangling of Names756610 ! Node: Multiple Definitions of External Names757457 ! Node: Limitation on Implicit Declarations758817 ! Node: Non-bugs759098 ! Node: Backslash in Constants760220 ! Node: Initializing Before Specifying765106 ! Node: Context-Sensitive Intrinsicness766245 ! Node: Context-Sensitive Constants768138 ! Node: Equivalence Versus Equality771091 ! Node: Order of Side Effects774131 ! Node: Warnings and Errors775856 ! Node: Open Questions777251 ! Node: Bugs777717 ! Node: Bug Criteria778402 ! Node: Bug Reporting784636 ! Node: Service784994 ! Node: Adding Options785457 ! Node: Projects790047 ! Node: Efficiency790887 ! Node: Better Optimization793781 ! Node: Simplify Porting797148 ! Node: More Extensions798900 ! Node: Machine Model801985 ! Node: Internals Documentation803268 ! Node: Internals Improvements803572 ! Node: Better Diagnostics807113 ! Node: Front End808027 ! Node: Overview of Sources808802 ! Node: Overview of Translation Process816236 ! Node: g77stripcard820511 ! Node: lex.c822985 ! Node: sta.c832522 ! Node: sti.c832633 ! Node: stq.c832744 ! Node: stb.c832855 ! Node: expr.c832967 ! Node: stc.c833081 ! Node: std.c833193 ! Node: ste.c833304 ! Node: Gotchas (Transforming)833432 ! Node: TBD (Transforming)841530 ! Node: Philosophy of Code Generation844223 ! Node: Two-pass Design850124 ! Node: Two-pass Code851278 ! Node: Why Two Passes852008 ! Node: Challenges Posed858072 ! Node: Transforming Statements860553 ! Node: Statements Needing Temporaries861400 ! Node: Transforming DO WHILE864161 ! Node: Transforming Iterative DO865341 ! Node: Transforming Block IF866167 ! Node: Transforming SELECT CASE867529 ! Node: Transforming Expressions870748 ! Node: Internal Naming Conventions872734 ! Node: Diagnostics875730 ! Node: CMPAMBIG877125 ! Node: EXPIMP883542 ! Node: INTGLOB884778 ! Node: LEX887022 ! Node: GLOBALS892477 ! Node: LINKFAIL895141 ! Node: Y2KBAD895765 ! Node: Keyword Index896115  End Tag Table --- 26748,27451 ----  Tag Table: ! Node: Top2302 ! Node: Copying4259 ! Node: GNU Free Documentation License23459 ! Node: Contributors45868 ! Node: Funding49147 ! Node: Funding GNU Fortran51659 Node: Getting Started52874 ! Node: What is GNU Fortran?55123 ! Node: G77 and GCC65011 ! Node: Invoking G7766229 ! Node: Option Summary68167 ! Node: Overall Options73026 ! Node: Shorthand Options79620 ! Node: Fortran Dialect Options81917 ! Node: Warning Options93174 ! Node: Debugging Options102091 ! Node: Optimize Options103681 ! Ref: Optimize Options-Footnote-1109699 ! Node: Preprocessor Options110392 ! Node: Directory Options111573 ! Node: Code Gen Options112885 ! Node: Environment Variables127792 ! Node: News128247 ! Node: Changes182657 ! Node: Language210510 ! Node: Direction of Language Development212711 ! Node: Standard Support218951 ! Node: No Passing External Assumed-length219672 ! Node: No Passing Dummy Assumed-length220149 ! Node: No Pathological Implied-DO220664 ! Node: No Useless Implied-DO221351 ! Node: Conformance222082 ! Node: Notation Used224105 ! Node: Terms and Concepts228311 ! Node: Syntactic Items228823 ! Node: Statements Comments Lines229505 ! Node: Scope of Names and Labels231370 ! Node: Characters Lines Sequence231800 ! Node: Character Set232406 ! Node: Lines233407 ! Node: Continuation Line235883 ! Node: Statements236838 ! Node: Statement Labels237794 ! Node: Order238486 ! Node: INCLUDE239371 ! Node: Cpp-style directives242143 ! Node: Data Types and Constants242598 ! Node: Types246119 ! Node: Double Notation247208 ! Node: Star Notation248280 ! Node: Kind Notation251225 ! Node: Constants259645 ! Node: Integer Type261161 ! Node: Character Type261759 ! Node: Expressions262523 ! Node: %LOC()262939 ! Node: Specification Statements265669 ! Node: NAMELIST266126 ! Node: DOUBLE COMPLEX266877 ! Node: Control Statements267131 ! Node: DO WHILE267623 ! Node: END DO267928 ! Node: Construct Names268935 ! Node: CYCLE and EXIT269675 ! Node: Functions and Subroutines272439 ! Node: %VAL()273085 ! Node: %REF()274449 ! Node: %DESCR()276277 ! Node: Generics and Specifics278410 ! Node: REAL() and AIMAG() of Complex285612 ! Node: CMPLX() of DOUBLE PRECISION287445 ! Node: MIL-STD 1753289171 ! Node: f77/f2c Intrinsics289513 ! Node: Table of Intrinsic Functions290083 ! Node: Abort Intrinsic306795 ! Node: Abs Intrinsic307059 ! Node: Access Intrinsic307922 ! Node: AChar Intrinsic308758 ! Node: ACos Intrinsic309280 ! Node: AdjustL Intrinsic309741 ! Node: AdjustR Intrinsic310066 ! Node: AImag Intrinsic310392 ! Node: AInt Intrinsic311197 ! Node: Alarm Intrinsic311825 ! Node: All Intrinsic312657 ! Node: Allocated Intrinsic312969 ! Node: ALog Intrinsic313298 ! Node: ALog10 Intrinsic313688 ! Node: AMax0 Intrinsic314086 ! Node: AMax1 Intrinsic314571 ! Node: AMin0 Intrinsic315024 ! Node: AMin1 Intrinsic315508 ! Node: AMod Intrinsic315960 ! Node: And Intrinsic316386 ! Node: ANInt Intrinsic316892 ! Node: Any Intrinsic317656 ! Node: ASin Intrinsic317963 ! Node: Associated Intrinsic318421 ! Node: ATan Intrinsic318755 ! Node: ATan2 Intrinsic319221 ! Node: BesJ0 Intrinsic319772 ! Node: BesJ1 Intrinsic320233 ! Node: BesJN Intrinsic320694 ! Node: BesY0 Intrinsic321225 ! Node: BesY1 Intrinsic321687 ! Node: BesYN Intrinsic322149 ! Node: Bit_Size Intrinsic322684 ! Node: BTest Intrinsic323343 ! Node: CAbs Intrinsic324063 ! Node: CCos Intrinsic324450 ! Node: Ceiling Intrinsic324842 ! Node: CExp Intrinsic325164 ! Node: Char Intrinsic325556 ! Node: ChDir Intrinsic (subroutine)326810 ! Node: ChMod Intrinsic (subroutine)327813 ! Node: CLog Intrinsic329083 ! Node: Cmplx Intrinsic329487 ! Node: Complex Intrinsic330288 ! Node: Conjg Intrinsic331734 ! Node: Cos Intrinsic332158 ! Node: CosH Intrinsic332621 ! Node: Count Intrinsic332996 ! Node: CPU_Time Intrinsic333314 ! Node: CShift Intrinsic334105 ! Node: CSin Intrinsic334427 ! Node: CSqRt Intrinsic334819 ! Node: CTime Intrinsic (subroutine)335229 ! Node: CTime Intrinsic (function)335984 ! Node: DAbs Intrinsic336618 ! Node: DACos Intrinsic337014 ! Node: DASin Intrinsic337405 ! Node: DATan Intrinsic337797 ! Node: DATan2 Intrinsic338190 ! Node: Date_and_Time Intrinsic338645 ! Node: DbesJ0 Intrinsic340009 ! Node: DbesJ1 Intrinsic340402 ! Node: DbesJN Intrinsic340788 ! Node: DbesY0 Intrinsic341244 ! Node: DbesY1 Intrinsic341630 ! Node: DbesYN Intrinsic342016 ! Node: Dble Intrinsic342470 ! Node: DCos Intrinsic343176 ! Node: DCosH Intrinsic343560 ! Node: DDiM Intrinsic343950 ! Node: DErF Intrinsic344382 ! Node: DErFC Intrinsic344751 ! Node: DExp Intrinsic345126 ! Node: Digits Intrinsic345512 ! Node: DiM Intrinsic345829 ! Node: DInt Intrinsic346328 ! Node: DLog Intrinsic346712 ! Node: DLog10 Intrinsic347097 ! Node: DMax1 Intrinsic347495 ! Node: DMin1 Intrinsic347949 ! Node: DMod Intrinsic348401 ! Node: DNInt Intrinsic348829 ! Node: Dot_Product Intrinsic349228 ! Node: DProd Intrinsic349568 ! Node: DSign Intrinsic349950 ! Node: DSin Intrinsic350389 ! Node: DSinH Intrinsic350774 ! Node: DSqRt Intrinsic351165 ! Node: DTan Intrinsic351556 ! Node: DTanH Intrinsic351941 ! Node: DTime Intrinsic (subroutine)352345 ! Node: EOShift Intrinsic353616 ! Node: Epsilon Intrinsic353955 ! Node: ErF Intrinsic354279 ! Node: ErFC Intrinsic354685 ! Node: ETime Intrinsic (subroutine)355245 ! Node: ETime Intrinsic (function)356408 ! Node: Exit Intrinsic357448 ! Node: Exp Intrinsic357957 ! Node: Exponent Intrinsic358419 ! Node: FDate Intrinsic (subroutine)358758 ! Node: FDate Intrinsic (function)359668 ! Node: FGet Intrinsic (subroutine)360440 ! Node: FGetC Intrinsic (subroutine)361277 ! Node: Float Intrinsic362154 ! Node: Floor Intrinsic362554 ! Node: Flush Intrinsic362870 ! Node: FNum Intrinsic363449 ! Node: FPut Intrinsic (subroutine)363897 ! Node: FPutC Intrinsic (subroutine)364694 ! Node: Fraction Intrinsic365541 ! Node: FSeek Intrinsic365882 ! Node: FStat Intrinsic (subroutine)366607 ! Node: FStat Intrinsic (function)368131 ! Node: FTell Intrinsic (subroutine)369420 ! Node: FTell Intrinsic (function)370093 ! Node: GError Intrinsic370610 ! Node: GetArg Intrinsic370984 ! Node: GetCWD Intrinsic (subroutine)371652 ! Node: GetCWD Intrinsic (function)372507 ! Node: GetEnv Intrinsic373126 ! Node: GetGId Intrinsic373713 ! Node: GetLog Intrinsic374019 ! Node: GetPId Intrinsic374557 ! Node: GetUId Intrinsic374865 ! Node: GMTime Intrinsic375170 ! Node: HostNm Intrinsic (subroutine)376178 ! Node: HostNm Intrinsic (function)377267 ! Node: Huge Intrinsic378109 ! Node: IAbs Intrinsic378432 ! Node: IAChar Intrinsic378823 ! Node: IAnd Intrinsic379363 ! Node: IArgC Intrinsic379851 ! Node: IBClr Intrinsic380227 ! Node: IBits Intrinsic380738 ! Node: IBSet Intrinsic381452 ! Node: IChar Intrinsic381954 ! Node: IDate Intrinsic (UNIX)383173 ! Node: IDiM Intrinsic384015 ! Node: IDInt Intrinsic384464 ! Node: IDNInt Intrinsic384857 ! Node: IEOr Intrinsic385256 ! Node: IErrNo Intrinsic385754 ! Node: IFix Intrinsic386081 ! Node: Imag Intrinsic386469 ! Node: ImagPart Intrinsic387474 ! Node: Index Intrinsic388500 ! Node: Int Intrinsic389053 ! Node: Int2 Intrinsic389768 ! Node: Int8 Intrinsic390477 ! Node: IOr Intrinsic391186 ! Node: IRand Intrinsic391666 ! Node: IsaTty Intrinsic392586 ! Node: IShft Intrinsic393010 ! Node: IShftC Intrinsic393840 ! Node: ISign Intrinsic394769 ! Node: ITime Intrinsic395219 ! Node: Kill Intrinsic (subroutine)395621 ! Node: Kind Intrinsic396457 ! Node: LBound Intrinsic396782 ! Node: Len Intrinsic397099 ! Node: Len_Trim Intrinsic397735 ! Node: LGe Intrinsic398147 ! Node: LGt Intrinsic399560 ! Node: Link Intrinsic (subroutine)400465 ! Node: LLe Intrinsic401429 ! Node: LLt Intrinsic402334 ! Node: LnBlnk Intrinsic403228 ! Node: Loc Intrinsic403631 ! Node: Log Intrinsic404062 ! Node: Log10 Intrinsic404653 ! Node: Logical Intrinsic405195 ! Node: Long Intrinsic405518 ! Node: LShift Intrinsic406042 ! Node: LStat Intrinsic (subroutine)407078 ! Node: LStat Intrinsic (function)408889 ! Node: LTime Intrinsic410451 ! Node: MatMul Intrinsic411455 ! Node: Max Intrinsic411773 ! Node: Max0 Intrinsic412324 ! Node: Max1 Intrinsic412775 ! Node: MaxExponent Intrinsic413259 ! Node: MaxLoc Intrinsic413599 ! Node: MaxVal Intrinsic413926 ! Node: MClock Intrinsic414248 ! Node: MClock8 Intrinsic415146 ! Node: Merge Intrinsic416334 ! Node: Min Intrinsic416650 ! Node: Min0 Intrinsic417201 ! Node: Min1 Intrinsic417652 ! Node: MinExponent Intrinsic418136 ! Node: MinLoc Intrinsic418476 ! Node: MinVal Intrinsic418803 ! Node: Mod Intrinsic419122 ! Node: Modulo Intrinsic419645 ! Node: MvBits Intrinsic419964 ! Node: Nearest Intrinsic420830 ! Node: NInt Intrinsic421154 ! Node: Not Intrinsic421992 ! Node: Or Intrinsic422387 ! Node: Pack Intrinsic422885 ! Node: PError Intrinsic423195 ! Node: Precision Intrinsic423649 ! Node: Present Intrinsic423984 ! Node: Product Intrinsic424314 ! Node: Radix Intrinsic424640 ! Node: Rand Intrinsic424957 ! Node: Random_Number Intrinsic425844 ! Node: Random_Seed Intrinsic426197 ! Node: Range Intrinsic426545 ! Node: Real Intrinsic426866 ! Node: RealPart Intrinsic427872 ! Node: Rename Intrinsic (subroutine)428905 ! Node: Repeat Intrinsic429876 ! Node: Reshape Intrinsic430212 ! Node: RRSpacing Intrinsic430541 ! Node: RShift Intrinsic430876 ! Node: Scale Intrinsic431874 ! Node: Scan Intrinsic432190 ! Node: Second Intrinsic (function)432514 ! Node: Second Intrinsic (subroutine)433345 ! Node: Selected_Int_Kind Intrinsic434320 ! Node: Selected_Real_Kind Intrinsic434711 ! Node: Set_Exponent Intrinsic435098 ! Node: Shape Intrinsic435455 ! Node: Short Intrinsic435778 ! Node: Sign Intrinsic436473 ! Node: Signal Intrinsic (subroutine)437073 ! Node: Sin Intrinsic439287 ! Node: SinH Intrinsic439762 ! Node: Sleep Intrinsic440135 ! Node: Sngl Intrinsic440477 ! Node: Spacing Intrinsic440866 ! Node: Spread Intrinsic441190 ! Node: SqRt Intrinsic441511 ! Node: SRand Intrinsic442115 ! Node: Stat Intrinsic (subroutine)442492 ! Node: Stat Intrinsic (function)444106 ! Node: Sum Intrinsic445469 ! Node: SymLnk Intrinsic (subroutine)445801 ! Node: System Intrinsic (subroutine)446832 ! Node: System_Clock Intrinsic447771 ! Node: Tan Intrinsic448895 ! Node: TanH Intrinsic449355 ! Node: Time Intrinsic (UNIX)449737 ! Node: Time8 Intrinsic450722 ! Node: Tiny Intrinsic451901 ! Node: Transfer Intrinsic452216 ! Node: Transpose Intrinsic452547 ! Node: Trim Intrinsic452881 ! Node: TtyNam Intrinsic (subroutine)453211 ! Node: TtyNam Intrinsic (function)453913 ! Node: UBound Intrinsic454482 ! Node: UMask Intrinsic (subroutine)454827 ! Node: Unlink Intrinsic (subroutine)455524 ! Node: Unpack Intrinsic456421 ! Node: Verify Intrinsic456756 ! Node: XOr Intrinsic457075 ! Node: ZAbs Intrinsic457591 ! Node: ZCos Intrinsic457960 ! Node: ZExp Intrinsic458333 ! Node: ZLog Intrinsic458706 ! Node: ZSin Intrinsic459079 ! Node: ZSqRt Intrinsic459453 ! Node: Scope and Classes of Names459810 ! Node: Underscores in Symbol Names460292 ! Node: I/O460539 ! Node: Fortran 90 Features461312 ! Node: Other Dialects464114 ! Node: Source Form465273 ! Node: Carriage Returns466488 ! Node: Tabs466817 ! Node: Short Lines467690 ! Node: Long Lines468664 ! Node: Ampersands469275 ! Node: Trailing Comment469529 ! Node: Debug Line470305 ! Node: Dollar Signs470974 ! Node: Case Sensitivity471260 ! Node: VXT Fortran479876 ! Node: Double Quote Meaning481059 ! Node: Exclamation Point481987 ! Node: Fortran 90483030 ! Node: Pedantic Compilation484082 ! Node: Distensions488046 ! Node: Ugly Implicit Argument Conversion489010 ! Node: Ugly Assumed-Size Arrays489624 ! Node: Ugly Complex Part Extraction491345 ! Node: Ugly Null Arguments492967 ! Node: Ugly Conversion of Initializers494570 ! Node: Ugly Integer Conversions496335 ! Node: Ugly Assigned Labels497443 ! Node: Compiler499374 ! Node: Compiler Limits500012 ! Node: Run-time Environment Limits500903 ! Node: Timer Wraparounds502845 ! Node: Year 2000 (Y2K) Problems504124 ! Node: Array Size508630 ! Node: Character-variable Length509815 ! Node: Year 10000 (Y10K) Problems510324 ! Node: Compiler Types510870 ! Node: Compiler Constants515581 ! Node: Compiler Intrinsics516440 ! Node: Intrinsic Groups517367 ! Node: Other Intrinsics520808 ! Node: ACosD Intrinsic528406 ! Node: AIMax0 Intrinsic528687 ! Node: AIMin0 Intrinsic528996 ! Node: AJMax0 Intrinsic529306 ! Node: AJMin0 Intrinsic529616 ! Node: ASinD Intrinsic529925 ! Node: ATan2D Intrinsic530231 ! Node: ATanD Intrinsic530539 ! Node: BITest Intrinsic530845 ! Node: BJTest Intrinsic531154 ! Node: CDAbs Intrinsic531463 ! Node: CDCos Intrinsic531836 ! Node: CDExp Intrinsic532211 ! Node: CDLog Intrinsic532586 ! Node: CDSin Intrinsic532961 ! Node: CDSqRt Intrinsic533337 ! Node: ChDir Intrinsic (function)533730 ! Node: ChMod Intrinsic (function)534558 ! Node: CosD Intrinsic535671 ! Node: DACosD Intrinsic535983 ! Node: DASinD Intrinsic536291 ! Node: DATan2D Intrinsic536602 ! Node: DATanD Intrinsic536916 ! Node: Date Intrinsic537225 ! Node: DbleQ Intrinsic537944 ! Node: DCmplx Intrinsic538248 ! Node: DConjg Intrinsic539879 ! Node: DCosD Intrinsic540264 ! Node: DFloat Intrinsic540570 ! Node: DFlotI Intrinsic540942 ! Node: DFlotJ Intrinsic541252 ! Node: DImag Intrinsic541561 ! Node: DReal Intrinsic541938 ! Node: DSinD Intrinsic543085 ! Node: DTanD Intrinsic543389 ! Node: DTime Intrinsic (function)543704 ! Node: FGet Intrinsic (function)544934 ! Node: FGetC Intrinsic (function)545707 ! Node: FloatI Intrinsic546523 ! Node: FloatJ Intrinsic546843 ! Node: FPut Intrinsic (function)547162 ! Node: FPutC Intrinsic (function)547898 ! Node: IDate Intrinsic (VXT)548691 ! Node: IIAbs Intrinsic549798 ! Node: IIAnd Intrinsic550108 ! Node: IIBClr Intrinsic550413 ! Node: IIBits Intrinsic550722 ! Node: IIBSet Intrinsic551032 ! Node: IIDiM Intrinsic551341 ! Node: IIDInt Intrinsic551647 ! Node: IIDNnt Intrinsic551956 ! Node: IIEOr Intrinsic552265 ! Node: IIFix Intrinsic552570 ! Node: IInt Intrinsic552873 ! Node: IIOr Intrinsic553172 ! Node: IIQint Intrinsic553472 ! Node: IIQNnt Intrinsic553780 ! Node: IIShftC Intrinsic554091 ! Node: IISign Intrinsic554405 ! Node: IMax0 Intrinsic554715 ! Node: IMax1 Intrinsic555020 ! Node: IMin0 Intrinsic555324 ! Node: IMin1 Intrinsic555628 ! Node: IMod Intrinsic555931 ! Node: INInt Intrinsic556231 ! Node: INot Intrinsic556533 ! Node: IZExt Intrinsic556833 ! Node: JIAbs Intrinsic557136 ! Node: JIAnd Intrinsic557440 ! Node: JIBClr Intrinsic557745 ! Node: JIBits Intrinsic558054 ! Node: JIBSet Intrinsic558364 ! Node: JIDiM Intrinsic558673 ! Node: JIDInt Intrinsic558979 ! Node: JIDNnt Intrinsic559288 ! Node: JIEOr Intrinsic559597 ! Node: JIFix Intrinsic559902 ! Node: JInt Intrinsic560205 ! Node: JIOr Intrinsic560504 ! Node: JIQint Intrinsic560804 ! Node: JIQNnt Intrinsic561112 ! Node: JIShft Intrinsic561422 ! Node: JIShftC Intrinsic561733 ! Node: JISign Intrinsic562047 ! Node: JMax0 Intrinsic562357 ! Node: JMax1 Intrinsic562662 ! Node: JMin0 Intrinsic562966 ! Node: JMin1 Intrinsic563270 ! Node: JMod Intrinsic563573 ! Node: JNInt Intrinsic563873 ! Node: JNot Intrinsic564175 ! Node: JZExt Intrinsic564475 ! Node: Kill Intrinsic (function)564788 ! Node: Link Intrinsic (function)565469 ! Node: QAbs Intrinsic566280 ! Node: QACos Intrinsic566590 ! Node: QACosD Intrinsic566894 ! Node: QASin Intrinsic567202 ! Node: QASinD Intrinsic567508 ! Node: QATan Intrinsic567816 ! Node: QATan2 Intrinsic568122 ! Node: QATan2D Intrinsic568432 ! Node: QATanD Intrinsic568746 ! Node: QCos Intrinsic569055 ! Node: QCosD Intrinsic569356 ! Node: QCosH Intrinsic569659 ! Node: QDiM Intrinsic569962 ! Node: QExp Intrinsic570261 ! Node: QExt Intrinsic570559 ! Node: QExtD Intrinsic570858 ! Node: QFloat Intrinsic571162 ! Node: QInt Intrinsic571469 ! Node: QLog Intrinsic571769 ! Node: QLog10 Intrinsic572069 ! Node: QMax1 Intrinsic572376 ! Node: QMin1 Intrinsic572681 ! Node: QMod Intrinsic572984 ! Node: QNInt Intrinsic573284 ! Node: QSin Intrinsic573586 ! Node: QSinD Intrinsic573886 ! Node: QSinH Intrinsic574189 ! Node: QSqRt Intrinsic574493 ! Node: QTan Intrinsic574796 ! Node: QTanD Intrinsic575096 ! Node: QTanH Intrinsic575399 ! Node: Rename Intrinsic (function)575715 ! Node: Secnds Intrinsic576519 ! Node: Signal Intrinsic (function)577118 ! Node: SinD Intrinsic579947 ! Node: SnglQ Intrinsic580259 ! Node: SymLnk Intrinsic (function)580574 ! Node: System Intrinsic (function)581441 ! Node: TanD Intrinsic582768 ! Node: Time Intrinsic (VXT)583085 ! Node: UMask Intrinsic (function)583839 ! Node: Unlink Intrinsic (function)584447 ! Node: ZExt Intrinsic585175 ! Node: Other Compilers585463 ! Node: Dropping f2c Compatibility587983 ! Node: Compilers Other Than f2c591055 ! Node: Other Languages592853 ! Node: Interoperating with C and C++593118 ! Node: C Interfacing Tools594151 ! Node: C Access to Type Information595079 ! Node: f2c Skeletons and Prototypes595766 ! Ref: f2c Skeletons and Prototypes-Footnote-1597213 ! Node: C++ Considerations597467 ! Node: Startup Code598134 ! Node: Debugging and Interfacing602923 ! Node: Main Program Unit605610 ! Node: Procedures608104 ! Node: Functions610762 ! Node: Names612380 ! Node: Common Blocks615523 ! Node: Local Equivalence Areas615787 ! Node: Complex Variables616771 ! Node: Arrays617891 ! Node: Adjustable Arrays621224 ! Node: Alternate Entry Points624083 ! Node: Alternate Returns630785 ! Node: Assigned Statement Labels631686 ! Node: Run-time Library Errors633531 ! Node: Collected Fortran Wisdom635483 ! Node: Advantages Over f2c636919 ! Node: Language Extensions637900 ! Node: Diagnostic Abilities639074 ! Node: Compiler Options639465 ! Node: Compiler Speed640513 ! Node: Program Speed641223 ! Node: Ease of Debugging642808 ! Node: Character and Hollerith Constants645238 ! Node: Block Data and Libraries646210 ! Node: Loops649539 ! Node: Working Programs654765 ! Node: Not My Type655509 ! Node: Variables Assumed To Be Zero657440 ! Node: Variables Assumed To Be Saved658494 ! Node: Unwanted Variables659864 ! Node: Unused Arguments660744 ! Node: Surprising Interpretations of Code661207 ! Node: Aliasing Assumed To Work662054 ! Node: Output Assumed To Flush668252 ! Node: Large File Unit Numbers671025 ! Node: Floating-point precision673177 ! Node: Inconsistent Calling Sequences674438 ! Node: Overly Convenient Options675418 ! Node: Faster Programs678724 ! Node: Aligned Data679170 ! Node: Prefer Automatic Uninitialized Variables683863 ! Node: Avoid f2c Compatibility685229 ! Node: Use Submodel Options685697 ! Node: Trouble686701 ! Node: But-bugs688025 ! Node: Signal 11 and Friends689798 ! Node: Cannot Link Fortran Programs691878 ! Node: Large Common Blocks693161 ! Node: Debugger Problems693587 ! Node: NeXTStep Problems694302 ! Node: Stack Overflow696128 ! Node: Nothing Happens699017 ! Node: Strange Behavior at Run Time700631 ! Node: Floating-point Errors703119 ! Node: Known Bugs709082 ! Node: Missing Features716373 ! Node: Better Source Model718300 ! Node: Fortran 90 Support720069 ! Node: Intrinsics in PARAMETER Statements721170 ! Node: Arbitrary Concatenation721921 ! Node: SELECT CASE on CHARACTER Type722324 ! Node: RECURSIVE Keyword722611 ! Node: Increasing Precision/Range723038 ! Node: Popular Non-standard Types724576 ! Node: Full Support for Compiler Types724915 ! Node: Array Bounds Expressions725551 ! Node: POINTER Statements725998 ! Node: Sensible Non-standard Constructs726881 ! Node: READONLY Keyword729207 ! Node: FLUSH Statement730117 ! Node: Expressions in FORMAT Statements730487 ! Node: Explicit Assembler Code731662 ! Node: Q Edit Descriptor731951 ! Node: Old-style PARAMETER Statements732455 ! Node: TYPE and ACCEPT I/O Statements733189 ! Node: STRUCTURE UNION RECORD MAP733755 ! Node: OPEN CLOSE and INQUIRE Keywords734241 ! Node: ENCODE and DECODE735221 ! Node: AUTOMATIC Statement736316 ! Node: Suppressing Space Padding737563 ! Node: Fortran Preprocessor738790 ! Node: Bit Operations on Floating-point Data739363 ! Node: Really Ugly Character Assignments739896 ! Node: POSIX Standard740271 ! Node: Floating-point Exception Handling740511 ! Node: Nonportable Conversions741913 ! Node: Large Automatic Arrays742456 ! Node: Support for Threads742863 ! Node: Enabling Debug Lines743288 ! Node: Better Warnings743665 ! Node: Gracefully Handle Sensible Bad Code745301 ! Node: Non-standard Conversions746045 ! Node: Non-standard Intrinsics746388 ! Node: Modifying DO Variable746804 ! Node: Better Pedantic Compilation747480 ! Node: Warn About Implicit Conversions748108 ! Node: Invalid Use of Hollerith Constant748695 ! Node: Dummy Array Without Dimensioning Dummy749238 ! Node: Invalid FORMAT Specifiers750151 ! Node: Ambiguous Dialects750552 ! Node: Unused Labels750963 ! Node: Informational Messages751185 ! Node: Uninitialized Variables at Run Time751588 ! Node: Portable Unformatted Files752194 ! Ref: Portable Unformatted Files-Footnote-1755150 ! Node: Better List-directed I/O755178 ! Node: Default to Console I/O756083 ! Node: Labels Visible to Debugger756731 ! Node: Disappointments757132 ! Node: Mangling of Names757770 ! Node: Multiple Definitions of External Names758620 ! Node: Limitation on Implicit Declarations759983 ! Node: Non-bugs760267 ! Node: Backslash in Constants761392 ! Node: Initializing Before Specifying766281 ! Node: Context-Sensitive Intrinsicness767423 ! Node: Context-Sensitive Constants769319 ! Node: Equivalence Versus Equality772275 ! Node: Order of Side Effects775318 ! Node: Warnings and Errors777046 ! Node: Open Questions778444 ! Node: Bugs778913 ! Node: Bug Criteria779601 ! Node: Bug Reporting785838 ! Node: Service786199 ! Node: Adding Options786665 ! Node: Projects791258 ! Node: Efficiency792101 ! Node: Better Optimization794998 ! Node: Simplify Porting798368 ! Node: More Extensions800123 ! Node: Machine Model803211 ! Node: Internals Documentation804497 ! Node: Internals Improvements804804 ! Node: Better Diagnostics808348 ! Node: Front End809265 ! Node: Overview of Sources810043 ! Node: Overview of Translation Process817432 ! Node: g77stripcard821710 ! Node: lex.c824187 ! Node: sta.c833727 ! Node: sti.c833838 ! Node: stq.c833949 ! Node: stb.c834060 ! Node: expr.c834172 ! Node: stc.c834286 ! Node: std.c834398 ! Node: ste.c834509 ! Node: Gotchas (Transforming)834637 ! Node: TBD (Transforming)842756 ! Node: Philosophy of Code Generation845452 ! Node: Two-pass Design851356 ! Node: Two-pass Code852513 ! Node: Why Two Passes853246 ! Node: Challenges Posed859314 ! Node: Transforming Statements861798 ! Node: Statements Needing Temporaries862648 ! Node: Transforming DO WHILE865412 ! Node: Transforming Iterative DO866595 ! Node: Transforming Block IF867424 ! Node: Transforming SELECT CASE868789 ! Node: Transforming Expressions872011 ! Node: Internal Naming Conventions874000 ! Node: Diagnostics876999 ! Node: CMPAMBIG878397 ! Node: EXPIMP884814 ! Node: INTGLOB886050 ! Node: LEX888294 ! Node: GLOBALS893749 ! Node: LINKFAIL896413 ! Node: Y2KBAD897037 ! Node: Keyword Index897387  End Tag Table diff -Nrc3pad gcc-3.3.4/gcc/f/NEWS gcc-3.3.5/gcc/f/NEWS *** gcc-3.3.4/gcc/f/NEWS 2004-06-01 00:15:54.000000000 +0000 --- gcc-3.3.5/gcc/f/NEWS 2004-09-30 18:14:14.000000000 +0000 *************** _Note:_ This file is automatically gener *** 2,8 **** `news0.texi' and `news.texi'. `NEWS' is _not_ a source file, although it is normally included within source distributions. ! This file lists news about the GCC-3.3.4 version (and some other versions) of the GNU Fortran compiler. Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc. You may copy, distribute, and modify it freely as long as you --- 2,8 ---- `news0.texi' and `news.texi'. `NEWS' is _not_ a source file, although it is normally included within source distributions. ! This file lists news about the GCC-3.3.5 version (and some other versions) of the GNU Fortran compiler. Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc. You may copy, distribute, and modify it freely as long as you *************** In 0.5.25, `GCC' 2.95 (`EGCS' 1.2) versu *** 383,390 **** In 0.5.24 versus 0.5.23: ======================== ! There is no `g77' version 0.5.24 at this time, or planned. 0.5.24 is ! the version number designated for bug fixes and, perhaps, some new features added, to 0.5.23. Version 0.5.23 requires `gcc' 2.8.1, as 0.5.24 was planned to require. --- 383,390 ---- In 0.5.24 versus 0.5.23: ======================== ! There is no `g77' version 0.5.24 at this time, or planned. 0.5.24 ! is the version number designated for bug fixes and, perhaps, some new features added, to 0.5.23. Version 0.5.23 requires `gcc' 2.8.1, as 0.5.24 was planned to require. *************** In `EGCS' 1.1 versus `g77' 0.5.23: *** 606,612 **** In previous versions: ===================== ! Information on previous versions is not provided in this `gcc/gcc/f/NEWS' file, to keep it short. See `gcc/gcc/f/news.texi', or any of its other derivations (Info, HTML, dvi forms) for such information. --- 606,612 ---- In previous versions: ===================== ! Information on previous versions is not provided in this `gcc/gcc/f/NEWS' file, to keep it short. See `gcc/gcc/f/news.texi', or any of its other derivations (Info, HTML, dvi forms) for such information. diff -Nrc3pad gcc-3.3.4/libf2c/ChangeLog gcc-3.3.5/libf2c/ChangeLog *** gcc-3.3.4/libf2c/ChangeLog 2004-05-31 22:35:54.000000000 +0000 --- gcc-3.3.5/libf2c/ChangeLog 2004-09-30 16:47:39.000000000 +0000 *************** *** 1,3 **** --- 1,7 ---- + 2004-09-30 Release Manager + + * GCC 3.3.5 Released. + 2004-05-31 Release Manager * GCC 3.3.4 Released.