- 积分
 - 2518
 
	- 贡献
 -  
 
	- 精华
 
	- 在线时间
 -  小时
 
	- 注册时间
 - 2017-4-13
 
	- 最后登录
 - 1970-1-1
 
 
 
 
 
 
 | 
	
 
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册 
 
 
 
x
 
 本帖最后由 不会游泳的fish 于 2018-4-26 14:16 编辑  
 
用之前实习老师给的eof程序做分解,第一次没什么问题,数据正确也能出图。然后把原数据进行纬向平均后,再EOF输出的结果就画不出图了,在fortran里打开发现结果全为0 ,可是我就只是对原数据进行了纬向平均,并且检查了纬向平均后的数据,并没有什么问题。eof最后成功运行,并输出了一些结果,但是为什么输出的数据全为0呢?求大家帮忙看看,在这期间没有对eof程序进行任何改动 
以下是eof的主程序部分 
 
PARAMETER(M=33*91,N=240*31,MNH=33*91,KS=0,KV=10,KVT=5) 
      PARAMETER(ff=-9.99e+08,nx=240,ny=31) 
      parameter(pi=3.1415926) 
      DIMENSION F(N,M),A(MNH,MNH),S(MNH,MNH),ER(mnh,4),DF(N),V(MNH),AVF(N),evf(N,KVT),tCF(M,KVT),data(Nx,ny),nf(N) 
 
      open(11,file='D:\seaice\data2\juping2.grd',form='unformatted',access='direct',recl=nx*ny) 
       do 132 it=1,m 
       read(11,rec=it)((data(i,j),i=1,nx),j=1,ny) 
       do 132 jj=1,ny 
       do 132 ii=1,nx 
        kkkk=nx*(jj-1)+ii 
        f(kkkk,it)=data(ii,jj) 
132       continue 
           close(11) 
!CCCCCCCCCCCCCCCCINPUT DATA CCCCCCCCCCCCCCCCCCC 
!ccccccccccccccccccccccccccccccccccccc 
 
      CALL Test1(n,m,ff,f,nf) 
        write(*,*)'ok2' 
      CALL TRANSF(N,M,F,nf,AVF,DF,KS) 
              write(*,*)'ok3' 
      CALL FORMA(N,M,MNH,F,A) 
                write(*,*)'ok4' 
      CALL JCB(MNH,A,S,0.00001) 
                write(*,*)'ok5' 
      CALL ARRANG(KV,MNH,A,ER,S) 
                write(*,*)'ok6' 
      CALL TCOEFF(KVT,KV,N,M,MNH,S,F,V,evf,tcf,ER) 
                write(*,*)'ok7' 
      call test3(N,ff,nf,evf,kvt) 
                write(*,*)'ok8' 
      open(21,file='D:\seaice\test\evf.grd',form='unformatted',access='direct',recl=nx*ny) 
       irec=0 
      do 668 kk=1,kvt 
      irec=irec+1 
668   write(21,rec=irec)((evf(nx*(j-1)+i,kk),i=1,nx),j=1,ny) 
      close(21) 
 
 
      open(21,file='D:\seaice\test\tcf.grd',form='unformatted',access='direct',recl=kvt) 
      irec=0 
      do 345 it=1,m 
      irec=irec+1 
345   write(21,rec=irec) (tcf(it,iik),iik=1,kvt) 
      close(21) 
106   format(10f8.4) 
      open(21,file='D:\seaice\test\dats.dat') 
      write(21,106)(er(iiii,3),iiii=1,kv) 
      close(21) 
 
      STOP 
      END 
 
这是第一次eof的数据和进行纬向平均后的数据 
 
                        
 
 
 
 
这是eof程序运行完后显示的结果,应该没什么问题吧?求大神帮忙看看 
 
这是eof运行完后显示的结果,应该没有什么问题吧? 
 
 
 
 
 
 
 
 
 |   
 
 
 
 |