diff options
author | mpp <mpp@FreeBSD.org> | 1996-05-15 20:27:10 +0000 |
---|---|---|
committer | mpp <mpp@FreeBSD.org> | 1996-05-15 20:27:10 +0000 |
commit | c3744ff4f09fce8379bdfda33cd9b6dc1d2c1fff (patch) | |
tree | daed9fe3c545a90ca3d15ac03480ce3a87dbfb2d /usr.bin/f2c | |
parent | 483105a62eb4c3bc2316927a412bc6cd9a34acff (diff) | |
download | FreeBSD-src-c3744ff4f09fce8379bdfda33cd9b6dc1d2c1fff.zip FreeBSD-src-c3744ff4f09fce8379bdfda33cd9b6dc1d2c1fff.tar.gz |
Convert f2c.1 to mdoc format.
Submitted by: Steven G. Kargl <kargl@troutmask.apl.washington.edu>
Diffstat (limited to 'usr.bin/f2c')
-rw-r--r-- | usr.bin/f2c/f2c.1 | 527 |
1 files changed, 230 insertions, 297 deletions
diff --git a/usr.bin/f2c/f2c.1 b/usr.bin/f2c/f2c.1 index 5cd7801..233c5bf 100644 --- a/usr.bin/f2c/f2c.1 +++ b/usr.bin/f2c/f2c.1 @@ -1,350 +1,283 @@ -. \" Definitions of F, L and LR for the benefit of systems -. \" whose -man lacks them... -.de F -.nh -.if n \%\&\\$1 -.if t \%\&\f(CW\\$1\fR -.hy 14 -.. -.de L -.nh -.if n \%`\\$1' -.if t \%\&\f(CW\\$1\fR -.hy 14 -.. -.de LR -.nh -.if n \%`\\$1'\\$2 -.if t \%\&\f(CW\\$1\fR\\$2 -.hy 14 -.. -.TH F2C 1 -.CT 1 prog_other -.SH NAME -f2c \- Convert Fortran 77 to C or C++ -.SH SYNOPSIS -.B f\^2c -[ -.I option ... -] -.I file ... -.SH DESCRIPTION -.I F2c +.\" mdoc translation of the f2c.1 manpage (deprecated -man format) supplied +.\" with f2c. The original manpage did not have a copyright statement, but +.\" the file /usr/src/bin/f2c/Notice states: +.\" +.\"/**************************************************************** +.\"Copyright 1990, 1991, 1992, 1993 by AT&T Bell Laboratories and Bellcore. +.\" +.\"Permission to use, copy, modify, and distribute this software +.\"and its documentation for any purpose and without fee is hereby +.\"granted, provided that the above copyright notice appear in all +.\"copies and that both that the copyright notice and this +.\"permission notice and warranty disclaimer appear in supporting +.\"documentation, and that the names of AT&T Bell Laboratories or +.\"Bellcore or any of their entities not be used in advertising or +.\"publicity pertaining to distribution of the software without +.\"specific, written prior permission. +.\" +.\"AT&T and Bellcore disclaim all warranties with regard to this +.\"software, including all implied warranties of merchantability +.\"and fitness. In no event shall AT&T or Bellcore be liable for +.\"any special, indirect or consequential damages or any damages +.\"whatsoever resulting from loss of use, data or profits, whether +.\"in an action of contract, negligence or other tortious action, +.\"arising out of or in connection with the use or performance of +.\"this software. +.\"****************************************************************/ +.\" +.Dd April 19, 1996 +.Os "AT&T Bell Lab and Bellcore" +.Dt F2C 1 +.Sh NAME +.Nm f2c +.Nd Convert Fortran 77 to C or C++ +.Sh SYNOPSIS +.Nm f2c +.Op Fl AaCcEfgpRrsUuw +.Op Fl C++ +.Op Fl ec +.Op Fl e1c +.Op Fl ext +.Op Fl h Ns Op Cm d +.Op Fl \&I2 +.Op Fl \&i2 +.Op Fl kr Ns Op Cm d +.Op Fl onetrip +.Op Fl P Ns Op Cm s +.Op Fl r8 +.Op Fl 72 +.Op Fl T Ar dir +.Op Fl w8 +.Op Fl W Ns Ar n +.Op Fl z +.Op Fl !bs +.Op Fl !c +.Op Fl !I +.Op Fl !i8 +.Op Fl !it +.Op Fl !P +.Ar file ... +.Sh DESCRIPTION +.Nm F2c converts Fortran 77 source code in -.I files +.Ar files with names ending in -.L .f +.So \&.f Sc or -.L .F -to C (or C++) source files in the -current directory, with -.L .c -substituted -for the final -.L .f +.So \&.F Sc +to C (or C++) source files in the current directory, with +.So \&.c Sc +substituted for the final +.So \&.f Sc or -.LR .F . +.So \&.F Sc . If no Fortran files are named, -.I f\^2c -reads Fortran from standard input and -writes C on standard output. -.I File +.Nm f2c +reads Fortran from standard input and writes C on standard output. +.Ar File names that end with -.L .p +.So \&.p Sc or -.L .P -are taken to be prototype -files, as produced by option -.LR -P , +.So \&.P Sc +are taken to be prototype files, as produced by option +.Fl P , and are read first. -.PP -The following options have the same meaning as in -.IR f\^77 (1). -.TP -.B -C +.Sh OPTIONS +.Bl -tag -width flag +.It Fl A +Produce ANSI C. Default is old-style C. +.It Fl a +Make local variables automatic rather than static unless they appear in a +DATA , EQUIVALENCE , NAMELIST , or SAVE statement. +.It Fl C Compile code to check that subscripts are within declared array bounds. -.TP -.B -I2 -Render INTEGER and LOGICAL as short, -INTEGER\(**4 as long int. Assume the default \fIlibF77\fR -and \fIlibI77\fR: allow only INTEGER\(**4 (and no LOGICAL) -variables in INQUIREs. Option -.L -I4 -confirms the default rendering of INTEGER as long int. -.TP -.BI -I dir -Look for a non-absolute include file first in the directory of the -current input file, then in directories specified by \f(CW-I\fP -options (one directory per option). Options -\f(CW-I2\fP and \f(CW-I4\fP -have precedence, so, e.g., a directory named \f(CW2\fP -should be specified by \f(CW-I./2\fP . -.TP -.B -onetrip -Compile DO loops that are performed at least once if reached. -(Fortran 77 DO loops are not performed at all if the upper limit is smaller than the lower limit.) -.TP -.B -U -Honor the case of variable and external names. Fortran keywords must be in -.I -lower -case. -.TP -.B -u -Make the default type of a variable `undefined' rather than using the default Fortran rules. -.TP -.B -w -Suppress all warning messages, or, if the option is -.LR -w66 , -just Fortran 66 compatibility warnings. -.PP -The following options are peculiar to -.IR f\^2c . -.TP -.B -A -Produce -.SM ANSI -C. -Default is old-style C. -.TP -.B -a -Make local variables automatic rather than static -unless they appear in a -.SM "DATA, EQUIVALENCE, NAMELIST," -or -.SM SAVE -statement. -.TP -.B -C++ +.It Fl C++ Output C++ code. -.TP -.B -c +.It Fl c Include original Fortran source as comments. -.TP -.BI -d dir -Write -.L .c -files in directory -.I dir -instead of the current directory. -.TP -.B -E -Declare uninitialized -.SM COMMON -to be -.B Extern -(overridably defined in -.F f2c.h +.It Fl E +Declare uninitialized COMMON to be Extern (overridably defined in +.Pa f2c.h as -.B extern). -.TP -.B -ec -Place uninitialized -.SM COMMON -blocks in separate files: -.B COMMON /ABC/ -appears in file -.BR abc_com.c . +.Em extern +). +.It Fl ec +Place uninitialized COMMON blocks in separate files: +COMMON ABC appears in file abc_com.c . Option -.LR -e1c +.Fl e1c bundles the separate files into the output file, with comments that give an unbundling -.IR sed (1) +.Xr sed 1 script. -.TP -.B -ext -Complain about -.IR f\^77 (1) -extensions. -.TP -.B -f +.It Fl e1c +See +.Fl ec . +.It Fl ext +Complain about Fortran 77 extensions. +.It Fl f Assume free-format input: accept text after column 72 and do not pad fixed-format lines shorter than 72 characters with blanks. -.TP -.B -72 +.It Fl 72 Treat text appearing after column 72 as an error. -.TP -.B -g -Include original Fortran line numbers in \f(CW#line\fR lines. -.TP -.B -h +.It Fl g +Include original Fortran line numbers in +.Sy #line +lines. +.It Fl h Ns Op Cm d Emulate Fortran 66's treatment of Hollerith: try to align character strings on word (or, if the option is -.LR -hd , +.Fl hd , on double-word) boundaries. -.TP -.B -i2 +.It Fl \&I2 +Render INTEGER and LOGICAL as short, INTEGER*4 as long int. Assume the +default +.Em libF77 +and +.Em libI77 +allow only INTEGER*4 (and no LOGICAL) variables in INQUIREs. Option +.Fl \&I4 +confirms the default rendering of INTEGER as long int. +.It Fl \&i2 Similar to -.BR -I2 , +.Fl \&I2 , but assume a modified -.I libF77 +.Em libF77 and -.I libI77 +.Em libI77 (compiled with -.BR -Df\^2c_i2 ), -so -.SM INTEGER -and -.SM LOGICAL -variables may be assigned by -.SM INQUIRE -and array lengths are stored in short ints. -.TP -.B -kr +.Fl Df2c_i2 ), +so INTEGER and LOGICAL variables may be assigned by INQUIRE and array lengths +are stored in short ints +.It Fl kr Ns Op Cm d Use temporary values to enforce Fortran expression evaluation where K&R (first edition) parenthesization rules allow rearrangement. If the option is -.LR -krd , +.Fl krd , use double precision temporaries even for single-precision operands. -.TP -.B -P +.It Fl onetrip +Compile DO loops that are performed at least once if reached. (Fortran 77 DO +loops are not performed at all if the upper limit is smaller than the lower +limit.) +.It Fl P Ns Op Cm s Write a -.IB file .P -of ANSI (or C++) prototypes -for definitions in each input -.IB file .f +.Ar file Ns \&.P +of ANSI (or C++) prototypes for definitions in each input +.Ar file Ns \&.f or -.IB file .F . -When reading Fortran from standard input, write prototypes -at the beginning of standard output. Option -.B -Ps +.Ar file Ns \&.F . +When reading Fortran from standard input, write prototypes at the beginning of +standard output. Option +.Fl Ps implies -.B -P +.Fl P and gives exit status 4 if rerunning -.I f\^2c +.Nm f2c may change prototypes or declarations. -.TP -.B -p -Supply preprocessor definitions to make common-block members -look like local variables. -.TP -.B -R -Do not promote -.SM REAL -functions and operations to -.SM DOUBLE PRECISION. -Option -.L -!R -confirms the default, which imitates -.IR f\^77 . -.TP -.B -r +.It Fl p +Supply preprocessor definitions to make common-block members look like local +variables. +.It Fl R +Do not promote REAL functions and operations to DOUBLE PRECISION. Option +.Fl !R +confirms the default, which imitates Fortran 77. +.It Fl r Cast values of REAL functions (including intrinsics) to REAL. -.TP -.B -r8 -Promote -.SM REAL -to -.SM DOUBLE PRECISION, COMPLEX -to -.SM DOUBLE COMPLEX. -.TP -.B -s -Preserve multidimensional subscripts. Suppressed by option -.L -C -\&. -.TP -.BI -T dir +.It Fl r8 +Promote REAL to DOUBLE PRECISION, COMPLEX to DOUBLE COMPLEX. +.It Fl s +Preserve multidimensional subscripts. +.It Fl T Ar dir Put temporary files in directory -.I dir. -.TP -.B -w8 -Suppress warnings when -.SM COMMON -or -.SM EQUIVALENCE -forces odd-word alignment of doubles. -.TP -.BI -W n +.Ar dir . +.It Fl U +Honor the case of variable and external names. Fortran keywords must be in +.Em lower +case. +.It Fl u +Make the default type of a variable +.So undefined Sc +rather than using the default Fortran rules. +.It Fl w +Suppress all warning messages. If the option is +.Fl w66 , +only Fortran 66 compatibility warnings are suppressed. +.It Fl w8 +Suppress warnings when COMMON or EQUIVALENCE forces odd-word alignment of +doubles. +.It Fl W Ns Ar n Assume -.I n -characters/word (default 4) -when initializing numeric variables with character data. -.TP -.B -z -Do not implicitly recognize -.SM DOUBLE COMPLEX. -.TP -.B -!bs -Do not recognize \fIb\fRack\fIs\fRlash escapes +.Ar n +characters/word (default 4) when initializing numeric variables with character +data. +.It Fl z +Do not implicitly recognize DOUBLE COMPLEX. +.It Fl !bs +Do not recognize +.Em backslash +escapes (\e", \e', \e0, \e\e, \eb, \ef, \en, \er, \et, \ev) in character strings. -.TP -.B -!c +.It Fl !c Inhibit C output, but produce -.B -P +.Fl P output. -.TP -.B -!I +.It Fl !I Reject -.B include +.Sy include statements. -.TP -.B -!i8 -Disallow -.SM INTEGER*8. -.TP -.B -!it -Don't infer types of untyped -.SM EXTERNAL -procedures from use as parameters to previously defined or prototyped -procedures. -.TP -.B -!P -Do not attempt to infer -.SM ANSI -or C++ -prototypes from usage. -.PP -The resulting C invokes the support routines of -.IR f\^77 ; -object code should be loaded by -.I f\^77 -or with -.IR ld (1) +.It Fl !i8 +Disallow INTEGER*8. +.It Fl !it +Don't infer types of untyped EXTERNAL procedures from use as parameters to +previously defined or prototyped procedures. +.It Fl !P +Do not attempt to infer ANSI or C++ prototypes from usage. +.El +.Pp +Object code should be loaded by with +.Xr ld 1 or -.IR cc (1) -options -.BR "-lF77 -lI77 -lm" . -Calling conventions -are those of -.IR f\&77 : -see the reference below. -.br -.SH FILES -.TP -.nr )I 1.75i -.IB file .[fF] +.Xr cc 1 +and the following libraries need to specified: +.Fl lf2c lm . +.Sh FILES +.Ar file Ns \&.[fF] input file -.TP -.B *.c + +.Ar file Ns \&.c output file -.TP -.F /usr/include/f2c.h + +.Pa /usr/include/f2c.h header file -.TP -.F /usr/lib/libf2c.a -intrinsic functions and Fortran I/O library -.TP -.F /usr/lib/libc.a -C library, see section 3 -.SH "SEE ALSO" -S. I. Feldman and -P. J. Weinberger, -`A Portable Fortran 77 Compiler', -\fIUNIX Time Sharing System Programmer's Manual\fR, -Tenth Edition, Volume 2, AT&T Bell Laboratories, 1990. -.SH DIAGNOSTICS + +.Pa /usr/lib/libf2c.a +intrinsic function library and Fortran 77 I/O library + +.Sh "SEE ALSO" +.Rs +.%A S. I. Feldman +.%A P. J. Weinberger +.%T A Portable Fortran 77 Compiler +.%B UNIX Time Sharing System Programmer's Manual +.%V Volume 2 +.%D 1990 +.%O AT&T Bell Laboratories +.%N Tenth Edition +.Re +.Sh DIAGNOSTICS The diagnostics produced by -.I f\^2c +.Nm f2c are intended to be self-explanatory. -.SH BUGS +.Sh BUGS Floating-point constant expressions are simplified in the floating-point arithmetic of the machine running -.IR f\^2c , +.Nm f2c so they are typically accurate to at most 16 or 17 decimal places. -.br -Untypable -.SM EXTERNAL -functions are declared -.BR int . +.Pp +Untypable EXTERNAL functions are declared int. +.Pp +There are several undocumented valid options for +.Nm f2c . +These options are discussed at the top of +.Pa /usr/src/usr.bin/f2c/main.c . |