From owner-sc22wg5@open-std.org  Fri Jan 23 01:24:50 2009
Return-Path: <owner-sc22wg5@open-std.org>
X-Original-To: sc22wg5-dom7
Delivered-To: sc22wg5-dom7@www2.open-std.org
Received: by www2.open-std.org (Postfix, from userid 521)
	id 0CC6DC178E0; Fri, 23 Jan 2009 01:24:50 +0100 (CET)
X-Original-To: sc22wg5@open-std.org
Delivered-To: sc22wg5@open-std.org
Received: from ns.nag-j.co.jp (218-42-159-107.cust.bit-drive.ne.jp [218.42.159.107])
	by www2.open-std.org (Postfix) with ESMTP id 1881BC178D9
	for <sc22wg5@open-std.org>; Fri, 23 Jan 2009 01:24:48 +0100 (CET)
Received: from 218-42-159-108.cust.bit-drive.ne.jp ([218.42.159.108] helo=[127.0.0.1])
	by ns.nag-j.co.jp with esmtp (Exim 4.50)
	id 1LQ9px-0008Ol-7o; Fri, 23 Jan 2009 09:23:53 +0900
Message-ID: <49790F12.8010902@nag-j.co.jp>
Date: Fri, 23 Jan 2009 09:28:02 +0900
From: Malcolm Cohen <malcolm@nag-j.co.jp>
User-Agent: Thunderbird 3.0a1pre (Windows/2008022014)
MIME-Version: 1.0
To: WG5 <sc22wg5@open-std.org>
Cc: MPI-3 Fortran working group <mpi3-fortran@lists.mpi-forum.org>
Subject: Re: [ukfortran] (SC22WG5.3890) (j3.2006) [MPI3	Fortran]	MPI	non-blocking
 transfers
References: <Prayer.1.3.1.0901211104060.5654@hermes-2.csi.cam.ac.uk>	<49776DF7.1040900@cray.com>	<20090121211748.130A5C178D9@www2.open-std.org>	<20090121224014.6CB63C178D9@www2.open-std.org>	<20090121234200.4F3BDCA3434@www2.open-std.org>	<20090122000407.D5A8ECA3434@www2.open-std.org>	<20090122100652.C31E9CA3434@www2.open-std.org> <20090122170820.75A3FCA3439@www2.open-std.org>
In-Reply-To: <20090122170820.75A3FCA3439@www2.open-std.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Sender: owner-sc22wg5@open-std.org
Precedence: bulk



Bill Long wrote:
> The one difference (from the compiler's point of view) is that the 
> volatility of a variable with the asynchronous attribute can be 
> "turned off" when the compiler sees a global WAIT.

There is no such thing as a global WAIT.  WAIT requires a 
file-unit-number - see C938 "A <file-unit-number> shall be specified in 
a <wait-spec-list>".  Unless the compiler can see all the references to 
a variable (something that is sometimes the case but rather frequently 
not!) it will not know what unit the i/o is being performed on (and if 
it can see the references and knows the unit, it probably knows the ID= 
and can track that too).

As has been pointed out, there are many differences between ASYNCHRONOUS 
and VOLATILE (that the "volatility" can be turned off as soon as the 
compiler reaches any calculation involving the variable is a much bigger 
difference than the WAIT case), but this is not one of them.

Cheers,
-- 
.....................Malcolm Cohen, Nihon NAG, Tokyo.


