diff options
Diffstat (limited to 'man-pages-posix-2013/man1p/fort77.1p')
-rw-r--r-- | man-pages-posix-2013/man1p/fort77.1p | 581 |
1 files changed, 581 insertions, 0 deletions
diff --git a/man-pages-posix-2013/man1p/fort77.1p b/man-pages-posix-2013/man1p/fort77.1p new file mode 100644 index 0000000..f14ea4f --- /dev/null +++ b/man-pages-posix-2013/man1p/fort77.1p @@ -0,0 +1,581 @@ +'\" et +.TH FORT77 "1P" 2013 "IEEE/The Open Group" "POSIX Programmer's Manual" +.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 +\(em FORTRAN compiler (\fBFORTRAN\fP) +.SH SYNOPSIS +.LP +.nf +fort77 \fB[\fR\(mic\fB] [\fR\(mig\fB] [\fR\(miL \fIdirectory\fB]\fR...\fB [\fR\(miO \fIoptlevel\fB] [\fR\(mio \fIoutfile\fB] [\fR\(mis\fB] + [\fR\(miw\fB] \fIoperand\fR... +.fi +.SH DESCRIPTION +The +.IR fort77 +utility is the interface to the FORTRAN compilation system; it shall +accept the full FORTRAN-77 language defined by the ANSI\ X3.9\(hy1978 standard. The system +conceptually consists of a compiler and link editor. The files +referenced by +.IR operand s +are compiled and linked to produce an executable file. It is +unspecified whether the linking occurs entirely within the operation of +.IR fort77 ; +some implementations may produce objects that are not fully resolved +until the file is executed. +.P +If the +.BR \(mic +option is present, for all pathname operands of the form +.IR file \c +.BR .f , +the files: +.sp +.RS 4 +.nf +\fB +$(basename \fIpathname\fR.f).o +.fi \fR +.P +.RE +.P +shall be created or overwritten as the result of successful +compilation. If the +.BR \(mic +option is not specified, it is unspecified whether such +.BR .o +files are created or deleted for the +.IR file \c +.BR .f +operands. +.P +If there are no options that prevent link editing (such as +.BR \(mic ) +and all operands compile and link without error, the resulting +executable file shall be written into the file named by the +.BR \(mio +option (if present) or to the file +.BR a.out . +The executable file shall be created as specified in the System Interfaces volume of POSIX.1\(hy2008, except +that the file permissions shall be set to: +S_IRWXO | S_IRWXG | S_IRWXU +.P +and that the bits specified by the +.IR umask +of the process shall be cleared. +.SH OPTIONS +The +.IR fort77 +utility shall conform to the Base Definitions volume of POSIX.1\(hy2008, +.IR "Section 12.2" ", " "Utility Syntax Guidelines", +except that: +.IP " *" 4 +The +.BR \(mil +.IR library +operands have the format of options, but their position within a list +of operands affects the order in which libraries are searched. +.IP " *" 4 +The order of specifying the multiple +.BR \(miL +options is significant. +.IP " *" 4 +Conforming applications shall specify each option separately; that is, +grouping option letters (for example, +.BR \(micg ) +need not be recognized by all implementations. +.P +The following options shall be supported: +.IP "\fB\(mic\fR" 10 +Suppress the link-edit phase of the compilation, and do not remove any +object files that are produced. +.IP "\fB\(mig\fR" 10 +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. +.IP "\fB\(mis\fR" 10 +Produce object or executable files, or both, from which symbolic and +other information not required for proper execution using the +.IR exec +family of functions defined in the System Interfaces volume of POSIX.1\(hy2008 has been removed (stripped). +If both +.BR \(mig +and +.BR \(mis +options are present, the action taken is unspecified. +.IP "\fB\(mio\ \fIoutfile\fR" 10 +Use the pathname +.IR outfile , +instead of the default +.BR a.out , +for the executable file produced. If the +.BR \(mio +option is present with +.BR \(mic , +the result is unspecified. +.IP "\fB\(miL\ \fIdirectory\fR" 10 +Change the algorithm of searching for the libraries named in +.BR \(mil +operands to look in the directory named by the +.IR directory +pathname before looking in the usual places. Directories named in +.BR \(miL +options shall be searched in the specified order. At least ten +instances of this option shall be supported in a single +.IR fort77 +command invocation. If a directory specified by a +.BR \(miL +option contains a file named +.BR libf.a , +the results are unspecified. +.IP "\fB\(miO\ \fIoptlevel\fR" 10 +Specify the level of code optimization. If the +.IR optlevel +option-argument is the digit +.BR '0' , +all special code optimizations shall be disabled. If it is the digit +.BR '1' , +the nature of the optimization is unspecified. If the +.BR \(miO +option is omitted, the nature of the system's default optimization is +unspecified. It is unspecified whether code generated in the presence +of the +.BR \(miO +0 option is the same as that generated when +.BR \(miO +is omitted. Other +.IR optlevel +values may be supported. +.IP "\fB\(miw\fR" 10 +Suppress warnings. +.P +Multiple instances of +.BR \(miL +options can be specified. +.SH OPERANDS +An +.IR operand +is either in the form of a pathname or the form +.BR \(mil +.IR library . +At least one operand of the pathname form shall be specified. The +following operands shall be supported: +.IP "\fIfile.\fBf\fR" 10 +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 +.BR \(mic +option is used. +.IP "\fIfile.\fBa\fR" 10 +A library of object files typically produced by +.IR ar , +and passed directly to the link editor. Implementations may recognize +implementation-defined suffixes other than +.BR .a +as denoting object file libraries. +.IP "\fIfile.\fBo\fR" 10 +An object file produced by +.IR fort77 +.BR \(mic +and passed directly to the link editor. Implementations may recognize +implementation-defined suffixes other than +.BR .o +as denoting object files. +.P +The processing of other files is implementation-defined. +.IP "\fB\(mil\ \fIlibrary\fR" 10 +(The letter ell.) Search the library named: +.RS 10 +.sp +.RS 4 +.nf +\fB +lib\fIlibrary\fR.a +.fi \fR +.P +.RE +.P +A library is searched when its name is encountered, so the placement of +a +.BR \(mil +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 +.BR .a +as denoting libraries. +.RE +.SH STDIN +Not used. +.SH "INPUT FILES" +The input file shall be one of the following: a text file containing +FORTRAN source code; an object file in the format produced by +.IR fort77 +.BR \(mic ; +or a library of object files, in the format produced by archiving zero +or more object files, using +.IR ar . +Implementations may supply additional utilities that produce files in +these formats. Additional input files are implementation-defined. +.P +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" +The following environment variables shall affect the execution of +.IR fort77 : +.IP "\fILANG\fP" 10 +Provide a default value for the internationalization variables that are +unset or null. (See the Base Definitions volume of POSIX.1\(hy2008, +.IR "Section 8.2" ", " "Internationalization Variables" +for the precedence of internationalization variables used to determine +the values of locale categories.) +.IP "\fILC_ALL\fP" 10 +If set to a non-empty string value, override the values of all the +other internationalization variables. +.IP "\fILC_CTYPE\fP" 10 +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). +.IP "\fILC_MESSAGES\fP" 10 +.br +Determine the locale that should be used to affect the format and +contents of diagnostic messages written to standard error. +.IP "\fINLSPATH\fP" 10 +Determine the location of message catalogs for the processing of +.IR LC_MESSAGES . +.IP "\fITMPDIR\fP" 10 +Determine the pathname that should override the default directory for +temporary files, if any. +.SH "ASYNCHRONOUS EVENTS" +Default. +.SH STDOUT +Not used. +.SH STDERR +The standard error shall be used only for diagnostic messages. +If more than one +.IR file +operand ending in +.BR .f +(or possibly other unspecified suffixes) is given, for each such file: +.sp +.RS 4 +.nf +\fB +"%s:\en", <\fIfile\fR> +.fi \fR +.P +.RE +.P +may be written to allow identification of the diagnostic message with +the appropriate input file. +.P +This utility may produce warning messages about certain conditions that +do not warrant returning an error (non-zero) exit value. +.SH "OUTPUT FILES" +Object files, listing files, and executable files shall be produced in +unspecified formats. +.SH "EXTENDED DESCRIPTION" +.SS "Standard Libraries" +.P +The +.IR fort77 +utility shall recognize the following +.BR \(mil +operand for the standard library: +.IP "\fB\(mil\ f\fR" 10 +This library contains all functions referenced in the ANSI\ X3.9\(hy1978 standard. This +operand shall not be required to be present to cause a search of this +library. +.P +In the absence of options that inhibit invocation of the link editor, +such as +.BR \(mic , +the +.IR fort77 +utility shall cause the equivalent of a +.BR "\(mil\ f" +operand to be passed to the link editor as the last +.BR \(mil +operand, causing it to be searched after all other object files and +libraries are loaded. +.P +It is unspecified whether the library +.BR libf.a +exists as a regular file. The implementation may accept as +.BR \(mil +operands names of objects that do not exist as regular files. +.SS "External Symbols" +.P +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. +.P +The compiler and link editor shall support a minimum of 511 external +symbols per source or object file, and a minimum of 4\|095 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" +The following exit values shall be returned: +.IP "\00" 6 +Successful compilation or link edit. +.IP >0 6 +An error occurred. +.SH "CONSEQUENCES OF ERRORS" +When +.IR fort77 +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 +.IR fort77 +shall exit with a non-zero status. +.LP +.IR "The following sections are informative." +.SH "APPLICATION USAGE" +None. +.SH EXAMPLES +The following usage example compiles +.BR xyz.f +and creates the executable file +.BR foo : +.sp +.RS 4 +.nf +\fB +fort77 \(mio foo xyz.f +.fi \fR +.P +.RE +.P +The following example compiles +.BR xyz.f +and creates the object file +.BR xyz.o : +.sp +.RS 4 +.nf +\fB +fort77 \(mic xyz.f +.fi \fR +.P +.RE +.P +The following example compiles +.BR xyz.f +and creates the executable file +.BR a.out : +.sp +.RS 4 +.nf +\fB +fort77 xyz.f +.fi \fR +.P +.RE +.P +The following example compiles +.BR xyz.f , +links it with +.BR b.o , +and creates the executable +.BR a.out : +.sp +.RS 4 +.nf +\fB +fort77 xyz.f b.o +.fi \fR +.P +.RE +.SH RATIONALE +The name of this utility was chosen as +.IR fort77 +to parallel the renaming of the C compiler. The name +.IR f77 +was not chosen to avoid problems with historical implementations. The +ANSI\ X3.9\(hy1978 standard was selected as a normative reference because the ISO/IEC version +of FORTRAN-77 has been superseded by the ISO/IEC\ 1539:\|1991 standard. +.P +The file inclusion and symbol definition +.BR #define +mechanisms used by the +.IR c99 +utility were not included in this volume of POSIX.1\(hy2008\(emeven though they are commonly +implemented\(emsince there is no requirement that the FORTRAN compiler +use the C preprocessor. +.P +The +.BR \(mionetrip +option was not included in this volume of POSIX.1\(hy2008, even though many historical compilers +support it, because it is derived from FORTRAN-66; it is an anachronism +that should not be perpetuated. +.P +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 +.BR \(miV +option overlapped with historical vendor practice and a naming +convention of creating files with +.BR .l +suffixes collided with historical +.IR lex +file naming practice. +.P +There is no +.BR \(miI +option in this version of this volume of POSIX.1\(hy2008 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. +.P +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. +.P +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\(hy1992 does not specify the military standard or any +special preprocessing requirements. Furthermore, use of that document +would have been inappropriate for an international standard. +.P +The specification of optimization has been subject to changes through +early proposals. At one time, +.BR \(miO +and +.BR \(miN +were Booleans: optimize and do not optimize (with an unspecified +default). Some historical practice led this to be changed to: +.IP "\fB\(miO\fR\ 0" 10 +No optimization. +.IP "\fB\(miO\fR\ 1" 10 +Some level of optimization. +.IP "\fB\(miO\ \fIn\fR" 10 +Other, unspecified levels of optimization. +.P +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 +.BR \(miO +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 +.BR \(miO +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 +.BR \(miO +0 option to ask for inefficient code generation, but rather to assure +that any semantically visible optimization is suppressed. +.P +The specification of standard library access is consistent with the C +compiler specification. Implementations are not required to have +.BR /usr/lib/libf.a , +as many historical implementations do, but if not they are required to +recognize +.BR f +as a token. +.P +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. +.P +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 +.BR a.out , +file in the face of compiler or linker errors. If a linker writes the +executable file, then links it on disk with +\fIlseek\fR()s +and +\fIwrite\fR()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 +.IR fort77 , +rather than on the existence or mode of the executable file. +.P +The +.BR \(mig +and +.BR \(mis +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. +.P +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, +.BR \(migc +as if it were +.BR \(mig +.BR \(mic ; +nor are they forbidden from doing so. The SYNOPSIS shows all of the +options separately to highlight this requirement on applications. +.P +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 +.IR c99 . +.SH "FUTURE DIRECTIONS" +A compilation system based on the ISO/IEC\ 1539:\|1991 standard may be considered for a +future version; it may have a different utility name from +.IR fort77 . +.SH "SEE ALSO" +.IR "\fIar\fR\^", +.IR "\fIasa\fR\^", +.IR "\fIc99\fR\^", +.IR "\fIumask\fR\^" +.P +The Base Definitions volume of POSIX.1\(hy2008, +.IR "Chapter 8" ", " "Environment Variables", +.IR "Section 12.2" ", " "Utility Syntax Guidelines" +.P +The System Interfaces volume of POSIX.1\(hy2008, +.IR "\fIexec\fR\^" +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 7, Copyright (C) 2013 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. +(This is POSIX.1-2008 with the 2013 Technical Corrigendum 1 applied.) 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.unix.org/online.html . + +Any typographical or formatting errors that appear +in this page are most likely +to have been introduced during the conversion of the source files to +man page format. To report such errors, see +https://www.kernel.org/doc/man-pages/reporting_bugs.html . |