c Program written 9/6/10 by Vern Kousky c program to to count # gridpts ranked 1 to 150 c23456789012345678901234567890123456789012345678901234567890123456789012 parameter (imax=157,jmax=226,maxyr=30,maxnyr=15) dimension x(imax,jmax),y(imax,jmax,92,maxyr),pcdif(imax,jmax) dimension irand(maxnyr,1000) dimension cnt1(imax,jmax),cnt2(imax,jmax) character path*34 data path/'/cpc/home/wd52vk/samer/precip/jas/'/ open (11,file=path//'oi-t382-daily-precip-SA-jas1981-2010', *access='direct',form='unformatted',recl=imax*jmax*4) open (12,file=path//'random30choose15x1000.bin', *access='direct',form='unformatted',recl=15*1000*4) open (51,file=path//'num-events-pge1-r15x1000-jas1981-2010', *access='direct',form='unformatted',recl=imax*jmax*4) read(12,rec=1)irand kk=0 do 999 iyr=1,maxyr maxd=92 do 998 iday=1,maxd kk=kk+1 read(11,rec=kk)x do 1 i=1,imax do 2 j=1,jmax y(i,j,iday,iyr)=x(i,j) 2 continue 1 continue 998 continue 999 continue do 6 k=1,1000 do 60 i=1,imax do 61 j=1,jmax cnt1(i,j)=0. cnt2(i,j)=0. 61 continue 60 continue do 5 iyr=1,maxyr maxd=92 do 65 nyr=1,maxnyr if(irand(nyr,k).eq.iyr)go to 66 65 continue go to 67 66 continue do 7 iday=1,maxd do 8 i=1,imax do 9 j=1,jmax if(y(i,j,iday,iyr).ge.1.)cnt1(i,j)=cnt1(i,j)+1. 9 continue 8 continue 7 continue go to 5 67 continue do 80 iday=1,maxd do 81 i=1,imax do 82 j=1,jmax if(y(i,j,iday,iyr).ge.1.)cnt2(i,j)=cnt2(i,j)+1. 82 continue 81 continue 80 continue 5 continue do 11 i=1,imax do 12 j=1,jmax if(cnt1(i,j).eq.0..or.cnt2(i,j).eq.0.)go to 121 pcdif(i,j)=100*(cnt2(i,j)-cnt1(i,j))/cnt1(i,j) go to 12 121 pcdif(i,j)=-9.99e+08 12 continue 11 continue write(6,200)k,cnt1(74,113),cnt2(74,113),pcdif(74,113) 200 format(i5,3f10.1) write(51,rec=k)pcdif 6 continue stop end