(j3.2006) Undefinition and DO CONCURRENT

Malcolm Cohen malcolm
Wed Jun 18 21:36:20 EDT 2014


Hi Van,

There is no iteration which "defines" A - each iteration partially-defines A, 
but that does not "define A", so I don't agree with your conclusion.

And "scalar variable" would not help anyway, considering the example
  TYPE T
    INTEGER A(10)
  END TYPE
  TYPE(T) X
   DO CONCURRENT (I=1:10); X%A(I) = I; END DO

at the end of the loop the scalar variable X has become defined, even though 
there is no iteration that in itself "defines" X.  This is the same situation 
you are complaining about with the array A.

I think that adding "scalar" makes the wording worse actually, as in more 
actively misleading.

So I think this is ok as is.

Cheers,

-----Original Message----- 
From: Van Snyder
Date: ?? 26?6?19? 10:00
To: j3
Subject: (j3.2006) Undefinition and DO CONCURRENT

According to 16.6.6p1(17):

        When a DO CONCURRENT construct terminates, a variable that is
        defined or becomes undefined during more than one iteration of
        the construct becomes undefined.

  integer :: I
  integer :: A(10)
  do concurrent ( i = 1:size(a) )
    a(i) = i
  end do

causes A to become undefined.

I think "variable" needs to be "scalar variable".

Does this need an interp, or can we just repair it in the course of
revision?


_______________________________________________
J3 mailing list
J3 at mailman.j3-fortran.org
http://mailman.j3-fortran.org/mailman/listinfo/j3

________________________________________________________________________
This e-mail has been scanned for all viruses by Star.
________________________________________________________________________

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




More information about the J3 mailing list