Found source of __intel_alloc_bpv@4() error - workaround needed

Found source of __intel_alloc_bpv@4() error - workaround needed

Well it has taken a while

But I have finally foud the source of my Unhandled Exception Error from the __intel_alloc_bpv@4() routine

As Steve Lionel suggested, it is a Variable Format Expression causing the trouble.

Sample code is below - the write statement blows me out of the water.

So the question now becomes: What is the recommended solution or workaround?

Thankx

Jimmy

K = kntTripPurposes(currentPeriod-1)
IF (K.gt.1) THEN
DO J = 1,PARKZONES
WRITE(45,"(F11.4)") (parksUsed(I,J),I = 1,K)
ENDDO
ENDIF

=mjc=
.

9 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

First - can you construct a self-contained example that shows the problem? The VFE is triggering the problem, yes, but is it "causing" it? If there's a compiler bug we'd like to fix it, and we need a test case for that.

Typically, you could replace the format with '(1000F11.4)', assuming that K is never larger than 1000. You could make that 100000 if needed.

Steve - Intel Developer Support

Quoting - Steve Lionel (Intel)

First - can you construct a self-contained example that shows the problem? The VFE is triggering the problem, yes, but is it "causing" it? If there's a compiler bug we'd like to fix it, and we need a test case for that.

Typically, you could replace the format with '(1000F11.4)', assuming that K is never larger than 1000. You could make that 100000 if needed.

Happy to zip the whole codebase up for you - but its kinda huge (9.7mb zipped). And the program expects quite a number of external datafiles in just the right place to run. How much do you want?

Interestingly, the line in question isn't even being called. But if it is not commented out then the program dies on entry to that subroutine.

And I've found at least two other examples in the same program...

Quoting - jim.cox
Well it has taken a while

But I have finally foud the source of my Unhandled Exception Error from the __intel_alloc_bpv@4() routine

As Steve Lionel suggested, it is a Variable Format Expression causing the trouble.

Sample code is below - the write statement blows me out of the water.

So the question now becomes: What is the recommended solution or workaround?

Thankx

Jimmy

K = kntTripPurposes(currentPeriod-1)
IF (K.gt.1) THEN
DO J = 1,PARKZONES
WRITE(45,"(F11.4)") (parksUsed(I,J),I = 1,K)
ENDDO
ENDIF

=mjc=
.

I hadn't been aware of this facility and wrote my own subroutine routine to generateformats.I change to this method and found that it added about 12K to my executable--so I switchedback.

Quoting - nvaneck

I hadn't been aware of this facility and wrote my own subroutine routine to generateformats.I change to this method and found that it added about 12K to my executable--so I switchedback.

The easiest workaround is something like:

WRITE(FMT,'("(",I2,A1,I2,".",I1,")")') N,TYPE,WIDTH,NDEC

and use FMT as the format, but it doesn't speak to the variable k being associated with the list.

Just the presence of a VFE in a format will trigger a call to intel_alloc_bpv at the start of the routine - it is not necessary for the format to ever be used.

I wonder if you have something else in the program corrupting the stack.

Steve - Intel Developer Support

Quoting - Steve Lionel (Intel)
I wonder if you have something else in the program corrupting the stack.

I have similar concerns :(

Our system does make use of a large number of large arrays.

And it is such a huge old codebase to try to bring over to a new compiler

It would be good to have a "tips & tricks" on memory allocation, and especially on examining what you're being given by the compiler.

Cheers

Jimmy

(Your "think thank thunk" link appears to be broken BTW)

The link works for me.

Steve - Intel Developer Support

Quoting - Steve Lionel (Intel)
The link works for me.

Thankx

Lascia un commento

Eseguire l'accesso per aggiungere un commento. Non siete membri? Iscriviti oggi