- 积分
- 208
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-5-26
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我编的主程序主要是为了读取TXT文档中的数据并且将计算出来的Z指数输出。
TXT中的数据格式是年月日降水量,用tab隔开的。
程序如下:
program main
implicit none
integer i,j,m
real zz
real,dimension(1:3,1:16107)::a
real,dimension(m)::zz
open(1,file='rainfall.txt')
read(1,*)((a(i,j),j=1,16107),i=1,3)
read *,m
call zindex(a(3,j),m,zz)
print (1,*)(zz(i),i=1,m)
end program main
!降水Z指数计算子程序
!aa是降水序列,zz是得到的Z指数序列,n是时间长度
!**************************************************************************
subroutine zindex(aa,n,zz)
implicit none
integer i,n
real,dimension(n)::aa,ii,zz
real bzc,cs,av,ls
ls=0
call biaozhuncha(aa,n,bzc,av)
do i=1,n
ls=ls+(aa(i)-av)**3.0
end do
cs=ls/(n*(bzc**3.0))
do i=1,n
ii(i)=(aa(i)-av)/bzc
end do
do i=1,n
zz(i)=(ii(i)*cs/2+1)**(1.0/3)
zz(i)=zz(i)*6/cs-6/cs+cs/6
end do
end
!*************************************************************************
subroutine biaozhuncha(aa,n,bzc,av)
implicit none
integer i,n
real,dimension(n)::aa
real bzc,av,av1
av=0
do i=1,n
av=av+aa(i)
end do
av=av/n
av1=0
do i=1,n
av1=av1+(aa(i)-av)**2.0
end do
av1=av1/n
bzc=sqrt(av1)
end
|
|