爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2624|回复: 3

[求助] eof关于把海表温度化为f(n,m)

[复制链接]

新浪微博达人勋

发表于 2013-12-15 19:29:49 | 显示全部楼层 |阅读模式

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

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

x
360桌面截图20131215192452.jpg
运行fortran程序出现这个结果,是怎么回事?
cccccccccc  prepare data for svd analysis ccccccccc
cccccccccc   the program is to normalize sea surface temperature(SST) cccccccccc
cccccccccc   mt: the length of time series;
cccccccccc   mo: the month numbers;           my: the year numbers;
cccccccccc  sst: sea surface temperature data;
cccccccccc sst3: the work array;             avf: the average of SST;
cccccccccc   df: the variance of SST;            
      program main
      parameter(mo=12,my=43,nx=18,ny=12,mt=516)
      dimension sst2(nx,ny,mo,my),avf(mo,nx,ny),df(mo,nx,ny)
      dimension sst(nx,ny,mt),sst3(nx,ny,mt),II(NX,NY),
     & jp(nx,ny,mo,my)
      open(1,file='g:sstpx.grd',form='unformatted',
     &     access='direct',recl=nx*ny)
            irec=1
       do 5 it=1,mt
       read(1,rec=irec)((sst(i,j,it),i=1,nx),j=1,ny)
       irec=irec+1
5      continue
       do i=1,nx
            it1=i
         do j=1,ny
         do it=1,mt
         do m=1,mo
         do myear=1,my
            sst2(i,j,m,myear)=sst(i,j,it1)
            it1=it1+12
         end do
         end do
         end do
         end do
         end do
       do i=1,nx
       do j=1,ny
       do m=1,12
       avf(i,j,m)=0.0
       do myear=1,my
       avf(i,j,m)=avf(i,j,m)+sst2(i,j,m,myear)/my   !求平均值
       end do
       end do
       end do
       end do
         do i=1,nx
       do j=1,ny
       do m=1,mo
       do myear=1,my
       jp(i,j,m,myear)=sst2(i,j,m,myear)-avf(i,j,m)  !求距平
       end do
       end do
       end do
       end do
       open(2,file='g:\jp.grd',form='binary')
       do i=1,nx
       do j=1,ny
       do myear=1,my
       do m=1,mo
       kk=(myear-1)*12+m
       sst3(i,j,kk)=jp(i,j,m,myear)
       end do
       end do
       end do
       end do
       do it=1,mt
       write(2)((sst3(i,j,it),i=1,nx),j=1,ny)
       end do         



ccccccccccccccccccccccccccccccccccccccccccc
      close (1)
      close (2)
      stop
      end


这是我编的一段程序,需要将这段程序和另一段程序结合,构成eof分析的程序,没错,但是在电脑运行不出来,想请大神帮忙看看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-12-15 21:20:29 | 显示全部楼层
数组溢出,这种错误别人不太好帮忙
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-12-16 08:41:17 | 显示全部楼层
程序写的过于复杂,难以直接看出来是哪里的数组溢出了,建议使用fortran的debug功能,可以直接定位到出错点上面再进行修改。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-12-16 08:45:28 | 显示全部楼层
如果你用的是CVF的话:project-->settings-->Fortran-->Category:run time-->Runtime Error  Checking下不要选择Array and String Bounds试试
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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