! { 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