Dear Nishita, > The numbers are the same (12) for both MAXAMPS and NDIAGS. This is perfect. Could you check what is line 109 in your matrix1.f >> SubProcesses/P0_gg_xksixksig/matrix1.f in my case, I have: IF (MULTI_CHANNEL) THEN DO I=1,NDIAGS AMP2(I)=0D0 ENDDO the 109 is the “AMP2(I)=0D0” one. the statement of your code is “Array reference out of bounds for array 'amp2', upper bound of dimension 1 exceeded (in file ‘matrix1.f’, at line 109)”. The dimension of AMP2 is given by MAXAMPS. Therefore if MAXAMPS is NDIAGS, the code can not crash! So my only idea is that either you do not have the same line or that you use a bugged compiler. Both are very unlikely but I’m really running out of ideas. One variation of the compilation problem is if you change some compiler flag by default on your system. I’m not even sure that such flag exists, but if at the system level you change the counting behaviour of fortran then it will explain the problem. this can happens if you have the FFLAGS define globally can you do echo $FFLAGS to see if that variable is define? if it returns something try to run export FFLAGS= and rerun (in the same shell) One other variable that can be tested is the following one: echo $FC One test that can be done is to check such kind of points is the following replace the above piece of code by the following one: IF (MULTI_CHANNEL) THEN DO I=1,NDIAGS write(*,*) I,”/“,NDIAGS AMP2(I)=0D0 ENDDO Then you can look at the log for that run and check if indeed “I” is sometimes larger than 12 and/or if NDIAGS change value at some point. (which should not be technically possible) The log that you have to look at is in the following path: DM_monojet/SubProcesses/P0_gg_xksixksig/G1.2/ and is either log.txt or run_01_log.txt Cheers, Olivier On 16 Sep 2015, at 14:28, Nishita