What foo does to produce Fortran95 code

The actual text transformations that are performed by the foo preprocessor are now described.

Automatic function and subroutine detection

Automatic insertion of first argument to a routine

Automatic end keyword completion

Dot notation

Automatic overloading and interface files

Explicit overloading

New syntax for recursive, pure and elemental routines

Functionals and subroutinals

Preconditions, postconditions, and error management facilities

Memory and call-stack management

C-preprocessor macros and type definitions