> (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