> (Can a Fortran person please comment on this: as it's nontrivial to write
> to stderr, let's just write to stdout followed by a flush, which does
> have the same ordering effect -- OK?)

Although there are no absolute guarantees on flushing, it should work in 
practice.

Note that the FLUSH subroutine (as in “call flush”) is nonstandard. The 
standard way to achieve this is the FLUSH statement:

  use iso_fortran_env, only : output_unit
  flush output_unit

where the first line (“use …”) goes at the very top of the routine/program, 
above “implicit none”. So the patch for, e.g., 
libgomp.oacc-fortran/data-already-7.f would be:

Index: libgomp/testsuite/libgomp.oacc-fortran/data-already-7.f
===================================================================
--- libgomp/testsuite/libgomp.oacc-fortran/data-already-7.f     (revision 
226823)
+++ libgomp/testsuite/libgomp.oacc-fortran/data-already-7.f     (working copy)
@@ -1,5 +1,6 @@
 ! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
 
+      USE ISO_FORTRAN_ENV, ONLY: OUTPUT_UNIT
       IMPLICIT NONE
       INCLUDE "openacc_lib.h"
 
@@ -7,6 +8,8 @@
 
 !$ACC ENTER DATA CREATE (I)
       CALL ACC_CREATE (I)
+      PRINT *, "CheCKpOInT"
+      FLUSH OUTPUT_UNIT
 
       END
 


I hope this helps,
FX

Reply via email to