|
|
1.1 root 1: .th FC I 8/20/73
2: .sh NAME
3: fc \*- fortran compiler
4: .sh SYNOPSIS
5: .bd fc
6: [
7: .bd \*-c
8: ] sfile1.f ... ofile1 ...
9: .sh DESCRIPTION
10: .it Fc
11: is the UNIX Fortran compiler.
12: It accepts three types of arguments:
13: .s3
14: Arguments whose names end with `.f' are assumed to be
15: Fortran source program units; they are compiled, and
16: the object program is left on the file sfile1.o (i.e.
17: the file whose name is that of the source with `.o' substituted
18: for `.f').
19: .s3
20: Other arguments (except for
21: \fB\*-c\fR)
22: are assumed
23: to be either loader flags, or
24: object programs, typically produced by an earlier
25: .it fc
26: run,
27: or perhaps libraries of Fortran-compatible routines.
28: These programs, together with the results of any
29: compilations specified, are loaded (in the order
30: given) to produce an executable program with name
31: .bd a.out.
32: .s3
33: The
34: .bd \*-c
35: argument suppresses the loading phase, as does
36: any syntax error in any of the routines being compiled.
37: .s3
38: The following is a list
39: of differences between
40: .it fc
41: and ANSI standard Fortran (also see the BUGS section):
42: .s3
43: .lp +4 4
44: 1. Arbitrary combination of types is allowed
45: in expressions. Not all combinations are expected to
46: be supported at runtime.
47: All of the normal
48: conversions involving integer, real, double
49: precision and complex are allowed.
50: .s3
51: .lp +4 4
52: 2. DEC's \fBimplicit\fR statement is recognized.
53: E.g.:
54: .bd "implicit integer /i\*-n/".
55: .s3
56: .lp +4 4
57: 3. The types
58: doublecomplex, logical*1,
59: integer*1, integer*2 and real*8 (double precision)
60: are supported.
61: .s3
62: .lp +4 4
63: 4. \fB&\fR as the first character of a line
64: signals a continuation card.
65: .s3
66: .lp +4 4
67: 5. \fBc\fR as the first character of a line signals a comment.
68: .s3
69: .lp +4 4
70: 6. All keywords are recognized in lower case.
71: .s3
72: .lp +4 4
73: 7. The notion of `column 7' is not implemented.
74: .s3
75: .lp +4 4
76: 8. G-format input is free form\*-
77: leading blanks are ignored, the first blank after the start
78: of the number terminates the field.
79: .s3
80: .lp +4 4
81: 9. A comma in any numeric or logical input field terminates
82: the field.
83: .s3
84: .lp +4 4
85: 10. There is no carriage control on output.
86: .s3
87: .lp +4 4
88: 11. A sequence of
89: .it n
90: characters in double quotes `"' is equivalent to
91: .it n
92: .bd h
93: followed by those characters.
94: .s3
95: .lp +4 4
96: 12. In
97: .bd data
98: statements, a hollerith string may initialize an array
99: or a sequence of array elements.
100: .s3
101: .lp +4 4
102: 13. The number of storage units requested by a binary
103: .bd read
104: must be identical to the number contained
105: in the record being read.
106: .s3
107: .i0
108: In I/O statements, only unit numbers 0-19 are supported.
109: Unit number
110: .it n
111: refers to file
112: fort\fInn;\fR
113: (e.g. unit 9 is file `fort09').
114: For input, the file must exist;
115: for output, it will be created.
116: Unit 5 is permanently associated with
117: the standard input file; unit 6 with the
118: standard output file.
119: Also see
120: .it setfil
121: (III)
122: for a way to associate unit numbers with named files.
123: .sh FILES
124: .ta 1.5i
125: file.f input file
126: .nf
127: a.out loaded output
128: f.tmp[123] temporary (deleted)
129: /usr/fort/fc1 compiler proper
130: /lib/fr0.o runtime startoff
131: /lib/filib.a interpreter library
132: /lib/libf.a builtin functions, etc.
133: /lib/liba.a system library
134: .fi
135: .sh "SEE ALSO"
136: ANSI standard,
137: ld(I) for loader flags
138: .br
139: Also see the writeups on the precious few
140: non-standard Fortran subroutines,
141: ierror and setfil (III)
142: .sh DIAGNOSTICS
143: Compile-time diagnostics are given in English,
144: accompanied if possible with the offending
145: line number and source line with an underscore where the error
146: occurred.
147: Runtime diagnostics
148: are given by number as follows:
149: .s3
150: .lp +5 5
151: 1 invalid log argument
152: .lp +5 5
153: 2 bad arg count to amod
154: .lp +5 5
155: 3 bad arg count to atan2
156: .lp +5 5
157: 4 excessive argument to cabs
158: .lp +5 5
159: 5 exp too large in cexp
160: .lp +5 5
161: 6 bad arg count to cmplx
162: .lp +5 5
163: 7 bad arg count to dim
164: .lp +5 5
165: 8 excessive argument to exp
166: .lp +5 5
167: 9 bad arg count to idim
168: .lp +5 5
169: 10 bad arg count to isign
170: .lp +5 5
171: 11 bad arg count to mod
172: .lp +5 5
173: 12 bad arg count to sign
174: .lp +5 5
175: 13 illegal argument to sqrt
176: .lp +5 5
177: 14 assigned/computed goto out of range
178: .lp +5 5
179: 15 subscript out of range
180: .lp +5 5
181: 16 real**real overflow
182: .lp +5 5
183: 17 (negative real)**real
184: .s3
185: .lp +5 5
186: 100 illegal I/O unit number
187: .lp +5 5
188: 101 inconsistent use of I/O unit
189: .lp +5 5
190: 102 cannot create output file
191: .lp +5 5
192: 103 cannot open input file
193: .lp +5 5
194: 104 EOF on input file
195: .lp +5 5
196: 105 illegal character in format
197: .lp +5 5
198: 106 format does not begin with (
199: .lp +5 5
200: 107 no conversion in format but non-empty list
201: .lp +5 5
202: 108 excessive parenthesis depth in format
203: .lp +5 5
204: 109 illegal format specification
205: .lp +5 5
206: 110 illegal character in input field
207: .lp +5 5
208: 111 end of format in hollerith specification
209: .lp +5 5
210: 999 unimplemented input conversion
211: .i0
212: Any of these errors can be caught by the program;
213: see
214: .it ierror
215: (III).
216: .sh BUGS
217: The following is a list of
218: those features not yet implemented:
219: .s3
220: .br
221: arithmetic statement functions
222: .br
223: scale factors on input
224: .s3
225: .bd Backspace
226: statement.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.