(j3.2006) (SC22WG5.4103) [ukfortran] Standard intrinsics and coarrays

Van Snyder Van.Snyder
Wed Oct 21 14:27:03 EDT 2009


On Wed, 2009-10-21 at 10:57 -0700, N.M. Maclaren wrote:
> On Oct 21 2009, Aleksandar Donev wrote:
> >
> >Once Nick has a final draft with Bill's suggestions taken into account I 
> >will take a closer look and comment.
> 
> Here is what I currently have:
> 
> We seem to have forgotten to specify how the intrinsic procedures may
> be used as far as their use in unordered images is concerned - or, at
> least, I can't find anything.  However, I don't think that there is much
> of a problem.  13.5 paragraph 2 and Table 13.1 is the starting point,
> and a lot of my proposal is already implied for those of classes E, ES
> and PS by other wording.  Those of class A are already covered.
> 
> I have drafted the hard line on random numbers; it would be possible to
> make the 'shall be' conditional on the processor dependence, but that is
> messy.
> 
> Proposal:
> 
> In 13.5, Standard generic intrinsic procedures, after Table 13.1, add
> the new paragraphs:
> 
>     It is processor dependent whether EXECUTE_COMMAND_LINE may be called
>     on any image other than image 1.

I would prefer that the effect of calling EXECUTE_COMMAND_LINE on more
than one image is processor dependent.  I can imagine writing a file
with an image-dependent name, running some external process
synchronously with its input piped from that file and its output piped
to a file with a different image-dependent name, then opening and
reading that file.

>     If RANDOM_SEED is called in a segment A, and either RANDOM_SEED or
>     RANDOM_NUMBER is called in segment B, then segments A and B shall be
>     ordered.  It is processor dependent whether all images use a common
>     generator or whether each image uses a separate one.

Segment A and segment B should be explicitly different segments in this
discussion.

>     It is processor dependent whether the results returned from
>     COMMAND_ARGUMENT_COUNT, CPU_TIME, DATE_AND_TIME, GET_COMMAND,
>     GET_COMMAND_ARGUMENT, GET_ENVIRONMENT_VARIABLE and SYSTEM_CLOCK are
>     dependent on which image calls them.
> 
>     NOTE 13.x
>     This means that it is unspecified whether images use synchronized
>     clocks, whether CPU_TIME returns a per-image or per-program value,
>     whether all images run in the same time zone, whether the count rate
>     and maximum in SYSTEM_CLOCK are the same for all images, and whether
>     all images run in the same command environment.  It is likely that
>     they will behave differently on shared memory systems and some
>     distributed memory ones.  For maximum portability, programs should
>     inspect the command environment and call DATE_AND_TIME only on
>     image 1.
> 
>     The use of all other standard intrinsic procedures in unordered
>     segments is subject only to their argument use following the rules
>     in 8.5.2.

Edits will be needed in Annex A.





More information about the J3 mailing list