(j3.2006) Frustrating consequence of F2003 allocation semantics

Tom Clune Thomas.L.Clune
Wed Apr 15 12:39:49 EDT 2015


Malcolm,

Thanks!  I think several of your points will have a good chance of influencing this client.

Your point (b) is of course the most surprising one to me.   Are there any special flags required?  (-g of course, but ?)

Cheers,

- Tom


On Apr 15, 2015, at 5:11 AM, Malcolm Cohen <malcolm at nag-j.co.jp> wrote:

> <<<
> INTEGER, ALLOCATABLE, TARGET ::  buffer(:)
> ...
> ptr => buffer
> ?
> buffer = C
> ...
> suppose that there is a bug in the code, such that one of the arrays on the RHS 
> is of a _different_ shape than buffer.   F2003 semantics will have buffer 
> reallocated to an appropriate shape for the copy.     Previously one would 
> expect that proper use of debug flags would quickly localize the problem.
>>>> 
> 
> A few comments:
> 
> (a) I agree with Damian that using whole section notation works, and gives a 
> clear indication that you're not auto-reallocating.
> 
> (b) The NAG compiler will not only tell you the pointer is dangling, but why, 
> and where the deallocation happened.
> 
> (c) You can declare buffer to be POINTER instead of ALLOCATABLE, even 
> POINTER,CONTIGUOUS (if the compiler supports it).   There is no 
> auto-reallocation for pointers.  POINTER,CONTIGUOUS should perform at about the 
> same level of ALLOCATABLE,TARGET (because TARGET already made this perform 
> poorly).
> 
> (d) If buffer is so important and fragile, maybe it should be PROTECTED so it 
> can only be set in the module.  Then the program can do its own validation of 
> shape, and/or modify the pointers accordingly, whatever.
> 
> (e) Finally, I don't really agree that the pre-F2003 situation is quite as rosy 
> a picture as painted.  If you get the shape wrong, you are liable to scribble on 
> some unrelated memory.  Sure, if you are *lucky* that will cause a crash then or 
> sometime soon, but if it ends up just modifying the value of some unrelated 
> variable(s) you might never know that the answers produced are wrong.  And thus 
> not run with checking enabled...
> 
> Cheers,
> -- 
> ................................Malcolm Cohen, Nihon NAG, Tokyo. 
> 
> _______________________________________________
> J3 mailing list
> J3 at mailman.j3-fortran.org
> http://mailman.j3-fortran.org/mailman/listinfo/j3

Thomas Clune, Ph. D. 				<Thomas.L.Clune at nasa.gov>
Head ASTG,Code 606
NASA GSFC		
MS 610.8 B33-C128
Greenbelt, MD 20771
301-286-4635









-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.j3-fortran.org/pipermail/j3/attachments/20150415/c213002a/attachment-0001.html 



More information about the J3 mailing list