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