Am 02.01.26 um 6:15 PM schrieb Thomas Koenig:
Hi Jerry,
I committed this and of course I get this a bit too late. One of the
tests that fail is this one:
! { dg-do run }
SUBROUTINE SUB()
COMMON /BLOCK/ X
PRINT *,X ! X is undefined
END SUBROUTINE SUB
PROGRAM A28_1
COMMON /BLOCK/ X
X = 1.0
!$OMP PARALLEL PRIVATE (X)
X = 2.0
CALL SUB()
!$OMP END PARALLEL
END PROGRAM A28_1
I am not a gomp master. I want to think calling a procedure like this
should be invalid because more than one thread is trying to write to
the same unit. However, I am probably wrong. I need some advice.
I do not think you are wrong, IMHO the code is invalid as it stands.
Why do you think it is invalid?
There is of course a race condition, and the ordering of the
output characters is undefined, but that's the user's choice.
Harald
I/O to the same unit should be serialized by the user program.
(But I have to confess that I am confused by the comment).
Best regards
Thomas