- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
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.
Vineet
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you!
Yes, I forgot to mention that I was indeed using Intel 19 for this test program.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page