(j3.2006) C9845 in 09-290 and 09-290r2

Bill Long longb
Fri Nov 20 14:33:37 EST 2009

Van Snyder wrote:
> 09-290 advocated to change C845 [186:5-7 8.1.10] to
> "C845  (R850) An <exit-stmt> shall not appear with a CRITICAL or DO
>        CONCURRENT construct if it belongs to that construct or an outer
>        construct."
> In 09-290r2, it ended up as
It was also this way in 09-290r1
> "C845  (R850) An <exit-stmt> shall not appear within a CRITICAL or DO
>        CONCURRENT construct if it belongs to an outer construct."
> Do we want to allow an <exit-stmt> to belong to a CRITICAL or DO
> CONCURRENT construct?

Not for a DO CONCURRENT construct.   It seems harmless for a CRITICAL 
construct, in that it is essentially a branch to the END CRITICAL 
statement.   This is the downside of trying to put these constraints in 
the EXIT and CYCLE sections, instead of focusing on the construct sections.

It appears that the wording was changed to be similar for the CYCLE and 
EXIT cases.  By these are not similar.  CYCLE makes no sense belonging 
to a CRITICAL construct; for DO CONCURRENT, it simply completes a 
particular iteration.  So the "belongs to" bit should not be in the 
CYCLE constraint. EXIT, on the other hand, kills off all the uncompleted 
iterations of a DO, and that is undesirable for DO CONCURRENT.  Maybe we 
just need an additional constraint for EXIT:

   An <exit-stmt> shall not belong to a DO CONCURRENT construct.



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