program pdsi real pdsiindx(1895:2003,12), worstAugval real monave(12), moncnt(12) real yrave(1895:2002), yrcnt(1895:2002) integer worstAug, year, worstmonthave integer worstyear, worstmonth, worstyrave open(1, + file='/data2/fortran_class/transfer/drd964x.pdsi.txt', + status='old') C------READ IN ALL DATA FOR THAT DIVISION read(1,1000) year, + (pdsiindx(year,imonth),imonth = 1,12) print *, year do while (year.lt.2003) read(1,1000) year, + (pdsiindx(year,imonth),imonth = 1,12) print *, year, pdsiindx(year,8) end do print *, 'Finished reading' worstAug = 3000 worstAugval = 100 do 100 nyr = 1895, 2002 if(pdsiindx(nyr,8).lt.worstAugval) then print *, 'Got here', nyr worstAugval = pdsiindx(nyr,8) worstAug = nyr end if 100 end do print *, 'Worst', worstAug, worstAugval do 250 nmo = 1, 12 monave(nmo) = 0.0 moncnt(nmo) = 0.0 250 end do C------FIND WORST DROUGHT MONTH ON AVERAGE do 200 nmo = 1,12 do 210 nyr = 1895, 2002 if(pdsiindx(nyr,nmo).gt.-90) then monave(nmo) = monave(nmo) + + pdsiindx(nyr,nmo) moncnt(nmo) = moncnt(nmo) + 1.0 end if 210 end do monave(nmo) = monave(nmo) / moncnt(nmo) 200 end do worstmonthave = 1 do 300 nmo = 2, 12 if(monave(nmo).lt.monave(worstmonthave)) + worstmonthave = nmo 300 end do print *, 'Worst Month: ', worstmonthave C------FIND WORST MONTH/YEAR worstmonth = 1 worstyear = 1895 do 400 nyr = 1895, 2002 do 410 nmo = 1, 12 if(pdsiindx(nyr,nmo).lt. + pdsiindx(worstyear,worstmonth)) then worstmonth = nmo worstyear = nyr end if 410 end do 400 end do print *, 'Worst month/year: ', worstmonth, worstyear, + pdsiindx(worstyear,worstmonth) C------WHICH YEAR WAS WORST? do 500 nyr = 1895, 2002 yrave(nyr) = 0.0 yrcnt(nyr) = 0.0 do 510 nmo = 1, 12 if(pdsiindx(nyr,nmo).gt.-90) then yrave(nyr) = yrave(nyr) + + pdsiindx(nyr,nmo) yrcnt(nyr) = yrcnt(nyr) + 1.0 end if 510 end do yrave(nyr) = yrave(nyr) / yrcnt(nyr) 500 end do worstyrave = 1895 do 550 nyr = 1896, 2002 if(yrave(nyr).lt.yrave(worstyrave)) + worstyrave = nyr 550 end do print *, 'Worst average year: ',worstyrave 1000 format(5x,i4,12(f7.2)) stop end