We are attempting to use Direct IO file I/O with Coarray Fortran (CAF)
We would like to write a distributed CAF array to a file opened via Direct IO (e.g. the O_DIRECT flag in the unix open(...) command).
In order for this to work, the distributed CAF array must be aligned to a specific logical block size (typically 512 or 4096).
What compiler flag or other method is needed to align CAF arrays in memory? Is this even possible?
* We perform memory alignment in FORTRAN by calling an external C function to call POSIX_MEMALIGN(..). This alignment method works well, but does not work with CAF.
* We would prefer not to copy a CAF array to an aligned local array before writing to disk because of the overhead associated with the copy.