Welcome to f2cl - a Fortran to Common Lisp Translator

Contained in this directory are source code files and some documentation.
The translator is written in Common Lisp making installation simple.

Installation
------------

If this has been extracted as a part of CLOCC, the way to build f2cl
is to simply run "make system" from a shell, as is usual with CLOCC
packages.

A second method is to use defsystem from CLOCC.  Then load
f2cl.system, and then finally run (mk:oos "f2cl" :compile).

Finally, a third method if you have none of the above is to manually
run everything as follows:

1 . Run a Common Lisp interpreter and use the function "compile-file" to
    compile each of the source files:
		f2cl0.l
		f2cl1.l
		f2cl2.l
		f2cl3.l
		f2cl4.l
		f2cl5.l
		f2cl6.l
		f2cl7.l
		macros.l

3. Load up all of the files
           (load "f2cl0.l")
   to load all the compiled files.


Usage
-----

To use f2cl:

(f2cl:f2cl "<path>/fortran.f")

will convert the file "<path>/fortran.f" to Lisp code and places the
result in the file "<path>/fortran.lisp".

Alternatively,

(f2cl:f2cl "<path>/fortran.f")

will also run compile-file on the Lisp file so you can load it
directly into your lisp.


For those anxious to use the translator without studying the documentation
here is a short list of restrictions that may result in obscure errors:
 - input code is assumed to be valid Fortran 77
 - no tabs are permitted in the source,
 - $comments should only be turned on if the Fortran code has comments
   exclusively within subroutines,
 - linebreaks must occur within whitespace,
 - spaces are required to separate symbols.
Note also that an intermediate file called "prep.tmp" is produced by the
preprocessing stage of the translation.



Acknowledgments:

The translator was written by Kevin Broughan and Diane Koorey Willcock
at the University of Waikato. Reports should be sent to
kab@waikato.ac.nz and should include examples of Fortran code which
fails to translate or which translates incorrectly.

Major changes have be written by Raymond Toy and the entire translator
is now part of CLOCC, with permission from Kevin Broughan.  Send bug
reports and other comments to http://clocc.sourceforge.net.

The code is also placed under the GPL, by permission of Kevin
Broughan.  The exception is macros.l which is released under the LGPL
so that it can be incorporated into other packages.
