- 积分
- 672
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-4-4
- 最后登录
- 1970-1-1

|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
fortran程序如下
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
program tem_select
implicit none
! define vars --- {{{1
character(len=100), parameter :: path_in ="/thesis/generate file/average/spring1/"这个路径是693个txt站点的1981-2010年的年平均降水量
character(len=100) :: st
real ::sum,summ,stt,sttt,sum1,summ1,ave,aver,averr,averrr,tt,fc,fcc,summm,pj,ab
integer :: nums, end_num, num=0,num_,num1=0,io
integer ::i, j,t,jj,ttt,kk, k, m,w,z,undef = 32766
real,dimension(:),allocatable::tot,cli
integer, dimension(:), allocatable :: sta,yr,mh,yy
real, dimension(:), allocatable :: lat, lon, h,pta,ptb,ptc,ptd,pte,ptf,ptg,datain
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
open(11,file=trim(path_in)//"station-selected.txt", status="old")
read(11,*)
nums = 0
loop1 : &
do
read(11,*,iostat=end_num)
if(end_num==0)then
nums = nums + 1
else
exit loop1
end if
end do loop1
print*,"the number of station:", nums
!
rewind(11)
allocate(sta(nums),lat(nums),lon(nums))
read(11,*)
do k = 1, nums
read(11,*) sta(k), lat(k), lon(k)
end do
close(11)
! ---}}}
! read & write temperature data --- {{{1
allocate(pta(nums),ptb(nums),ptc(nums),ptd(nums),pte(nums),ptf(nums),ptg(nums))
open(13, file='C:\thesis\chazhitjianyan\spsp1.txt', status='old')这个路径里有7个年份的693个站点的年平均数据,如图
do kk = 1,1
read(13,*) pta(kk),ptb(kk),ptc(kk),ptd(kk),pte(kk),ptf(kk),ptg(kk)
end do
print *,pta(kk),ptb(kk),ptc(kk),ptd(kk),pte(kk),ptf(kk),ptg(kk)
pause
do i=1,nums
print*, i, sta(i)
write(st,'(i5)') sta(i)
open(12, file=trim(path_in)//trim(st)//'.txt', status='old')
num= 0
loop2 : &
do
read(12,*,iostat=end_num)
if(end_num==0)then
num = num + 1
else
exit loop2
end if
end do loop2
rewind(12)
allocate(yy(num),datain(num))
do t=1,num
read(12,*) yy(t),datain(t)
! print*,datain(t)
! pause
end do
close(12)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!print*,datain(w,4)
close(13)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
sum=0
summ=0
sum1=0
summ1=0
fc=0
fcc=0
ab=0
do z=1,num
sum=sum+datain(z)
print*,datain(z)
pause
end do
do jj=1,nums
if(jj==i)then
summ=summ+pta(jj)+ptb(jj)+ptc(jj)+ptd(jj)+pte(jj)+ptf(jj)+ptg(jj)
end if
end do
!print*,datain(c,4)
ave=sum/num
aver=summ/7
! print*,ave,aver
do m=1,num
sum1=sum1+(datain(m)-ave)**2
end do
do ttt=1,nums
if(ttt==i)then
summ1=summ1+(pta(ttt)-aver)**2+(ptb(ttt)-aver)**2+(ptc(ttt)-aver)**2
summ1=summ1+(ptd(ttt)-aver)**2+(pte(ttt)-aver)**2+(ptf(ttt)-aver)**2+(ptg(ttt)-aver)**2
end if
end do
averr=sum1/num
averrr=summ1/7
! print*,averr,averrr
ab=(num-1)*averr+(7-1)*averrr
print*,ab
pj=1.0/num
tt=1.0/7
print*,pj,tt
print*,ave-aver
fc=sqrt((ab/(num+7-2)*1.0)*sqrt((1.0/num+1.0/7)*1.0))
print*,fc
fcc=(ave-aver)/fc
open(19,position="append",file='C:\thesis\chazhitjianyan\out\sp1-chazhi.txt', status='old')
write(19,20)fcc
print*,fcc
20 format(f9.5)
deallocate(datain,yy,pta,ptb,ptc,ptd,pte,ptf,ptg)
end do
end program
错误如图,错误语句如图 |
|