Omni OpenMP Fortran 77 Compiler

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

SYNOPSIS
       ompf77 [options] filename ...

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

DESCRIPTION
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'.

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

ENVIRONMENT VARIABLES
OMPF77_BYTE_SWAP_IO
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 .

FILES

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.