Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
For the latest information on Intel’s response to the Log4j/Log4Shell vulnerability, please see Intel-SA-00646
26853 Discussions

alignment attribute for same variable names (error #8626)



I am trying to align the memory of pointers in a pretty large code. But, I receive a compilation error #8626 which is undocumented. So, I have made a test program that can reproduce the same compilation error.

The issue is that the variable names outside of a derived type in a module is the same as the ones inside a derived type.

Below is the test program to get a clear picture:

module mod1
implicit none

real*8, pointer, contiguous :: Arr(:)
!dir$ attributes align : 64 :: Arr

type der1
   ! This does NOT work because the name is same
   real*8, pointer, contiguous :: Arr(:)
   !dir$ attributes align : 64 :: Arr

   ! This works because Arr is renamed to ArrD
   !real*8, pointer, contiguous :: ArrD(:)
   !!dir$ attributes align : 64 :: ArrD
end type

end module

program test
use mod1
implicit none

end program

When I compiler the program, I receive the following error:

test.f90(10): error #8626: The DEC$ ATTRIBUTES ALIGN or FASTMEM attribute must specify a field in the type being defined.   [ARR]
   !dir$ attributes align : 64 :: Arr
compilation aborted for test.f90 (code 1)

How do I specify a field, as told in the above error? Is there any way to tell the compiler to differentiate these two pointers?

Thank you in advance.


0 Kudos
2 Replies
Valued Contributor I

The code that you provided works with ifort 17 and 18. So this seems to be a regression in the v19 of the compiler. I suggest to report this via the Online Support Center of Intel.


Thank you!

Yes, I forgot to mention that I was indeed using Intel 19 for this test program.