http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49324
Summary: iso_varying_string and reshape fail Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: jjcogliati...@yahoo.com Iso varying string seems to fail with reshape. I am using the iso_varying_string module available from http://www.fortran.com/iso_varying_string.f95 My test case is: !-------------- program test_ivs use iso_varying_string implicit none type(varying_string),dimension(:,:),allocatable :: array2d type(varying_string) :: extra integer :: i,j allocate(array2d(2,3)) extra = "four" array2d(:,:) = reshape((/ var_str("1"), & var_str("2"), var_str("3"), & extra, var_str("5"), & var_str("six") /), (/ 2, 3 /)) print *,"array2d second ",ubound(array2d),(("'"//char(array2d(i,j))//"' ",i=1,size(array2d,1)),j=1,size(array2d,2)) end program test_ivs !----------------- With this test case, I get the output: array2d second 2 3 '' '0' 'P' 'P!&' '0' '!&' If I modify it to: !--------------------- program test_ivs_no_reshape use iso_varying_string implicit none type(varying_string),dimension(:,:),allocatable :: array2d type(varying_string) :: extra integer :: i,j allocate(array2d(2,3)) extra = "four" array2d(:,1) = (/ var_str("1"), var_str("2") /) array2d(:,2) = (/ var_str("3"), extra /) array2d(:,3) = (/ var_str("5"), var_str("six") /) print *,"array2d first ",ubound(array2d),(("'"//char(array2d(i,j))//"' ",i=1,size(array2d,1)),j=1,size(array2d,2)) end program test_ivs_no_reshape !------------------ I get the following output: array2d first 2 3 '1' '2' '3' 'four' '5' 'six' which is what I expected. $ gfortran -v Using built-in specs. COLLECT_GCC=gfortran COLLECT_LTO_WRAPPER=/home/jjc/gcc/gcc_460_install/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc-4.6.0/configure --prefix=/home/jjc/gcc/gcc_460_install/ Thread model: posix gcc version 4.6.0 (GCC) Compiling: $ gfortran -Wall -c iso_varying_string.f95 $ gfortran -Wall -o test_ivs.f90 test_ivs.f90 iso_varying_string.o $ ./test_ivs array2d second 2 3 '' '0' 'P' 'PQ�' '0' 'Q�'