Limitiations of CF90 version 3.1 Co-Array Fortran
- Co-arrays must have elements that are 64-bits and aligned on 64-bit memory boundaries. In particular, REAL*4 or REAL(KIND=4) and all COMPLEX types are not allowed.
- A STOP on one image does not cause all images to cease execution.
- A dummy co-array argument cannot have assumed size local dimensions.
- A dummy co-array argument cannot have assumed shape local dimensions.
- Subscript triplet and vector subscript notation is not allowed in square brackets.
- Square brackets may be used in references to components of derived type co-arrays, but square brackets are not allowed when referencing the entire derived type.
- Co-Array Fortran I/O extensions to Fortran 95 are not supported. Instead, each image has its own independent I/O units.
- The CF90 3.1 manual makes no mention of SYNC_MEMORY() or caf-procedures. It is not clear if the compiler follows the language standard's rules for co-array synchronization.
- The intrinsics END_CRITICAL, START_CRITICAL, SYNC_ALL, SYNC_FILE, SYNC_TEAM, and SYNC_MEMORY are not supported. Note: A user-level implementation of the missing intrinsics is available and should be used for portability.
- The intrinsic SYNC_IMAGES is provided as an extension to the standard language.
- SYNC_IMAGES() is equivalent to SYNC_ALL().
- The general case, SYNC_IMAGES(IMAGE), is an alternative synchronization primitive to SYNC_TEAM. It is more general in some ways, but harder to use and less efficient (because it does not support WAIT).
Back to Co-Array Fortran home page