3/15/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 programs; they are compiled, 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. 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 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 29 () imbalance in expression 30 expression syntax error 31 illegal variable in equivalence 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 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: loading of common (a BLOCK DATA program must be written to allocate common). arithmetic statement functions data statements backspace, endfile, rewind runtime binary I/O no scale factors on input OWNER dmr, ken