爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3514|回复: 1

[求助] fortran在处理差值t检验时程序运行不了

[复制链接]

新浪微博达人勋

发表于 2018-5-9 23:53:39 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

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

错误如图,错误语句如图

出错提示的语句

出错提示的语句

错误提示

错误提示

输入的一个文件内容

输入的一个文件内容
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表