character arrays in format tags (bug?)
Brian Barnes
bcbarnes@gmail.com
Tue Jan 29 17:24:00 GMT 2008
On Jan 28, 2008, at 8:24 PM, Tobias Schlüter wrote:
>
> This is a bug, can you please file a bug report in http://
> gcc.gnu.org/bugzilla so that it doesn't get lost?
Yes; filed @ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35009 -- my
second bug today! And second bug... ever. heh.
> You have two options: use a large enough number in the format
> string, or, if such a number doesn't exist, use an internal write
> to create the format string and then use that format string, say
> charater*4 :: f
> write(f, "(i2,'i3')") num
> write(6, f) variable(1:num)
I think the internal write scheme may work (my actual output is more
complicated). I have a short example working similar to yours, which
had problems with parentheses on my system:
program testcase
character(6) :: f
integer num,var(3)
num=2
var(1)=1
var(2)=2
var(3)=3
write(f,"(A,i0,'i3',A)") '(',num,')' ! ugly but works
write(6,*) f
write(6,f) var(1:num)
end
outputs:
nell:~/work/bit barnes$ gfortran -Wall -o t.x testcase.f ; ./t.x
(2i3)
1 2
I had never (intentionally, knowingly) made use of internal writes
before. Thanks for the tip!
-Brian
More information about the Fortran
mailing list