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