(j3.2006) MPI usage problems in Fortran
Bill Long
longb
Wed Mar 19 14:54:56 EDT 2008
Aleksandar Donev wrote:
> On Wednesday 19 March 2008 11:20, Bill Long wrote:
>
>
>> That's because an
>> async I/O operation initiated in the subprogram might not finish before
>> control is transferred back to the caller
>>
> What if the programmer knows it does. Why should async taint leak out of the
> routine back to the actual???
>
If the programmer knows the I/O operations complete before return, then
it is not necessary to specify the ASYNCHRONOUS attribute in the
declaration of the dummy variable involved in the I/O operation. It is
automatically implied by the variable being in the I/O list of the async
I/O statement.
>
>> , and the I/O libraries need a
>> stable target in memory for the data transfers throughout the I/O
>> operation.
>>
> But, I repeat my issue: What about the actual? Should it have the asynchronous
> attribute? Surely it must since it's values are changing behind the
> compiler's back.
Yes, the actual is required to have the asynchronous attribute in this
case. [77:10-11] in f03. This could be either through explicitly
specifying the attribute, or by having the variable appear in another
async I/O operation in the caller.
If the effect of an asynchronous declaration on a dummy did not leak
into the caller, there would be no point in requiring an explicit
interface based on a dummy argument having the asynchronous attribute.
Cheers,
Bill
> If the actual is not async, and the dummy is, what does it
> mean? I would say it means the async I/O is localized inside the routine and
> *completes* before the routine returns.
>
>
>> Since the user can control the code range where the
>> variable is tainted,
>>
> I question this statement above. First you tell me putting async on the dummy
> taints actuals, even if they don't have async. Or maybe they don't.
>
> I am still 100% convinced this was badly designed, OR, there are missing words
> in the standard expressing what someone thought but never wrote down for
> others (especially implementors) to understand.
>
> Best,
> Aleks
> _______________________________________________
> J3 mailing list
> J3 at j3-fortran.org
> http://j3-fortran.org/mailman/listinfo/j3
>
--
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120
More information about the J3
mailing list