1) the program does not crash if executed in OSF (dxplus) 2) the original (Janot) program does not crash even in Linux 3) the DELPHI implementation (i.e. interface to PYTHIA instead of JETSET, tauola and a few other changes) crashes in a routine (REMT1) that: i - is the same in the original and DELPHI versions ii - does simple mathematics, no random numbers, essentially no common blocks 4) the crash does not occur if the energy is set at 203.67 or 203.72 but occurs for 203.71 or 203.68 5) the crash does not occur if the mass is set at 18.0001 or 17.99999 but occurs for 18.00001 or 17.999999 (probably these values are converted internally to the same value as 18.0) 6) the crash is due to a segmentation fault in the istruction 6933 where the index K takes a large value because the IF is never satisfied (gdb) list 6928 C FROM THIS, DETERMINE NEW X VALUES AND FINALLY REPLACE OLD VALUES 6929 XNEW(1)=X(1,INDEX) 6930 XNEW(N)=X(N,INDEX) 6931 K=1 6932 DO 108 I=2,M 6933 106 IF( Y(K+1) .GT. Z(I) ) GOTO 107 6934 K=K+1 6935 GOTO 106 6936 107 R= ( Z(I) - Y(K) ) / ( Y(K+1) - Y(K) ) 6937 108 XNEW(I) = X(K,INDEX) + ( X(K+1,INDEX)-X(K,INDEX) )*R (gdb) print i $137 = 2 (gdb) print k $138 = 155096 7) the IF is not satisfied because the vector Y is corrupted - Y(I) is defined by Y(I-1)+A(I-1), where A(I) depends on F(I+1)+F(I), and F(489) takes at a certain time a NaN value (gdb) list 6913 6908 C 6909 C CALCULATE BIN AREAS 6910 DO 103 I=1,M 6911 print *, '1.7--*** ',X(I+1,INDEX),X(I,INDEX)**(1D0/bet),F(I+1) 6912 103 A(I)=(X(I+1,INDEX)-X(I,INDEX))*(F(I+1)+F(I))/2. 6913 C 6914 C CALCULATE CUMULATIVE SPECTRUM Y VALUES 6915 Y(1)=0.D0 6916 DO 104 I=2,N 6917 104 Y(I)=Y(I-1)+A(I-1) (gdb) print f(489) $146 = NaN(0x8000000000000) (gdb) print f(488) $147 = 1113.5938819318667 (gdb) print f(490) $148 = 1082.5267420395983 8) The vector F is filled by the function SPECTR that in turn is not easy to follow, depending on other functions in a sort of Chinese boxes 6905 DO 102 I=1,N 6906 * print *, ' 1.6--*** ', xn(index),x(i,index) 6907 102 F(I)=SPECTR(xn(index)*X(I,INDEX)**(1D0/bet)) 6908 C 9) In case of crash the values F(I) with I .ne. 489 appear the same as in the good runs (OSF or original HZHA) CONCLUSIONS: I don't know what else to do, the debugging tools on Linux are not very powerful (and surely I am not expert enough). My feeling is that everything should be OK when there is no crash, but still I find rather worrying this mistery, in principle a bug could affect any result without showing up explicitely as in the case of the crash.