The purpose is to compute the following expression:
enfer= 1.3058750148074976d0 entmp = 0.093822912209640966d0 enpct = -2.2021424321973448d0 tfermi = 1.0d0/(dexp((enpct-enfer)/entmp)+1.0d0) The problem is the following. With a small test programm, the result is always correct, on any platform with any compiler. If I take the tfermi line and copy it into a bigger programm, then the results are false. This happens on x86 with g77. On alpha it seems to be OK, both with fort and g77. The results are again different if, on x86, Portland's pgf77 is used. Are there any known issues with dexp ? It's very hard to reproduce this since it happens only in big programms, even if those variables are hardcoded !! I have tested this both on the local cluster and on testdrive at compaq(RedHat). The results were exactly the same (alpha<->alpha, x86<->x86) Regards, Ionut PS command line: g77 -g -pg -o programm *.f PPS gcc -v: Reading specs from /usr/lib/gcc-lib/alpha-linux/2.95.3/specs gcc version 2.95.3 20010315 (Debian release) PPS I made another test. In the big programm I have defined a function fermi2: ************************************** real*8 function fermi2(enpc) implicit real*8 (a-h,o-z) common /list4/enfer,entmp tmp = 1.0d0/(dexp((enpc-enfer)/entmp)+1.0d0) print*,'tmp_fermi2(',enpc,')=',tmp fermi2=tmp return end ******************************* and computed the following expression: aux22= 1.0d0-fermi2(enpct) The output was: on x86: tmp_fermi2( -2.20214243)= 1. aux22= 1.11022302E-16 !! should have been 0. !! on alpha: tmp_fermi2( -2.20214243)= 1. aux22= 0. *************** * Ionut Georgescu * http://www.physik.tu-cottbus.de/~george/ * ICQ: 38973105 * "In Windows you can do everything Microsoft wants you to do; in Unix you * can do anything the computer is able to do." -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]