37 lines
1.0 KiB
Fortran
37 lines
1.0 KiB
Fortran
! { dg-do run }
|
|
! PR42742 Handle very large format strings correctly
|
|
! Test derived from example developed by Manfred Schwarb.
|
|
character(12) bufarr(74)
|
|
character(74*13+30) fmtstr,fmtstr2
|
|
character(1) delim
|
|
integer i,j,dat(5),pindx, loopcounter
|
|
character(983) big_string ! any less and this test fails.
|
|
|
|
do i=1,74
|
|
write(bufarr(i),'(i12)') i
|
|
enddo
|
|
|
|
delim=" "
|
|
dat(1)=2009
|
|
dat(2)=10
|
|
dat(3)=31
|
|
dat(4)=3
|
|
dat(5)=0
|
|
fmtstr="(i2,i6,4(a1,i2.2)"
|
|
open(10, status="scratch")
|
|
do j=1,74
|
|
fmtstr=fmtstr(1:len_trim(fmtstr))//",a1,a12"
|
|
fmtstr2=fmtstr(1:len_trim(fmtstr))//")"
|
|
c write(0,*) "interation ",j,": ",len_trim(fmtstr2)
|
|
do i=1,10
|
|
write(10,fmtstr2)
|
|
& i,dat(1),"-",dat(2),"-",dat(3),
|
|
& delim,dat(4),":",dat(5),
|
|
& (delim,bufarr(pindx),pindx=1,j)
|
|
enddo
|
|
loopcounter = j
|
|
enddo
|
|
close(10)
|
|
if (loopcounter /= 74) call abort
|
|
end
|