(j3.2006) 16-150

Bill Long longb
Tue Jan 26 15:21:19 EST 2016

On Jan 26, 2016, at 12:58 PM, Van Snyder <Van.Snyder at jpl.nasa.gov> wrote:

> 16-150 observes that ID= is prohibited in a child data transfer
> statement, and asks whether waits ought also to be prohibited.

Similar to the problem with 16-126:

"Neither a parent nor child data transfer statement shall be asynchronous.?

ID= is only relevant for asynchronous I/O. 


> A wait isn't a data transfer statement, so the wording would need to be
> different, and rather messy.  Something like "... for the same unit as
> the \cf{unit} argument of a defined input/output procedure, while the
> defined input/output procedure or one invoked by it is executing...."
> But what is the point of prohibiting ID= anyway?  ASYNCHRONOUS="yes"
> isn't prohibited.  The only reason I can think of is that the DIO
> subroutines don't have an (optional) ID argument to send the value back
> through the I/O statement that got things going, and if it did, and
> there were several DIO subroutine invocations in one statement, which ID
> value would be reported?  The last one would be good enough because
> asynchronous input/output on a single unit is defined to take place in
> the same order as synchronous input/out would have done.
> As far as I can tell, ID= in a child data transfer statement is
> harmless, so the prohibition is just a pointless prohibition that
> careful runtime-checking processors would need to check for (does
> anybody check it now?).  If one wants to make use of the ID value, one
> must use it within the DIO subroutine, or one called by it, or one
> called by that one ..., or put the value into a global variable, perhaps
> indexed by the unit number.
> Is there a deeper problem?  Is it related to DIO being nonadvancing?  I
> didn't see a prohibition against ID= or ASYNCHRONOUS="yes" with
> ADVANCE="no".
> If there's no problem, I'd rather just delete, with a remark
> in the introduction.  Something like "Processors no longer need to check
> the pointless prohibition against ID= in a child data transfer
> statement."
> _______________________________________________
> J3 mailing list
> J3 at mailman.j3-fortran.org
> http://mailman.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./ Cray Plaza, Suite 210/ 380 Jackson St./ St. Paul, MN 55101

More information about the J3 mailing list