sjc@angband.UUCP (Steve Correll) (01/25/85)
Here's an even simpler demonstration of the phenomenon: IMPLICIT DOUBLE PRECISION (A-H,O-Z) DIMENSION W(10),NW(2) EQUIVALENCE (WW,NW(1)),(NQ,NW(2)) C MEMORY MAP OF WW, NW AND NQ C WORD: 1 2 C WW (..............) C NW (...1..)(...2..) C NQ (......) C ww=0.0 NQ=10 write(*,*)'ww,nw(1),nw(2),nq',ww,nw(1),nw(2),nq temp=ww ww=temp write(*,*)'ww,nw(1),nw(2),nq',ww,nw(1),nw(2),nq end The output is: ww,nw(1),nw(2),nq 0. 0 10 10 ww,nw(1),nw(2),nq 0. 0 0 0 The "-S" option of f77 shows that it uses the "movd" instruction to transfer "ww" to "temp" and back again. I suspect that this normalizes the floating point value, bashing your data. -- --Steve Correll sjc@s1-c.ARPA, ...!decvax!decwrl!mordor!sjc, or ...!ucbvax!dual!mordor!sjc