FC(I) 8/20/73 FC(I) NAME fc - Fortran compiler SYNOPSIS fc [ -c ] sfile1.f ... ofile1 ... DESCRIPTION Fc is the UNIX Fortran compiler. It accepts three types of arguments: Arguments whose names end with `.f' are assumed to be For- tran source program units; they are compiled, and the object program is left on the file sfile1.o (i.e. the file whose name is that of the source with `.o' substituted for `.f'). Other arguments (except for -c) are assumed to be either loader flags, or object programs, typically produced by an earlier fc run, or perhaps libraries of Fortran-compatible routines. These programs, together with the results of any compilations 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 section): 1. Arbitrary combination of types is allowed in expres- sions. Not all combinations are expected to be support- ed at runtime. All of the normal conversions involving integer, real, double precision and complex are allowed. 2. Two forms of ``implicit'' statements are recognized: im- plicit integer /i-n/ or implicit integer (i-n). 3. The types doublecomplex, logical*1, integer*1, inte- ger*2, integer*4 (same as integer), real*4 (real), and real*8 (double precision) are supported. 4. & as the first character of a line signals a continua- tion 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. - 1 - FC(I) 8/20/73 FC(I) 10. There is no carriage control on output. 11. A sequence of n characters in double quotes `"' is equivalent to n h followed by those characters. 12. In data statements, a hollerith string may initialize an array or a sequence of array elements. 13. The number of storage units requested by a binary read must be identical to the number contained in the record being read. 14. If the first character in an input file is ``#'', a pre- processor identical to the C preprocessor is called, which implements ``#define'' and ``#include'' preproces- sor statements. (See the C reference manual for de- tails.) The preprocessor does not recognize Hollerith strings written with nh. In I/O statements, only unit numbers 0-19 are supported. Unit number n refers 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 standard input file; unit 6 with the standard output file. Also see setfil(III) for a way to associate unit numbers with named files. FILES a.out loaded output f.tmp[123] temporary (deleted) /usr/fort/fc1 compiler proper /lib/fr0.o runtime startoff /lib/filib.a interpreter library /lib/libf.a builtin functions, etc. /lib/liba.a system library SEE ALSO rc(I), which announces a more pleasant Fortran dialect; the ANSI standard; ld(I) for loader flags. For some subrou- tines, try ierror, getarg, setfil(III). DIAGNOSTICS Compile-time diagnostics are given in English, accompanied if possible with the offending line number and source line with an underscore where the error occurred. Runtime diag- nostics are given by number as follows: 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 - 2 - FC(I) 8/20/73 FC(I) 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 17 (negative real)**real 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 112 bad argument to setfil 120 bad argument to ierror 999 unimplemented input conversion BUGS The following is a list of those features not yet implement- ed: arithmetic statement functions scale factors on input Backspace statement. - 3 -