To: J3 J3/20-104 From: John Reid Subject: Collective subroutines and STAT= Date: 2020-February-18 References: 18-007r1, 19-181, 19-244 ---------------------------------------------------------------------- 1. Introduction 1. Introduction This paper is a fresh request for one of the interpretations requested in 19-181. 19-244 explains why the editor did not accept it. Here, we make a fresh request to address the same problem. It is self-contained and does not require the reader to consult 19-181 or 19-244. 2. Question 16.6 par. 7 contains this statement pertaining to the execution of a collective subroutine: "If the STAT argument is present and ... the current team contained failed images, an error condition occurs and the value STAT_FAILED_IMAGE from the intrinsic module ISO_FORTRAN_ENV is assigned to the STAT argument". Given that an image might fail during the execution of the collective subroutine, what exactly does this require of the implementation and is it deliverable? 3. Suggested response This statement is stronger than was intended. A collective subroutine is defined (3.143.2) as an "intrinsic subroutine that performs a calculation on a team of images without requiring synchronization". For performance reasons, it was intended that once an image has completed its calculation it should be free to execute other statements without waiting for the other images to do so. 16.7 para. 7 seems to require that a synchronization of all images of the team should occur before any are freed in order to ensure that none have failed. This was not intended and an edit is provided to correct this. 4. Suggested edit In 16.6 Collective subroutines, para 7, sentence 2, change "if the current team contained failed images" to "if the current team is detected to contain failed images". so that the sentence becomes "Otherwise, if the current team is detected to contain failed images, an error condition occurs and the value STAT_FAILED_IMAGE from the intrinsic module ISO_FORTRAN_ENV is assigned to the STAT argument."