- Only scalars that are determined to be modified are wrapped in objects.
- Limited support for READ (but not formatted).
- Limited support for WRITE/FORMAT.
- Very basic handling of EQUIVALENCE.
- COMMON now supported.
- Handling of GOTO statements!
- Can now handle passing functions as arguments.
- Elementary loop detection for while loops.
- DATA and SAVE statements are now supported.
- Lexer cleaned up and extended to handle character strings and substrings.
- Source files containing multiple functions/subroutines will now translate.
Since ANSI Fortran 77 does not specify while loops, all such constructions in the BLAS and LAPACK are implemented with goto statements. Since the JVM has built-in goto branching, f2j easily implements all goto statements in the Fortran source by directly generating bytecode. However, we also have a scheme to translate Fortran GOTO statements into Java source code, which involves some post-processing of the generated code.
However, complex numbers will most likely have to go directly to bytecode for implementation on the JVM stack. Using the object-oriented methods for complex arithmetic would likely produce unacceptable overhead for large scale numerical problems.