1*59599516SKenneth E. Jansen subroutine error (routin, variab, num) 2*59599516SKenneth E. Jansenc 3*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 4*59599516SKenneth E. Jansenc 5*59599516SKenneth E. Jansenc This utility routine prints out the error and stops the program. 6*59599516SKenneth E. Jansenc 7*59599516SKenneth E. Jansenc input: 8*59599516SKenneth E. Jansenc routin : name of the routine where the error occurred 9*59599516SKenneth E. Jansenc variab : an 8-character error message 10*59599516SKenneth E. Jansenc num : any integer number associated with the error 11*59599516SKenneth E. Jansenc 12*59599516SKenneth E. Jansenc Farzin Shakib, Summer 1985. 13*59599516SKenneth E. Jansenc---------------------------------------------------------------------- 14*59599516SKenneth E. Jansenc 15*59599516SKenneth E. Jansen include "commonAcuStat.h" 16*59599516SKenneth E. Jansen include "mpif.h" 17*59599516SKenneth E. Jansenc 18*59599516SKenneth E. Jansen character*8 routin, variab 19*59599516SKenneth E. Jansenc 20*59599516SKenneth E. Jansen data ierchk /0/ 21*59599516SKenneth E. Jansenc 22*59599516SKenneth E. Jansenc.... check for redundant error 23*59599516SKenneth E. Jansenc 24*59599516SKenneth E. Jansen if (ierchk .eq. 1) stop 25*59599516SKenneth E. Jansen ierchk = 1 26*59599516SKenneth E. Jansen 27*59599516SKenneth E. Jansen if(myrank.eq.master) then 28*59599516SKenneth E. Jansenc 29*59599516SKenneth E. Jansenc.... open file 30*59599516SKenneth E. Jansenc 31*59599516SKenneth E. Jansen open (unit=ierror, file=ferror, status='unknown') 32*59599516SKenneth E. Jansenc 33*59599516SKenneth E. Jansenc.... print the error 34*59599516SKenneth E. Jansenc 35*59599516SKenneth E. Jansen write (*,1000) title, routin, variab, num 36*59599516SKenneth E. Jansen if (num .ne. 0) write (ierror,1000) title, routin, variab, num 37*59599516SKenneth E. Jansen if (num .eq. 0) write (ierror,1000) title, routin, variab 38*59599516SKenneth E. Jansenc 39*59599516SKenneth E. Jansenc.... halt the process 40*59599516SKenneth E. Jansenc 41*59599516SKenneth E. Jansen close (ierror) 42*59599516SKenneth E. Jansen endif 43*59599516SKenneth E. Jansen 44*59599516SKenneth E. Jansenc WRITE(6,'(A,G14.6)') 'Life: ',death - birth 45*59599516SKenneth E. Jansen 46*59599516SKenneth E. Jansen if (numpe > 1) then 47*59599516SKenneth E. Jansen call MPI_ABORT(MPI_COMM_WORLD) 48*59599516SKenneth E. Jansen endif 49*59599516SKenneth E. Jansen 50*59599516SKenneth E. Jansen 51*59599516SKenneth E. Jansen1000 format(' ',a80,//, 52*59599516SKenneth E. Jansen & ' ****** Error occurred in routine <',a8,'>',/, 53*59599516SKenneth E. Jansen & ' Error code :',a8,:,' : ',i8,//) 54*59599516SKenneth E. Jansen end 55