Coarray: Image Control Statement question

Coarray: Image Control Statement question

Ignoring the fact that my previous thread on coarrays is seemingly being ignored (grrr...) I have the following question regarding a comment found in the (meager) Intel documentation on coarrays:

"Image Control Statements" [...] "During an execution of a statement that invokes more than one procedure, at most one invocation can cause execution of an image control statement other than CRITICAL or END CRITICAL."

Can somebody help shed a light on this and what it means, and possibly an example of what is described as not being legit? As an aside, yes coarrays are pretty cool and will be even cooler when features like teams and events will be implemented (the faster the better!), but the documentation, albeit written in English, sounds like some kind of weird familiar-and-yet-totally-incomprehensible language. More relevant examples please!

Thanks,
Olivier

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

An image control statement is a "statement that affects the execution ordering between images". An example is SYNC. The text you cite is adapted from the Fortran standard. It means that if you do something like this:

X = F1(Y) + F2(Y)

where F1 and F2 are functions, only one of these can execute an "image control statement" (except that both may have a critical section).

Our documentation is not intended to teach you the language - there are a number of good tutorial books out there which do that. See Doctor Fortran in "It's a Modern Fortran World" for discussion of some of these.

Steve - Intel Developer Support

Leave a Comment

Please sign in to add a comment. Not a member? Join today