caf1
Fortran compiler wrapper for opencoarrays
Usage
caf <fortran-source-file>
[options] ...
Options
-
--help, -h -
Show this help message --version, -v, -V Report version and copyright information --wrapping, -w, --wraps Report the name of the wrapped compiler
Examples
caf foo.f90 -o foo
caf -v
caf --help
Overview
As of OpenCoarrays 1.6.0, caf supports three categories of compilers with the following restrictions for each use case:
1. With an OpenCoarrays-Aware (OCA) compiler (GNU 5.1.0 or later),
a. If any of the options listed above appear, any remaining arguments are ignored.
b. If present, <fortran-source-file> must
* be a Fortran source file,
* appear before all other arguments,
* be the only Fortran source file in the argument list,
* have a name of the form *.f90, *.F90, *.f, or *.F.
c. The environment variable 'CAFC' must be empty or point to a Fortran compiler/linker.
d. If 'CAFC' is empty, a default value of 'mpif90' is used.
2. With non-OCA CAF compilers (Intel or Cray),
a. Observe restrictions 1a-d above.
b. Access OpenCoarrays collective subroutines via use association with an only clause,
e.g., 'use opencoarrays, only : co_sum,co_broadcast'
3. With non-CAF compilers (all compilers not named above),
a. Observe restrictions 1a-d above.
b. Access OpenCoarrays capabilities via use association ('use opencoarrays').
c. The only CAF statements or expressions allowed are the following:
* 'num_images()'
* 'this_image()' with or without arguments
* 'sync all' with or without arguments.
* 'sync images' with or without arguments.
* 'error stop' without arguments.
* 'co_sum', 'co_broadcast', 'co_max', 'co_min', or 'co_reduce'
The caf wrapper will append -L, -l, and other required arguments as necessary
using values that get set during the OpenCoarrays build and installation.