[Wien] berryPI code

Gavin Abo gsabo at crimson.ua.edu
Thu Sep 10 00:57:55 CEST 2015


My guess is that the problem is coming from an inconsistency in the 
input files (case.energysoup or ?) or a code bug is causing I to become 
larger than the size nmat of BKX(I), BKY(I), or BZX(I), such that it is 
indexing out of an array.

To check if that is what is happening, I would try compiling with 
"-check bounds" [ 
https://software.intel.com/en-us/articles/determining-root-cause-of-segmentation-faults-sigsegv-or-sigbus-errors 
(Possible Cause #4) ]

and/or

I would put a print or write statement between lines 119 and 120 in 
SRC_w2w/almgen.F.  For example,

            i=i+1 <= Line 119
    if(i.gt.nmat) then
    write(unit_out,*)'dbg:i=',i,' nmat=',nmat,' n=',n, ' nlov=',nlov
    end if
            BK(1)=BKX(I)*BR1(1,1)+BKY(I)*BR1(1,2)+BKZ(I)*BR1(1,3) <= 
Line 120

The arrays BKX, BKY, and BKZ are allocated with nmat (SRC_w2w/modules.F 
and SRC_w2w/main.f).  The 'if statement' will check to see if i (from 
line 119) becomes greater than nmat.  If it does, then it should print a 
debug (dbg) line to case.outputwfup (for x w2w -up -so).

However, this is probably only helpful if you know Fortran programming.  
If you don't know Fortran programming, then the struct file and init 
parameters are needed as Elias previously mentioned [ 
http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg12950.html ].


More information about the Wien mailing list