character*40 tline character*14 inom(6) character*4 onom(6) integer nlin(6) real xval(12),meanval(12),sigval(12),aveval real xsoil(6,8355,12) !day taken, layer integer zcnt(6,60) integer dayrec(6,270),iyr(270),imn(270) integer lomo(23,20),lody(23,20),lopnt(23) character*1 xmark(23,240) data inom/'Iowa.W2-1.dat','Iowa.W2-3.dat', & 'Iowa.W2-4.dat','Iowa.W3-11.dat','Iowa.W3-14.dat', & 'Iowa.W3-16.dat'/ data onom /'w2-1','w2-3','w2-4','w3-11', & 'w3-14','w3-16'/ data nlin/270,270,270,269,269,269/ 15 format(a40) 20 format(i4,x,i2,x,i2,x,i3,x,i5,6x,i2, & 12(x,f5.1)) do i=1,1 jdmax=0 izpnt=0 open(10,file=inom(i),status='old') open (66,file='iw1-2',status='new') c **********read header lines do j=1,9 read(10,15) tline enddo ncount=0 c ********** start reading do j=1,nlin(i) read(10,20) iyr(j),imn(j),idy,idoy,idtt,isit, & (xval(kk),kk=1,12) if (j.gt.1) then if (iyr(j).eq.iyr(j-1).and.imn(j).eq.imn(j-1)) then ncount=ncount+1 do kk = 1,12 sigval(kk)=xval(kk)+sigval(kk) enddo c ****************** for the last line if (j.eq.nlin(i)) then do kk = 1,12 meanval(kk)= (xval(kk)+sigval(kk))/ncount enddo aveval=(meanval(1)*(3.0/39.37))+(meanval(2)*(3.0/39.37)) & +(meanval(3)*(6.0/39.37))+(meanval(4)*(6.0/39.37)) & +(meanval(5)*(9.0/39.37))+(meanval(6)*(6.0/39.37)) & +(meanval(7)*(6.37/39.37)) aveval2=(meanval(1)+meanval(2)+meanval(3)+meanval(4)+meanval(5) & +meanval(6)+meanval(7))/7.0 write (66,44) iyr(j),imn(j),aveval,aveval2,ncount 44 format (i4,1x,i2,1x,f5.2,1x,f5.2,1x,i2) print *, 'this is last line', ncount endif c****************** regular do kk = 1,12 meanval(kk)= sigval(kk)/ncount enddo aveval=(meanval(1)*(3.0/39.37))+(meanval(2)*(3.0/39.37)) & +(meanval(3)*(6.0/39.37))+(meanval(4)*(6.0/39.37)) & +(meanval(5)*(9.0/39.37))+(meanval(6)*(6.0/39.37)) & +(meanval(7)*(6.37/39.37)) aveval2=(meanval(1)+meanval(2)+meanval(3)+meanval(4)+meanval(5) & +meanval(6)+meanval(7))/7.0 write (66,44) iyr(j-1),imn(j-1),aveval,aveval2,ncount else ncount=1 do kk=1,12 sigval(kk)=xval(kk) enddo c ******** last line if it is a diffrent year if ( j.eq.nlin(i) ) then do kk = 1,12 meanval(kk)= (sigval(kk))/ncount enddo aveval=(meanval(1)*(3.0/39.37))+(meanval(2)*(3.0/39.37))+ & (meanval(3)*(6.0/39.37))+(meanval(4)*(6.0/39.37)) & +(meanval(5)*(9.0/39.37))+(meanval(6)*(6.0/39.37)) & +(meanval(7)*(6.37/39.37)) aveval2=(meanval(1)+meanval(2)+meanval(3)+meanval(4)+meanval(5) & +meanval(6)+meanval(7))/7.0 write (66,44) iyr(j),imn(j),aveval,aveval2,ncount print *, 'this is last line of single diff. year or month ', ncount endif else do kk = 1,12 sigval(kk)= xval(kk) enddo ncount=1 endif enddo !the j loop c print*,'maximu day is',jdmax enddo !the i loop 45 format(i3,x,6i6) stop end