- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The following code is rejected with a strange error message by several Intel compiler revisions:
program test_aio
implicit none
integer, parameter :: nx=1, ny=64, nz=32
real, asynchronous :: rbuf(nx,ny,nz)
call random_number (rbuf)
call async_write (rbuf)
contains
subroutine async_write (buf)
real, intent(in), contiguous :: buf(:,:,:)
integer :: i, id, iu, irecl
iu = 11
inquire (iolength = irecl) buf(:,:,1)
open (iu, access='direct', recl=irecl, asynchronous="YES")
do i = 1, size (buf,3)
write (iu, rec=i, asynchronous="YES", id=id) buf(:,:,i)
wait (iu, id=id)
end do
wait (iu)
close (iu)
end subroutine async_write
end program test_aio
The error message looks like
ifort_aio.f90(15): warning #8057: Asynchronous input/output is not implemented in internal routines therefore this statement will be executed synchronously.
write (iu, rec=i, asynchronous="YES", id=id) buf(:,:,i)
-------^
ifort_aio.f90(15): error #7609: If an ID= specifier is present then an ASYNCHRONOUS= specifier with the value YES shall be present. [ID]
write (iu, rec=i, asynchronous="YES", id=id) buf(:,:,i)
------------------------------------------------^
compilation aborted for ifort_aio.f90 (code 1)
I do not care much about the warning, but I believe the error message to be wrong.
Removing the ID keyword solves the issue, but this is plain Fortran 2003!
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I agree, Please report it to the Intel Online Service Center. I wasn't aware that doing asynch I/O in an internal procedure wasn't supported - this never came up while I was doing compiler support. I suppose the concern is that the I/O list can go out of scope before the I/O completes, but that could happen with an external procedure as well so I don't see the point of this restriction. I suggest you add a complaint about this to your bug report.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page