[Wien] Segmentation fault in f7splt (lapw2)

Pavel Ondračka pavel.ondracka at email.cz
Tue Oct 8 10:10:37 CEST 2013


Peter Blaha píše v Po 07. 10. 2013 v 22:48 +0200:
> I can confirm that this is a "real problem", which was undetected for 
> two reasons:
> a) It is active ONLY when ISPLIT=15 in case.struct. Thus you must have 
> set this manually. However, I doubt that this kind of splitting 
> (according to +/-m) is very informative.  Instead, use the qtl program !

This is strange, I've most certainly didn't set ISPLIT to 15. I've just
tested with two different cases, one has ISPLIT=2 in case.struct, the
other ISPLIT=8 and both crash in the same place. BTW I can reproduce
this even on 64bit fedora with gfortran, I just have to compile lapw2
with "-O0 -g". I can then be reproduced even with the simple TiC case
created exactly according to the User's Guide.

BTW the crashing F7SPLT subroutine is called from csplit.f:78

76 !   IF(L.EQ.3 .and. isplit(jatom).eq.15)     &
77     IF(L.EQ.3)                               &
78          CALL F7SPLT
(ALM(1,NUM),BLM(1,NUM),cLM(1,NUM,ipip),MULT(JATOM), &
79          PEI(L),num,coord,dmat_f)

So if this should be called only when ISPLIT = 15, then line 76 probably
shouldn't be commented out.

> 
> b) In ifort uninitial variables are set to zero, so it does not seem to 
> harm (maybe it would if you have f-LOs), but in principle it is a "bug".
> 
> I'm abroad and the internet connection is not stable enough to make 
> tests, but I'll try to look into it soon.
> 
> 
> Am 07.10.2013 18:55, schrieb Pavel Ondračka:
> > Oliver Albertini píše v Po 07. 10. 2013 v 07:56 -0700:
> >> I had the same problem when I used the wrong -qarch. I had to specify
> >> pwr7 and the default from siteconfig is pwr5. If you want to find out
> >> the system architecture issue the prtconf command.
> >>
> > Dear Oliver,
> >
> > thank for advice, however prtconf reports: "Processor Type:
> > PowerPC_POWER5" so I should be probably fine with -qarch=pwr5, also it's
> > kinda strange that you fixed this by setting pwr7. I thought that those
> > optimization flags were forward compatible...
> >
> > For example: IBM docs I've just googled states that -qarch=pwr3
> > "Produces object code containing instructions that will run on the
> > POWER5, POWER5+, POWER6, or POWER7 hardware platforms"
> >
> > So IMHO compiling with -qarch=pwr5 for pwr7 shouldn't break anything
> > unless some other weird stuff is going on.
> >
> > Best regards
> > Pavel Ondračka
> >
> >> On Oct 7, 2013 3:00 AM, "Pavel Ondračka" <pavel.ondracka at email.cz>
> >> wrote:
> >>          Dear WIEN2k mailing list,
> >>
> >>          this is a follow up to thread "compilation problems on AIX
> >>          with xlf90".
> >>          I've finally managed to compile WIEN2k_13 on AIX 5.3,
> >>          however I'm now getting a segfault when running lapw2.
> >>
> >>          Segmentation fault in f7splt at line 51 in file "" ($t1)
> >>          could not read "f7splt.f"
> >>          (dbx) where
> >>          f7splt(alm = (...), blm = (...), clm = (...), mult = 2, uenorm
> >>          =
> >>          0.0028448010014590045, num = 1, coord = '     ', dmat =
> >>          (...)), line 51
> >>          in "f7splt.f"
> >>          csplit(0xfffffffffd8f50c, 0xfffffffffd8f510,
> >>          0xfffffffffd8a718,
> >>          0xfffffffffd8976c, 0xfffffffffd8f67c, 0x11023fe30,
> >>          0x110250590,
> >>          0x110260cf0), line 78 in "csplit.f"
> >>          l2main(0xfffffffffffe340, 0xfffffffffffdb84,
> >>          0xfffffffffffe518,
> >>          0x1101ac4b0, 0x110000b88, 0xfffffffffffdb80,
> >>          0xfffffffffffdb90,
> >>          0xfffffffffffdc48), line 1313 in "l2main_tmp_.F"
> >>          lapw2(), line 605 in "lapw2_tmp_.F"
> >>
> >>          The corresponding lines looks like this:
> >>          51  dmat(i,j,num)=dmat(i,j,num) + (alm(j)*conjg(alm(i))+ &
> >>          52  blm(j)*conjg(blm(i))*uenorm+clm(j)*conjg(clm(i))+ &
> >>          53
> >>          alm(j)*conjg(clm(i))*pi12lo(ipip,3)+clm(j)*conjg(alm(i))*pi12lo(ipip,3)+
> >>          &
> >>          54
> >>          blm(j)*conjg(clm(i))*pe12lo(ipip,3)+clm(j)*conjg(blm(i))*pe12lo(ipip,3)
> >>          ) / mult
> >>
> >>          Going through all the variables shows suspicious value of ipip
> >>          =
> >>          -2147483648, which is used as array index for pi12lo an pe12lo
> >>          causing
> >>          the segfault.
> >>          By grepping through SRC_lapw2 directory I can see, that all
> >>          other
> >>          subroutines which use ipip do something like this:
> >>          $grep "ipip=" *
> >>          csplit.f: ipip=max(ilo(l),1)
> >>          d5splt.f: ipip=max(ilo(2),1)
> >>          p3splt.f: ipip=max(ilo(1),1)
> >>
> >>          I'm wondering if there is some similar initialization
> >>          statement missing
> >>          in f7splt.f and what should be ipip set to?
> >>
> >>          Also I hope this isn't just some result of my inexperienced
> >>          efforts to
> >>          make WIEN compile on ancient AIX 5.3 or some other bad
> >>          configuration.
> >>
> >>          Best regards
> >>          Pavel Ondračka
> >>
> >>          _______________________________________________
> >>          Wien mailing list
> >>          Wien at zeus.theochem.tuwien.ac.at
> >>          http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
> >>          SEARCH the MAILING-LIST at:
> >>           http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html
> >> _______________________________________________
> >> Wien mailing list
> >> Wien at zeus.theochem.tuwien.ac.at
> >> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
> >> SEARCH the MAILING-LIST at:  http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html
> >
> >
> > _______________________________________________
> > Wien mailing list
> > Wien at zeus.theochem.tuwien.ac.at
> > http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
> > SEARCH the MAILING-LIST at:  http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html
> >
> 




More information about the Wien mailing list