- 积分
- 368
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2016-4-15
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
请大神指教一下是我的Fortran程序 运行之后出现 grid.grd 时0字节
program ra_160_relation
integer,parameter :: m=160,nt=65,n=35 !1951年到2015年=65年 我用的是1980年到2015年=36年 1980年=第30格点开始
integer it
real a6(m,nt),a7(m,nt),a8(m,nt),ra(m,n),rsum(m),SMI(nt)
real rrSMI(m)
!--------------------------------------读取文件--------------------------------------------------------
open(1,file='F:\BQ\160\r1606.txt')
do it=1,nt
read(1,*)(a6(i,it),i=1,m)
enddo
open(2,file='F:\BQ\160\r1607.txt')
do it=1,nt
read(2,*)(a7(i,it),i=1,m)
enddo
open(3,file='F:\BQ\160\r1608.txt')
do it=1,nt
read(3,*)(a8(i,it),i=1,m)
enddo
open(4,file='F:\BQ\grid.grd',form='binary')
do it=1,35
read(4)SMI(it)
enddo
!------------------------------------求降水距平百分率-ra(m,n)----------------------------------------------
do i=1,160
rsum(i)=0.0
do it=29,64
rsum(i)=rsum(i)+a6(i,it)+a7(i,it)+a8(i,it)
enddo
rsum(i)=rsum(i)/36.0
do it=1,n
ra(i,it)=(a6(i,it+28)+a7(i,it+28)+a8(i,it+28)-rsum(i))*100/rsum(i)
enddo
enddo
! print*,((ra(i,it),it=1,33),i=1,160)
!------------------------------------求降水距平场-rain(m,n)----------------------------------------------
!do i=1,160
! rsum(i)=0.0
!do it=29,64
!rsum(i)=rsum(i)+a6(i,it)+a7(i,it)+a8(i,it)
!enddo
!rsum(i)=rsum(i)/36.0
!do it=1,n
!rain(i,it)=a6(i,it+28)+a7(i,it+28)+a8(i,it+28)-rsum(i)
!enddo
!enddo
!call relation(ra,SMI,rrSMIm,n)
open(7,file='rrSMI.txt')
do it=1,m
write(7,*)rrSMI(it)
enddo
end
!--------------------------------------求相关系数子程序-----------------------------------------------
!subroutine relation(rain,heat,r,m0,n0)
!integer m0,n0
!real rain(m0,n0),heat(n0),r(m0)
!real avr(160),avh,sumh,sumr(160),sumk(160),suml(160),sump(160)
!avr=0.0
!avh=0.0
!sumh=0.0
!sumr=0.0
!sumk=0.0
!suml=0.0
!sump=0.0
! do i=1,n0
!sumh=sumh+heat(i)
!enddo
!avh=sumh/n0
!do i=1,m0
!do j=1,n0
!sumr(i)= sumr(i)+rain(i,j)
!enddo
!avr(i)=sumr(i)/n0
!enddo
!do i=1,m0
!do j=1,n0
!sumk(i)=sumk(i)+(rain(i,j)-avr(i))*(heat(j)-avh)
!suml(i)=suml(i)+(rain(i,j)-avr(i))**2
!sump(i)=sump(i)+(heat(j)-avh)**2
!enddo
!r(i)=(sumk(i)/n0)/((sqrt(suml(i))*sqrt(sump(i)))/n0)
!enddo
!end subroutine
|
|