FC (I) 9/1/72 FC (I)
NAME fc -- fortran compiler
SYNOPSIS fc [ -c ] sfile .f ... ofile ...
1 1
DESCRIPTION fc is the UNIX Fortran compiler. It accepts
three types of arguments:
Arguments whose names end with ".f" are assumed
to be Fortran source program units; they are com-
piled, and the object program is left on the file
sfile .o (i.e. the file whose name is that of
1
the source with ".o" substituted for ".f").
Other arguments (except for "-c") are assumed to
be either loader flags, or object programs, typi-
cally produced by an earlier fc run, or perhaps
libraries of Fortran-compatible routines. These
programs, together with the results of any compi-
lations specified, are loaded (in the order
given) to produce an executable program with name
a.out.
The "-c" argument suppresses the loading phase,
as does any syntax error in any of the routines
being compiled.
The following is a list of differences between fc
and ANSI standard Fortran (also see the BUGS sec-
tion):
1. Arbitrary combination of types is allowed in
expressions. Not all combinations are ex-
pected to be supported at runtime. All of the
normal conversions involving integer, real,
double precision and complex are allowed.
2. The 'standard' implicit statement is recog-
nized.
3. The types doublecomplex, logical*1, integer*2
and real*8 (doubleprecision) are supported.
4. & as the first character of a line signals a
continuation card.
5. c as the first character of a line signals a
comment.
6. All keywords are recognized in lower case.
7. The notion of 'column 7' is not implemented.
8. G-format input is free form-- leading blanks
are ignored, the first blank after the start
of the number terminates the field.
9. A comma in any numeric or logical input field
terminates the field.
10. There is no carriage control on output.
In I/O statements, only unit numbers 0-19 are
supported. Unit number nn corresponds to file
"fortnn;" (e.g. unit 9 is file "fort09"). For
input, the file must exist; for output, it will
be created.
Unit 5 is permanently associated with the stan-
dard input file; unit 6 with the standard output
file.
FILES file.f input file
a.out loaded output
f.tmp[123] temporary (deleted)
/usr/fort/fc[1234] compilation phases
/usr/lib/fr0.o runtime startoff
/usr/lib/filib.a interpreter library
/usr/lib/libf.a builtin functions, etc.
/usr/lib/liba.a system library
SEE ALSO ANSI standard
DIAGNOSTICS Compile-time diagnostics are given by number. If
the source code is available, it is printed with
an underline at the current character pointer.
Errors possible are:
1 statement too long
2 syntax error in type statement
3 redeclaration
4 missing ( in array declarator
5 syntax error in dimension statement
6 inappropriate or gratuitous array
declarator
7 syntax error in subscript bound
8 illegal character
9 common variable is a parameter or already
in common
10 common syntax error
11 subroutine/blockdata/function not first
statement
12 subroutine/function syntax error
13 block data syntax error
14 redeclaration in external
15 external syntax error
16 implicit syntax error
17 subscript on non-array
18 incorrect subscript count
19 subscript out of range
20 subscript syntax error
22 DATA syntax error
23 Illegal variable in DATA
23 equivalence inconsistency
24 equivalence syntax error
25 separate common blocks equivalenced
26 common block illegally extended by equiv-
alence
27 common inconsistency created by equiva-
lence
28 DATA table overflow
29 () imbalance in expression
30 expression syntax error
31 illegal variable in equivalence
32 Storage initialized twice by DATA
33 non array/function used with
subscripts/arguments
35 goto syntax error
37 illegal return
38 continue, return, stop, call, end, or
pause syntax error
39 assign syntax error
40 if syntax error
41 I/O syntax error
42 do or I/O iteration error
43 do end missing
50 illegal statement in block data
51 multiply defined labels
52 undefined label
53 dimension mismatch
54 expression syntax error
55 end of statement in hollerith constant
56 array too large
99 β table overflow
101 unrecognized statement
Runtime diagnostics:
1 invalid log argument
2 bad arg count to amod
3 bad arg count to atan2
4 excessive argument to cabs
5 exp too large in cexp
6 bad arg count to cmplx
7 bad arg count to dim
8 excessive argument to exp
9 bad arg count to idim
10 bad arg count to isign
11 bad arg count to mod
12 bad arg count to sign
13 illegal argument to sqrt
14 assigned/computed goto out of range
15 subscript out of range
16 real**real overflow
100 illegal I/O unit number
101 inconsistent use of I/O unit
102 cannot create output file
103 cannot open input file
104 EOF on input file
105 illegal character in format
106 format does not begin with (
107 no conversion in format but non-empty
list
108 excessive parenthesis depth in format
109 illegal format specification
110 illegal character in input field
111 end of format in hollerith specification
999 unimplemented input conversion
BUGS The following is a list of those features not yet
implemented:
arithmetic statement functions
backspace, endfile, rewind runtime
binary I/O
no scale factors on input