1! Test IO of arrays in derived type arrays 2! { dg-do run } 3! { dg-options "-std=legacy" } 4! 5program main 6 7 character *1000 buf1, buf2 8 9 type :: foo_type 10 integer x(3) 11 integer y(4) 12 integer z(5) 13 character*11 a(3) 14 end type foo_type 15 16 type (foo_type) :: foo(2) 17 18 foo(1)%x = 3 19 foo(1)%y = 4 20 foo(1)%z = 5 21 foo(1)%a = "hello world" 22 23 foo(2)%x = 30 24 foo(2)%y = 40 25 foo(2)%z = 50 26 foo(2)%a = "HELLO WORLD" 27 28 write (buf1,*) foo 29 write (buf2,*) ((foo(i)%x(j),j=1,3), (foo(i)%y(j),j=1,4), (foo(i)%z(j),j=1,5), (foo(i)%a(j),j=1,3), i=1,2) 30 if (buf1.ne.buf2) call abort 31end program main 32