The following on screen description happened: jacin04 PHITS/src> gcc -v -save-temps -O4 -c mars00.f Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../gcc-4.0.1/configure --prefix=/usr/common/usg/gcc/4.0.1 --with-mpfr-dir=/usr/common/usg/gmp/src/gmp-4.1.4/mpfr/ --with-mpfr=/usr/common/usg/gmp/4.1.4/lib --with-gmp=/usr/common/usg/gmp/4.1.4 --with-gmp_dir=/usr/common/usg/gmp/src/gmp-4.1.4 --disable-multilib Thread model: posix gcc version 4.0.1 /usr/common/usg/gcc/4.0.1/libexec/gcc/x86_64-unknown-linux-gnu/4.0.1/f951 mars00.f -ffixed-form -quiet -dumpbase mars00.f -mtune=k8 -auxbase mars00 -O4 -version -o mars00.s GNU F95 version 4.0.1 (x86_64-unknown-linux-gnu) compiled by GNU C version 4.0.1. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=65536 In file mars00.f:838
if (iii-2) 570,510,540 1 Warning: Obsolete: arithmetic IF statement at (1) mars00.f: In function 'fidas': mars00.f:927: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. The subroutine that generated the error is as follows: subroutine fidas (d,ld,lld,ll2,j3,n5,n6) external fidcom c c *** data array modification c####################################################################### c c audit trail information c c date the module was last permanently updated: 93/09/20 c time the module was last permanently updated: 07:31:12 c programmer name: l.m.petrie c module name: s7fidas c current archiving level number: 00020 c current number of permanent updates: 00020 c date of last access by librarian: 93/09/20 c dataset name: x4s.scale4.master c c####################################################################### dimension in(37),k(37),v(37),ld(*),vmt(18),w(12), * d(*),lld(*) common /fidasc/ iprtrg dimension prt(3) equivalence (bb,lbb) dimension vs(74) equivalence (v(1),vs(1)) double precision v,vv,vu,del,delt,dif character*1 k,lbb,ldl,ls,lr1,li,lt,lss,lf,la,lap,lpl,lmi,lz,lv,lu character*1 bb,lq,lm,ln,le,lli,lki,lo,lc,lsls,ldb,lhl,lb character*4 prt,vmt dimension dv(2),vi(2) equivalence (dv(1),delt),(vi(1),vv) data ldl,ls,lr1,li,lt,lss/'$','*','r','i','t','s'/ data lf,la,lap,lpl,lmi/'f','a','&','+','-'/ data lz,lv,lu,bb/'z','v','u',' '/ data lq,lm,ln/'q','m','n'/,le/'e'/,lli/'l'/ data lki/'k'/ data lo,lc,prt(1),prt(2),prt(3)/'o','c','off ','prt ','on '/ data lsls /'/'/ data ldb/'#'/, lhl/'h'/ kdbl = 0 ldbl = 0 j = 0 j3 = 0 iii = 0 ivmt = 0 ncount = 0 100 call ffread(in,k,v,nf,n5,n6,iprtrg) do 120 i=1,nf if (k(i).ne.lpl.and.k(i).ne.lap.and.k(i).ne.lmi) go to 120 c *** exponentiation (&,+,-) l = in(i) if (l.eq.0) go to 120 e = 10.0**l if (k(i).eq.lmi) go to 110 v(i) = v(i)*e go to 120 110 v(i) = v(i)/e 120 continue i = 1 130 continue if (iii.eq.0) go to 140 if (iii-2) 570,510,540 140 iii = 0 if (k(i).eq.lbb) go to 370 if (k(i).eq.lhl) go to 370 if (k(i).eq.ldl) go to 200 if (k(i).eq.ls) go to 190 if (k(i).eq.ldb) go to 180 if (k(i).eq.lr1) go to 400 if (k(i).eq.li) go to 560 if (k(i).eq.lt) go to 150 if (k(i).eq.lss) go to 340 if (k(i).eq.lf) go to 290 if (k(i).eq.la) go to 330 if (k(i).eq.lz) go to 390 if (k(i).eq.le) go to 320 if (k(i).eq.lq) go to 420 if (k(i).eq.lm.or.k(i).eq.ln) go to 460 if (k(i).eq.lu) go to 160 if (k(i).eq.lv) go to 170 if (k(i).eq.lli) go to 500 if (k(i).eq.lki) go to 530 if (k(i).eq.lo) go to 350 if (k(i).eq.lc) go to 360 if (k(i).eq.lsls) go to 210 go to 370 c *** terminate (t) 150 j2 = 0 itest = in(i) kdbl = ldbl if (j.eq.0) go to 250 go to 220 c *** variable format control (u,v) 160 read(n5,10900)vmt 170 ivmt = 1 go to 190 c *** begin new array (*,$,#) 180 kdbl = ldbl cshr ldbl = 1 cshr clng c ldbl = 0 clng kkk = 0 go to 210 190 kkk = 0 kdbl = ldbl ldbl = 0 go to 210 200 kkk = 1 kdbl = ldbl ldbl = 0 210 if (ncount+j.eq.0) go to 270 j2 = 1 220 ij = j ic = ncount inc = 1 if (kdbl.eq.0) go to 230 ij = j/2 ic = ncount/2 inc = 2 230 write(n6,10400) ll,lb,ij if (j.eq.ncount) go to 250 imax = j1 + j - 1 if (j.gt.10000) imax = j + 99 if (kk.eq.1) then write(n6,'(1x,10i12)') (ld(ii),ii=j1,imax,inc) else write(n6,'(1x,1p,10e12.5)') (d(ii),ii=j1,imax,inc) end if j3 = j3 + 1 write(n6,10500) ic,ll,lb 250 if (j2.ne.0) go to 270 write(n6,10600)in(i),lt 260 return 270 if (k(i).eq.lsls) go to 590 ll = in(i) ll3 = ll + ll2 - 1 kk = kkk lb = k(i) inc = ldbl+1 j = inc*v(i) j1 = lld(ll3) + j ncount = lld(ll3+ 1) - j1 j = 0 if (ivmt.eq.0) go to 600 c *** variable format control (u,v) 280 if (ncount.eq.0) go to 100 j = ncount ncc = j1 + ncount - 1 read(n5,vmt) (d(j2),j2=j1,ncc) ivmt = 0 go to 100 c *** fill array (f) 290 if (j.ge.ncount) go to 310 ncc = j+1 do 300 ii=ncc,ncount,inc j2 = j1 + ii -1 if (ldbl.eq.1) then d(j2) = vs(2*i-1) d(j2+1) = vs(2*i) else d(j2) = v(i) end if if (kk.ne.0) ld(j2) = v(i) 300 continue j = ncount go to 600 310 write(n6,10700) ll,lb go to 600 c *** end array (e) 320 if (j.le.ncount) j=ncount go to 600 c *** address modification (a) 330 j = v(i) if (j.gt.ncount.or.j.le.0) write(n6,10800)j,ll,lb j = inc*(j-1) go to 600 c *** skip (s) 340 j = j + inc*in(i) go to 600 c *** turn print trigger on/off 350 iprtrg = -iprtrg write(n6,10100)prt(2),prt(iprtrg+2),in(i),lo go to 600 c *** print count in current array 360 write(n6,10200)ll,lb,j,in(i),lc go to 600 c *** no modification 370 continue 380 j2 = j1 + j j = j+inc if (ldbl.eq.1) then d(j2) = vs(2*i-1) d(j2+1) = vs(2*i) else if (k(i).eq.lhl) then d(j2) = vs(2*i-1) go to 600 else d(j2) = v(i) end if end if if (kk.ne.0) ld(j2) = v(i) go to 600 c *** zero (z) 390 in(i) = v(i) + in(i) v(i) = 0.0 c *** repeat (r) 400 l = in(i) cst do 410 ii=1,max(1,l) do 410 ii=1,max0(1,l) j2 = j1 + j if (ldbl.eq.1) then d(j2) = vs(2*i-1) d(j2+1) = vs(2*i) else d(j2) = v(i) end if if (kk.ne.0) ld(j2) = v(i) 410 j = j+inc go to 600 c *** sequence repeat (q) 420 l = v(i) + in(i) lseq = 1 if (v(i).eq.0.0.or.in(i).eq.0) go to 430 l = v(i) lseq = in(i) 430 do 450 lsq=1,lseq do 440 ii=1,l j2 = j1 + j j4 = j2 - l*inc d(j2) = d(j4) if (ldbl.eq.1) d(j2+1) = d(j4+1) 440 j = j+inc 450 continue go to 600 c *** inverted sequence repeat (n) 460 l = v(i) + in(i) lseq = 1 if (v(i).eq.0.0.or.in(i).eq.0) go to 470 l = v(i) lseq = in(i) 470 do 490 lsq=1,lseq do 480 ii=1,l j2 = j1 + j j4 = j2 - 2*ii*inc + inc c *** reversed sign inverted sequence repeat (m) if (ldbl.eq.1) then vi(1) = d(j4) vi(2) = d(j4+1) else vv = d(j4) end if if (k(i).eq.lm) vv = -vv if (ldbl.eq.1) then d(j2) = vi(1) d(j2+1) = vi(2) else d(j2) = vv end if 480 j = j+inc 490 continue go to 600 c *** logarithmic interpolation (l) 500 l = in(i) + 1 vv = v(i) iii = 2 go to 600 510 vu = v(i)/vv changed by st 96/12/18 for lahey fortran c del = dexp(dlog(vu)/dfloat(l)) del = dexp(dlog(vu)/dble(l)) j2 = j1 + j if (ldbl.eq.1) then d(j2) = vi(1) d(j2+1) = vi(2) else d(j2) = vv end if j = j+inc do 520 ii=2,l j2 = j1 + j vv = del*vv if (ldbl.eq.1) then d(j2) = vi(1) d(j2+1) = vi(2) else d(j2) = vv end if 520 j = j+inc if (iii.ne.0) go to 140 go to 600 c *** fixed 10 log interp. (k) 530 l = in(i) + 1 vv = v(i) iii = 3 go to 600 540 dif = (v(i)-vv)/9.0d0 changed by st 96/12/18 for lahey fortran c del = dexp(2.302585092994045d0/dfloat(l)) del = dexp(2.302585092994045d0/dble(l)) j2 = j1 + j if (ldbl.eq.1) then d(j2) = vi(1) d(j2+1) = vi(2) else d(j2) = vv end if vv = vv-dif j = j+inc do 550 ii=2,l j2 = j1 + j dif = dif*del delt = vv + dif if (ldbl.eq.1) then d(j2) = dv(1) d(j2+1) = dv(2) else d(j2) = delt end if 550 j = j+inc if (iii.ne.0) go to 140 go to 600 c *** interpolate (i) 560 l = in(i) + 1 vv = v(i) iii = 1 go to 600 570 del = (v(i)-vv)/float(l) do 580 ii=1,l j2 = j1 + j delt = del*float(ii-1) + vv if (ldbl.eq.1) then d(j2) = dv(1) d(j2+1) = dv(2) else d(j2) = delt end if if (kk.ne.0) ld(j2) = delt + sign(0.5d0,del) 580 j = j+inc if (iii.ne.0) go to 140 go to 600 c *** read alphanumeric 590 ll = in(i) ll3 = ll+ll2-1 j2 = 1 j = 0 ncount = 0 mode = 0 if (v(i).eq.0) mode = 1 lstart = v(mode+i) lstop = v(mode+i+1) lstar = lld(ll3) + lstart - 1 lsto = lld(ll3) + lstop - 1 read(n5,10900) (d(ii),ii=lstar,lsto) write(n6,10300)ll,lstart,lstop i = mode+i+1 600 continue i = i+1 if ( i.le.nf ) go to 130 go to 100 c *** format statements 10000 format(6(i2,a1,f9.0),t5,2a4,5(4x,2a4)) 10100 format(' ',t53,2a4,i7,a1) 10200 format(t90,i5,a1,' array',i7,' entries read at',i4,a1) 10300 format('0',i5,'/ array read from',i5,' to',i5) 10400 format(1h0,i5,a1,' array',i7,' entries read') 10500 format('0****** error ',i7,' entries required in ',i3,a1,' array'/ * '0 data edit continues' ) 10600 format(1h0,i5,a1) 10700 format('0****** fill option ignored in ',i2,a1,' array' ) 10800 format('0****** warning address',i7,' is beyond limits of',i3,a1, * ' array') 10900 format(18a4) end C -- Summary: internal compiler error: Segmentation fault Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: icgomes at icgomes dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24679