display character strings in fortran

kamaraju kusumanchi
2009-06-10T11:34:06Z

Consider the following code. (This is a reduced version of a large
code that I am working with.)

$cat char_string.f90
program string_size
implicit none
character (len=20) :: first_name
write(first_name, *) 'kamaraju'
write(*,*) first_name
end program string_size

The program compiles and runs fine.

$gfortran -g char_string.f90
$./a.out
kamaraju

However, when debugged, the character strings are not displayed properly.

$gdb ./a.out
Using host libthread_db library "/lib/i686/cmov/libthread_db.so.1".
(gdb) b char_string.f90:5
Breakpoint 1 at 0x8048620: file char_string.f90, line 5.
(gdb) r
Starting program: /home/rajulocal/work/fortran/a.out

Breakpoint 1, string_size () at char_string.f90:5
5 write(*,*) first_name
Current language: auto; currently fortran
(gdb) p first_name
$1 = (32 ' ', 107 'k', 97 'a', 109 'm', 97 'a', 114 'r', 97 'a', 106
'j', 117 'u', 32 ' ', 32 ' ', 32 ' ', 32 ' ', 32 ' ', 32 ' ', 32 ' ',
32 ' ', 32 ' ', 32 ' ', 32 ' ')
(gdb) quit
The program is running. Exit anyway? (y or n) y

I am using a Debian Etch machine running

$gfortran -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian
4.3.2-1.1' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc
--enable-mpfr --enable-targets=all --enable-cld
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.3.2 (Debian 4.3.2-1.1)

$gdb -v
GNU gdb 6.4.90-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu".

Is this a bug in gdb or gfortran? I appreciate if you could fix it.

thanks
raju