[Wien] x xspec runtime error
Gavin Abo
gsabo at crimson.ua.edu
Wed Sep 7 16:29:04 CEST 2011
Hi Dr. Blaha,
It happened with composerxe-2011.3.174. I thought it was a ifort 12 bug
too. However, it also happened with ifort 11.1 update 9. I have since
went back to composerxe-2011.3.174. I found that it only happens if you
compile with the "-check bounds" option. I guess with the "-check
bounds", it doesn't like the loop break from the READ statement. Just
realized that is probably what the "END 2" in the read statement does.
So I can either compile without the "-check bounds" or add "IF
(i.GT.IEMAX) goto 2" after line 172 in txspec.f as shown:
I=0
1 CONTINUE
i=i+1
*IF (i.GT.IEMAX) goto 2 !Added line*
IF (LC.EQ.0) then
READ(32,4713,END=2,ERR=913) ENE(i),DOS(i,1),DOS(i,3)
ELSE
READ(32,4713,END=2,ERR=913) ENE(i),DOS(i,1),DOS(i,2),DOS(i,3)
ENDIF
goto 1
2 CONTINUE
Best Regards,
Gavin
On 9/7/2011 2:52 AM, Peter Blaha wrote:
> It should not happen ! Which compiler are you using ? Again one of the
> very new ifort 12.1 versions ?? (See ifort bugs in previous emails)
>
> The dimension is read from unit 32, and then it tries to read as many
> lines ....
>
> READ (32,4712) IEMAX
> allocate ( A1(NRAD,IEMAX), B1(NRAD,IEMAX))
> allocate ( ENE(IEMAX))
> allocate ( DOS(IEMAX,3),XI(IEMAX,2),X(IEMAX))
> allocate ( XINTER(IEMAX),XOUT(IEMAX))
>
> Eventually one could try for security to allocate the arrays ENE and
> DOS with IEMAX+1.
>
> Let me know if this fixes this problem.
>
> Am 07.09.2011 02:04, schrieb Gavin Abo:
>> Dear Dr. Blaha and Wien2k users,
>>
>> When running x xspec, I get the error shown below. It looks like
>> there is an infinite loop from lines 170 to 180 in txspec.f that
>> causes an array index to go out of the upper
>> bound, but I don't have much Fortran experience. Should there be a
>> condition (IEMAX?) and break or jump statement to get out of the "1
>> CONTINUE" and "goto 1" loop from line 170
>> and 180?
>>
>> forrt1: severe (408): fort: (2): Subscript #1 of the array ENE has
>> value 771 which is greater than the upper bound 770
>>
>> Image PC Routine Line Source
>> ...
>> txspec 0000000000423085 MAIN__ 176 txspec.f
>> ...
>>
>> > stop error txspec xspec.def
>> ...
>>
>> *Lines from file txspec.f in SRC_txspec.f*
>>
>> Line 170:
>> I=0
>> 1 CONTINUE
>> i=i+1
>> IF (LC.EQ.0) then
>> READ(32,4713,END=2,ERR=913) ENE(i),DOS(i,1),DOS(i,3)
>> ELSE
>> READ(32,4713,END=2,ERR=913) ENE(i),DOS(i,1),DOS(i,2),DOS(i,3)
>> ENDIF
>> goto 1
>> 2 CONTINUE
>> :Line 180
>>
>> Thanks,
>>
>> Gavin
>>
>>
>> _______________________________________________
>> Wien mailing list
>> Wien at zeus.theochem.tuwien.ac.at
>> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://zeus.theochem.tuwien.ac.at/pipermail/wien/attachments/20110907/5d82b33b/attachment.htm>
More information about the Wien
mailing list