Hi, I've encountered a "feature" in the SGI MipsPro F90 compiler and would like to know what other compilers make of this, and whether the behaviour of the SGI compiler conforms to the standard. Attached find a short test program that tests the behaviour of a variable initialized at declaration time, vs. one initialized in a separate statement (itest1 and itest2 respectively). The variable that's initialized at declaration time behaves exactly like a "saved" variable even though there's no save statement in the code. Is this expected behaviour? It seems counter-intuitive to me. I've spent the last two weeks tracking this one down, looking for a non-existent memory stomp. Grrrr. A colleague of mine found the following statement in the SGI documentation which clearly points out this feature so it's not a bug per se. I don't find this behaviour obvious though. "Initialization of a variable in a type declaration statement or any part of a variable in a DATA statement implies that the variable has the SAVE attribute unless the variable is in a named common block." Test Code: SUBROUTINE SUB1(INDX) IMPLICIT NONE INTEGER, INTENT(IN) :: INDX LOGICAL :: ITEST1 = .TRUE. LOGICAL :: ITEST2 itest2 = .true. if (mod(indx,5) == 0) then itest1 = .false. itest2 = .false. endif write(*,'(a,i,l,l)') 'indx, itest1, itest2 = ',indx,itest1,itest2 RETURN END SUBROUTINE SUB1 PROGRAM TEST INTEGER :: INDX do indx = 1,10 call sub1(indx) end do STOP END PROGRAM Test Output: indx, itest1, itest2 = 1 T T indx, itest1, itest2 = 2 T T indx, itest1, itest2 = 3 T T indx, itest1, itest2 = 4 T T indx, itest1, itest2 = 5 F F indx, itest1, itest2 = 6 F T indx, itest1, itest2 = 7 F T indx, itest1, itest2 = 8 F T indx, itest1, itest2 = 9 F T indx, itest1, itest2 = 10 F F Thanks for any enlightenment, Catherine -- ------------------------------------------------------------------------- Catherine Moroney phone : (818) 393-3392 Jet Propulsion Laboratory fax : (818) 393-3134 MailStop 168-414 email : [log in to unmask] 4800 Oak Grove Drive Pasadena, CA 91109-8099