In Fortran, assuming I have a 64bit avx-able machine at my disposal, Is ALLOCATE statement guaranteed to allocate aligned arrays when the compiler is called with the "-align array64byte" flag? Or, do I need to call MKL_MALLOC in order to achieve this? I would really like to avoid MKL_MALLOC if possible, because, according to the example from the MKL 11 reference, it uses Cray pointers. My entire program is Fortran 2008, I'd hate to pollute it with such things.
Additionally, If there are no guarantees, is there a way to check if the allocation is aligned without resorting to an external C function which calculates the modulo?
"-align array64byte" compiler flag should give you what you need. See more details about aligning arrays in FORTRAN in this article: