(j3.2006) STORAGE_SIZE and unallocated polymorphic
Wed Dec 22 18:16:48 EST 2010
The Result clause for STORAGE_SIZE says that the size is based on the
dynamic type of the argument. I think the key here is that the dynamic
type of an unallocated allocatable is its declared type.
10-007r1[52:21-22], (F2008 188.8.131.52 para 6). Based on that, you are
right - it is the declared type in this case.
On 12/20/10 3:46 AM, Tobias Burnus wrote:
> am I reading the F2008 standard correctly that, if I invoke STORAGE_SIZE
> on a polymorphic but unallocated variable, the storage size of the
> declared type is returned?
> From the standard (F2008, 13.7.160):
> "A shall be a scalar or array of any type. If it is polymorphic it
> shall not be an undefined pointer. If it [is unlimited polymorphic
> or] has any deferred type parameters it shall not be an unallocated
> allocatable variable or a disassociated or undefined pointer."
> (The text in the brackets is from IR 10-171.)
> implicit none
> type t
> integer :: a
> end type t
> class(t), allocatable :: y
> print *, storage_size(y)
> J3 mailing list
> J3 at j3-fortran.org
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101
More information about the J3