Omni OpenMP Fortran 77 Compiler

ompf77 - RWC Omni OpenMP Fortran 77 compiler (ver. 1.1)

       ompf77 [options] filename ...

NOTE: This command, ompf77 is obsolete!!! This command is an alias of "omf77". Please refer to omf77 man page.

ompf77 is a program to compile OpenMP programs written in Fortran77. ompf77 processes input files through one or more of with stages: compilation, assembly, and linking, with preprocessing as a option. This compiler is a kind of "f2c" (Fortran to C) program, which use the native C compiler as the backend. This man page contains descriptions for only ompf77-specific aspects of the compiler, though it also contains summaries of some general-purpose options. ompf77 is a translator which translate Fortran 77 program into a C program. For a fuller explanation of the compile options, see options of the backend C compiler which is specified in the installation. Fortran source files use the suffix '.f' or '.F': Fortran 77 programs to be preprocessed by cpp use the suffix '.F'.

Compile or assemble the source files, but do not link. The compiler output is an object file corresponding to each source file.
Define macro macro with the string `1' as its definition.
Define macro macro as defn.
Produce debugging information.
Append directory dir to the list of directories searched for include files.
Add directory dir to the list of directories to be searched for `-l'.
Use the library named library when linking.
-o file
Place output in file.
Stop after the stage of compilation proper; do not assemble. The output is an assembler code file for each non-assembler input file specified.
Undefine macro macro.
Stop after parsing leaving the intermediate file.
Stop before calling the backend compiler. Leave the intermediate C file after OpenMP transformation.
Leave intermediate file "tmp.x", "tmp.xx", "tmp.c".
Verbose mode. Echo the executed commands.
Ignore OpenMP pragma.
Generate floating point exception checking code.
Generate floating point exception checking code and dumping core when the exception occur.
Not allow to be equivalent character variables to other types by EQUIVALENCE statement.
Not allow to initialize non-character variables with characters by DATA statement.
Not allow non-standard initialization in common block.
Imply all other -pedantic* options.
If alignment of double is NOT sizeof double, treat alignment of double is sizeof double.
-h, -help
Print Help.

If set (as any value) at execution of a program generated by ompf77, I/O runtime routines swap the byte oredr of data for direct access I/O mode.

In addition to OpenMP standard environment variables Omni environment variables controls the parallel execution. See Omni Environment Variables .


Unsupported Features and Known Problem, BUGS
  • ASSIGN statement works only for assignment GOTO, not fot FORMAT statement label and variable GOTO.
  • The assignment GOTO without the list of statement labels is not supported.
  • Cray pointer extension is supported but doesn't work for CHARACTER variable/array. And MALLOC, FREE are not implemented.
  • Arithmetic expressions (except power operation) with complex constants in PARAMETER statement doesn't work.
  • In DATA statement, uninitialized area of character variable is initialized by ascii SPC (0x20), not NUL (0x00). This is compatible to many f77 implementation, but incompatible to f2c.
  • Linking of a common block that has different length in between separated source files depends on backend C compiler. Some linker might be warning as incompatible length symbol, or treat it as an error.
  • These features were not fully tested:
    • String(character)s, especially copying, comparison, and substring.
    • Direct access I/O mode.
    • Cray pointer extension.
  • Dynamic adjustment of the number of threads is not supported.
  • Nested parallelism is partially supported. As long as idle threads are available, the threads are used to execute nested parallel regions.
  • The threadprivate commons or variables of non-master threads is not initialized properly. Use "copyin" clause to initialize them explicitly.
  • The named threadprivate variables in "copyin" clause is not supported yet.
  • Some reduction operators (MAX and MIN ...) in "reduction" clauses are not implemented yet.