program test_lex
type :: dtype
integer :: n
character*12 :: word
end type dtype
type(dtype), dimension(2) :: list
list(1) = dtype (1 , "one")
list(2) = dtype (2 , "two")
call foo (list%word)
contains
subroutine foo (slist)
character*12, dimension(*) :: slist
print *, ("\n",slist(i), i=1,2)
end subroutine foo
end program test_lex
produces the output
[EMAIL PROTECTED] meissner]# ./a.out
one
two
Examination of the code shows that the size of the derived type is not being
used to determine the stride of the array in the function. This is one and the
same as the problem with pointer arrays pointing to same kind components of a
derived type array, which Tobi is fond of.
--
Summary: Components of a derived type array not passed as an
array
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pault at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24276