PGI wierdness with .EQV.




I am the primary maintainer of an open-source environmental-data
I/O library, and one of my (historically very astute) users reports
that the program below does not behave correctly when compiled with
PGI F90 (of which I don't have a copy). Either replacing the
IF-clause by the logically equivalent "IF ( LVAR ) THEN" or using
an alternate compiler (g95, ifort, sunf95) causes the program to behave
as expected.

What the ??!!? How does a bug this blatant get through testing?

Carlie Coats
Baron Advanced Meteorological Systems

----------------------------------------------------------
PROGRAM TEST_ENVYN

LOGICAL :: ENVYN, LVAR
INTEGER :: ISTAT

LVAR = ENVYN('LVAR','logical variable',.TRUE.,ISTAT)

IF ( .TRUE. .EQV. LVAR ) THEN
PRINT*, 'LVAR = TRUE'
ELSE
PRINT*, 'LVAR = FALSE'
ENDIF

END
.