diff options
Diffstat (limited to 'man-pages-posix-2003/man1p/fort77.1p')
-rw-r--r-- | man-pages-posix-2003/man1p/fort77.1p | 505 |
1 files changed, 505 insertions, 0 deletions
diff --git a/man-pages-posix-2003/man1p/fort77.1p b/man-pages-posix-2003/man1p/fort77.1p new file mode 100644 index 0000000..bc07d53 --- /dev/null +++ b/man-pages-posix-2003/man1p/fort77.1p @@ -0,0 +1,505 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "FORT77" 1P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" fort77 +.SH PROLOG +This manual page is part of the POSIX Programmer's Manual. +The Linux implementation of this interface may differ (consult +the corresponding Linux manual page for details of Linux behavior), +or the interface may not be implemented on Linux. +.SH NAME +fort77 \- FORTRAN compiler (\fBFORTRAN\fP) +.SH SYNOPSIS +.LP +\fBfort77\fP \fB[\fP\fB-c\fP\fB][\fP\fB-g\fP\fB][\fP\fB-L\fP +\fIdirectory\fP\fB]\fP\fB...\fP \fB[\fP\fB-O\fP \fIoptlevel\fP\fB][\fP\fB-o\fP +\fIoutfile\fP\fB][\fP\fB-s\fP\fB][\fP\fB-w\fP\fB] +.br +\fP \fB\ \ \ \ \ \ \fP \fB\fP\fIoperand\fP\fB... \fP +.SH DESCRIPTION +.LP +The \fIfort77\fP utility is the interface to the FORTRAN compilation +system; it shall accept the full FORTRAN-77 language +defined by the ANSI\ X3.9-1978 standard. The system conceptually consists +of a compiler and link editor. The files referenced +by \fIoperand\fPs are compiled and linked to produce an executable +file. It is unspecified whether the linking occurs entirely +within the operation of \fIfort77\fP; some implementations may produce +objects that are not fully resolved until the file is +executed. +.LP +If the \fB-c\fP option is present, for all pathname operands of the +form \fIfile\fP \fB.f\fP, the files: +.sp +.RS +.nf + +\fB$(basename\fP \fIpathname\fP\fB.f).o +\fP +.fi +.RE +.LP +shall be created or overwritten as the result of successful compilation. +If the \fB-c\fP option is not specified, it is +unspecified whether such \fB.o\fP files are created or deleted for +the \fIfile\fP \fB.f\fP operands. +.LP +If there are no options that prevent link editing (such as \fB-c\fP) +and all operands compile and link without error, the +resulting executable file shall be written into the file named by +the \fB-o\fP option (if present) or to the file \fBa.out\fP. +The executable file shall be created as specified in the System Interfaces +volume of IEEE\ Std\ 1003.1-2001, except that +the file permissions shall be set to: +.sp +.RS +.nf + +S_IRWXO | S_IRWXG | S_IRWXU +.fi +.RE +.LP +and that the bits specified by the \fIumask\fP of the process shall +be cleared. +.SH OPTIONS +.LP +The \fIfort77\fP utility shall conform to the Base Definitions volume +of IEEE\ Std\ 1003.1-2001, Section 12.2, Utility Syntax Guidelines, +except that: +.IP " *" 3 +The \fB-l\fP \fIlibrary\fP operands have the format of options, but +their position within a list of operands affects the order +in which libraries are searched. +.LP +.IP " *" 3 +The order of specifying the multiple \fB-L\fP options is significant. +.LP +.IP " *" 3 +Conforming applications shall specify each option separately; that +is, grouping option letters (for example, \fB-cg\fP) need +not be recognized by all implementations. +.LP +.LP +The following options shall be supported: +.TP 7 +\fB-c\fP +Suppress the link-edit phase of the compilation, and do not remove +any object files that are produced. +.TP 7 +\fB-g\fP +Produce symbolic information in the object or executable files; the +nature of this information is unspecified, and may be +modified by implementation-defined interactions with other options. +.TP 7 +\fB-s\fP +Produce object or executable files, or both, from which symbolic and +other information not required for proper execution using +the \fIexec\fP family of functions defined in the System Interfaces +volume of IEEE\ Std\ 1003.1-2001 has been removed +(stripped). If both \fB-g\fP and \fB-s\fP options are present, the +action taken is unspecified. +.TP 7 +\fB-o\ \fP \fIoutfile\fP +Use the pathname \fIoutfile\fP, instead of the default \fBa.out\fP, +for the executable file produced. If the \fB-o\fP option +is present with \fB-c\fP, the result is unspecified. +.TP 7 +\fB-L\ \fP \fIdirectory\fP +Change the algorithm of searching for the libraries named in \fB-l\fP +operands to look in the directory named by the +\fIdirectory\fP pathname before looking in the usual places. Directories +named in \fB-L\fP options shall be searched in the +specified order. At least ten instances of this option shall be supported +in a single \fIfort77\fP command invocation. If a +directory specified by a \fB-L\fP option contains a file named \fBlibf.a\fP, +the results are unspecified. +.TP 7 +\fB-O\ \fP \fIoptlevel\fP +Specify the level of code optimization. If the \fIoptlevel\fP option-argument +is the digit \fB'0'\fP, all special code +optimizations shall be disabled. If it is the digit \fB'1'\fP, the +nature of the optimization is unspecified. If the \fB-O\fP +option is omitted, the nature of the system's default optimization +is unspecified. It is unspecified whether code generated in the +presence of the \fB-O\fP 0 option is the same as that generated when +\fB-O\fP is omitted. Other \fIoptlevel\fP values may be +supported. +.TP 7 +\fB-w\fP +Suppress warnings. +.sp +.LP +Multiple instances of \fB-L\fP options can be specified. +.SH OPERANDS +.LP +An \fIoperand\fP is either in the form of a pathname or the form \fB-l\fP +\fIlibrary\fP. At least one operand of the pathname +form shall be specified. The following operands shall be supported: +.TP 7 +\fIfile.\fP\fBf\fP +The pathname of a FORTRAN source file to be compiled and optionally +passed to the link editor. The filename operand shall be of +this form if the \fB-c\fP option is used. +.TP 7 +\fIfile.\fP\fBa\fP +A library of object files typically produced by \fIar\fP, and passed +directly to the link +editor. Implementations may recognize implementation-defined suffixes +other than \fB.a\fP as denoting object file libraries. +.TP 7 +\fIfile.\fP\fBo\fP +An object file produced by \fIfort77\fP \fB-c\fP and passed directly +to the link editor. Implementations may recognize +implementation-defined suffixes other than \fB.o\fP as denoting object +files. +.sp +.LP +The processing of other files is implementation-defined. +.TP 7 +\fB-l\ \fP \fIlibrary\fP +(The letter ell.) Search the library named: +.sp +.RS +.nf + +\fBlib\fP\fIlibrary\fP\fB.a +\fP +.fi +.RE +.LP +A library is searched when its name is encountered, so the placement +of a \fB-l\fP operand is significant. Several standard +libraries can be specified in this manner, as described in the EXTENDED +DESCRIPTION section. Implementations may recognize +implementation-defined suffixes other than \fB.a\fP as denoting libraries. +.sp +.SH STDIN +.LP +Not used. +.SH INPUT FILES +.LP +The input file shall be one of the following: a text file containing +FORTRAN source code; an object file in the format produced +by \fIfort77\fP \fB-c\fP; or a library of object files, in the format +produced by archiving zero or more object files, using \fIar\fP. Implementations +may supply additional utilities that produce files in these formats. +Additional input files are implementation-defined. +.LP +A <tab> encountered within the first six characters on a line of source +code shall cause the compiler to interpret the +following character as if it were the seventh character on the line +(that is, in column 7). +.SH ENVIRONMENT VARIABLES +.LP +The following environment variables shall affect the execution of +\fIfort77\fP: +.TP 7 +\fILANG\fP +Provide a default value for the internationalization variables that +are unset or null. (See the Base Definitions volume of +IEEE\ Std\ 1003.1-2001, Section 8.2, Internationalization Variables +for +the precedence of internationalization variables used to determine +the values of locale categories.) +.TP 7 +\fILC_ALL\fP +If set to a non-empty string value, override the values of all the +other internationalization variables. +.TP 7 +\fILC_CTYPE\fP +Determine the locale for the interpretation of sequences of bytes +of text data as characters (for example, single-byte as +opposed to multi-byte characters in arguments and input files). +.TP 7 +\fILC_MESSAGES\fP +Determine the locale that should be used to affect the format and +contents of diagnostic messages written to standard +error. +.TP 7 +\fINLSPATH\fP +Determine the location of message catalogs for the processing of \fILC_MESSAGES +\&.\fP +.TP 7 +\fITMPDIR\fP +Determine the pathname that should override the default directory +for temporary files, if any. +.sp +.SH ASYNCHRONOUS EVENTS +.LP +Default. +.SH STDOUT +.LP +Not used. +.SH STDERR +.LP +The standard error shall be used only for diagnostic messages. If +more than one \fIfile\fP operand ending in \fB.f\fP (or +possibly other unspecified suffixes) is given, for each such file: +.sp +.RS +.nf + +\fB"%s:\\n", <\fP\fIfile\fP\fB> +\fP +.fi +.RE +.LP +may be written to allow identification of the diagnostic message with +the appropriate input file. +.LP +This utility may produce warning messages about certain conditions +that do not warrant returning an error (non-zero) exit +value. +.SH OUTPUT FILES +.LP +Object files, listing files, and executable files shall be produced +in unspecified formats. +.SH EXTENDED DESCRIPTION +.SS Standard Libraries +.LP +The \fIfort77\fP utility shall recognize the following \fB-l\fP operand +for the standard library: +.TP 7 +\fB-l\ f\fP +This library contains all functions referenced in the ANSI\ X3.9-1978 +standard. This operand shall not be required to be +present to cause a search of this library. +.sp +.LP +In the absence of options that inhibit invocation of the link editor, +such as \fB-c\fP, the \fIfort77\fP utility shall cause +the equivalent of a \fB-l\ f\fP operand to be passed to the link editor +as the last \fB-l\fP operand, causing it to be +searched after all other object files and libraries are loaded. +.LP +It is unspecified whether the library \fBlibf.a\fP exists as a regular +file. The implementation may accept as \fB-l\fP +operands names of objects that do not exist as regular files. +.SS External Symbols +.LP +The FORTRAN compiler and link editor shall support the significance +of external symbols up to a length of at least 31 bytes; +case folding is permitted. The action taken upon encountering symbols +exceeding the implementation-defined maximum symbol length is +unspecified. +.LP +The compiler and link editor shall support a minimum of 511 external +symbols per source or object file, and a minimum of 4095 +external symbols total. A diagnostic message is written to standard +output if the implementation-defined limit is exceeded; other +actions are unspecified. +.SH EXIT STATUS +.LP +The following exit values shall be returned: +.TP 7 +\ 0 +Successful compilation or link edit. +.TP 7 +>0 +An error occurred. +.sp +.SH CONSEQUENCES OF ERRORS +.LP +When \fIfort77\fP encounters a compilation error, it shall write a +diagnostic to standard error and continue to compile other +source code operands. It shall return a non-zero exit status, but +it is implementation-defined whether an object module is created. +If the link edit is unsuccessful, a diagnostic message shall be written +to standard error, and \fIfort77\fP shall exit with a +non-zero status. +.LP +\fIThe following sections are informative.\fP +.SH APPLICATION USAGE +.LP +None. +.SH EXAMPLES +.LP +The following usage example compiles \fBxyz.f\fP and creates the executable +file \fBfoo\fP: +.sp +.RS +.nf + +\fBfort77 -o foo xyz.f +\fP +.fi +.RE +.LP +The following example compiles \fBxyz.f\fP and creates the object +file \fBxyz.o\fP: +.sp +.RS +.nf + +\fBfort77 -c xyz.f +\fP +.fi +.RE +.LP +The following example compiles \fBxyz.f\fP and creates the executable +file \fBa.out\fP: +.sp +.RS +.nf + +\fBfort77 xyz.f +\fP +.fi +.RE +.LP +The following example compiles \fBxyz.f\fP, links it with \fBb.o\fP, +and creates the executable \fBa.out\fP: +.sp +.RS +.nf + +\fBfort77 xyz.f b.o +\fP +.fi +.RE +.SH RATIONALE +.LP +The name of this utility was chosen as \fIfort77\fP to parallel the +renaming of the C compiler. The name \fIf77\fP was not +chosen to avoid problems with historical implementations. The ANSI\ X3.9-1978 +standard was selected as a normative reference +because the ISO/IEC version of FORTRAN-77 has been superseded by the +ISO/IEC\ 1539:1990 standard (Fortran-90). +.LP +The file inclusion and symbol definition \fB#define\fP mechanisms +used by the \fIc99\fP +utility were not included in this volume of IEEE\ Std\ 1003.1-2001-even +though they are commonly implemented-since there is +no requirement that the FORTRAN compiler use the C preprocessor. +.LP +The \fB-onetrip\fP option was not included in this volume of IEEE\ Std\ 1003.1-2001, +even though many historical +compilers support it, because it is derived from FORTRAN-66; it is +an anachronism that should not be perpetuated. +.LP +Some implementations produce compilation listings. This aspect of +FORTRAN has been left unspecified because there was +controversy concerning the various methods proposed for implementing +it: a \fB-V\fP option overlapped with historical vendor +practice and a naming convention of creating files with \fB.l\fP suffixes +collided with historical \fIlex\fP file naming practice. +.LP +There is no \fB-I\fP option in this version of this volume of IEEE\ Std\ 1003.1-2001 +to specify a directory for file +inclusion. An INCLUDE directive has been a part of the Fortran-90 +discussions, but an interface supporting that standard is not in +the current scope. +.LP +It is noted that many FORTRAN compilers produce an object module even +when compilation errors occur; during a subsequent +compilation, the compiler may patch the object module rather than +recompiling all the code. Consequently, it is left to the +implementor whether or not an object file is created. +.LP +A reference to MIL-STD-1753 was removed from an early proposal in +response to a request from the POSIX FORTRAN-binding standard +developers. It was not the intention of the standard developers to +require certification of the FORTRAN compiler, and +IEEE\ Std\ 1003.9-1992 does not specify the military standard or any +special preprocessing requirements. Furthermore, use +of that document would have been inappropriate for an international +standard. +.LP +The specification of optimization has been subject to changes through +early proposals. At one time, \fB-O\fP and \fB-N\fP were +Booleans: optimize and do not optimize (with an unspecified default). +Some historical practice led this to be changed to: +.TP 7 +\fB-O\fP\ 0 +No optimization. +.TP 7 +\fB-O\fP\ 1 +Some level of optimization. +.TP 7 +\fB-O\ \fP \fIn\fP +Other, unspecified levels of optimization. +.sp +.LP +It is not always clear whether "good code generation" is the same +thing as optimization. Simple optimizations of local actions +do not usually affect the semantics of a program. The \fB-O\fP 0 option +has been included to accommodate the very particular +nature of scientific calculations in a highly optimized environment; +compilers make errors. Some degree of optimization is +expected, even if it is not documented here, and the ability to shut +it off completely could be important when porting an +application. An implementation may treat \fB-O\fP 0 as "do less than +normal" if it wishes, but this is only meaningful if any of +the operations it performs can affect the semantics of a program. +It is highly dependent on the implementation whether doing less +than normal is logical. It is not the intent of the \fB-O\fP 0 option +to ask for inefficient code generation, but rather to assure +that any semantically visible optimization is suppressed. +.LP +The specification of standard library access is consistent with the +C compiler specification. Implementations are not required +to have \fB/usr/lib/libf.a\fP, as many historical implementations +do, but if not they are required to recognize \fBf\fP as a +token. +.LP +External symbol size limits are in normative text; conforming applications +need to know these limits. However, the minimum +maximum symbol length should be taken as a constraint on a conforming +application, not on an implementation, and consequently the +action taken for a symbol exceeding the limit is unspecified. The +minimum size for the external symbol table was added for similar +reasons. +.LP +The CONSEQUENCES OF ERRORS section clearly specifies the behavior +of the compiler when compilation or link-edit errors occur. +The behavior of several historical implementations was examined, and +the choice was made to be silent on the status of the +executable, or \fBa.out\fP, file in the face of compiler or linker +errors. If a linker writes the executable file, then links it +on disk with \fIlseek\fP()s and \fIwrite\fP()s, the +partially linked executable file can be left on disk and its execute +bits turned off if the link edit fails. However, if the linker +links the image in memory before writing the file to disk, it need +not touch the executable file (if it already exists) because the +link edit fails. Since both approaches are historical practice, a +conforming application shall rely on the exit status of +\fIfort77\fP, rather than on the existence or mode of the executable +file. +.LP +The \fB-g\fP and \fB-s\fP options are not specified as mutually-exclusive. +Historically these two options have been +mutually-exclusive, but because both are so loosely specified, it +seemed appropriate to leave their interaction unspecified. +.LP +The requirement that conforming applications specify compiler options +separately is to reserve the multi-character option name +space for vendor-specific compiler options, which are known to exist +in many historical implementations. Implementations are not +required to recognize, for example, \fB-gc\fP as if it were \fB-g\fP +\fB-c\fP; nor are they forbidden from doing so. The +SYNOPSIS shows all of the options separately to highlight this requirement +on applications. +.LP +Echoing filenames to standard error is considered a diagnostic message +because it would otherwise be difficult to associate an +error message with the erring file. They are described with "may" +to allow implementations to use other methods of identifying +files and to parallel the description in \fIc99\fP. +.SH FUTURE DIRECTIONS +.LP +A compilation system based on the ISO/IEC\ 1539:1990 standard (Fortran-90) +may be considered for a future version; it may +have a different utility name from \fIfort77\fP. +.SH SEE ALSO +.LP +\fIar\fP, \fIasa\fP, \fIc99\fP, \fIumask\fP(), the System Interfaces +volume of IEEE\ Std\ 1003.1-2001, \fIexec\fP +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. In the +event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . |