- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Compile the following program with ifort 13.1.0.146. You would expect the compiler not to create a temporary copy of x(:,:,:,1,2) in subroutine f. But it does. Using UBOUND seems to be a viable workaround.
[fortran]
program test
double precision, allocatable :: x(:, :, :, :, :)
double precision y(200, 200, 200, 2, 2)
integer n1, n2, n3, n4, n5
read *, n1, n2, n3, n4, n5
allocate(x(n1, n2, n3, n4, n5))
call f(x)
call f(y)
contains
subroutine f(x)
double precision x(:, :, :, :, :)
print *, shape(x(:, :, :, 1, 2))
end subroutine
end program[/fortran]
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks - I agree that this is a missed opportunity, I have escalated it to the developers as issue DPD200242784.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
A fix has been found for this issue. We are currently planning to include in the next major release which is currently scheduled for later this year.
Annalee
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page