(j3.2006) Question about zero-sized array.
Daniel C Chen
cdchen
Tue Jun 20 11:14:55 EDT 2017
Hello,
The standard specifies, "Zero-sized arrays and zero-length strings are
always defined".
It also says "Allocation of a zero-sized array or zero-length character
variable causes the array or variable to become defined"
Question1: Does it have initial value at all?
Question2: Can it appear as the LHS of an assignment?
Question3: Can it be used in an expression and have a defined result?
Please consider the following example:
program test
real, dimension(:,:), allocatable :: a
real, dimension(:), allocatable :: x,y
allocate(a(7,0),x(0),y(7))
a(:,:) = 0.0 !Q2: Is this legal? What is the value of a?
x(:) = 0.0
y(:) = 1.0
y(:) = MATMUL( a(:,:), x(:) ) !Q3: Is this legal? what is the value of y?
end program test
Non-allocatable version:
program test2
real :: a(7,0)
real :: x(0),y(7)
a = 0.0 !Q2: is this legal? What is the value of a?
x = 0.0
y = 1.0
y = MATMUL( a, x ) !Q3: is this legal? what is the value of y?
end program test2
Thanks,
Daniel
XL Fortran Development, Fortran Standard Representative
IBM Toronto Software Lab
Phone: 905-413-3056
Tie: 969-3056
Email: cdchen at ca.ibm.com
http://www.ibm.com/software/awdtools/fortran/xlfortran
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.j3-fortran.org/pipermail/j3/attachments/20170620/f7a03c6e/attachment.html
More information about the J3
mailing list