爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3605|回复: 5

[求助] 数组越界了,想知道怎么修改

[复制链接]

新浪微博达人勋

发表于 2021-12-15 15:21:24 | 显示全部楼层 |阅读模式

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

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

x
我想对pc时间序做每年的DJF合成,我的pc文件是8个模态,时间是40年*12月=480个,做合成的时候提醒我数组越界了,有没有大佬指导我修改一下?

以下是我的fortran程序:

program djf_pc_compst

implicit none

integer, parameter :: nt = 480, nm = 40, kvt=8  !
integer :: i, k   !k是时间,i是模态
real, allocatable,dimension(:,:) :: F, pc_djf

open(11,file='D:\DATA\teleconnection\data\anomaly(tropical)\mveof\pc.dat',access='direct',recl=kvt)
do k=1, nt
   read(11,rec=k) (F(i,k),i=1,kvt)
enddo
close(11)

do i=1, kvt
    do k=1, nm-1
            pc_djf(i,k)=(F(i,12*(k-1)+12)+F(i,12*(k-1)+13)+F(i,12*(k-1)+14))/3
        enddo
enddo

open(13,file='D:\DATA\teleconnection\data\anomaly(tropical)\djf_pc_compst.dat',form='unformatted',access='direct',recl=kvt)
do i=1, kvt
   write(11,rec=i) (pc_djf(i,k),k=1,nm-1)
enddo
close(13)

end



报的错是这样的:


捕获.PNG
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-12-15 16:11:00 | 显示全部楼层
你的pc_djf数组没有allocate
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-12-15 23:08:11 | 显示全部楼层
本帖最后由 KYV 于 2021-12-15 23:09 编辑
安达充 发表于 2021-12-15 16:11
你的pc_djf数组没有allocate

谢谢你的回复!我修改了一下,但还是出错了,是哪里不对呢?
捕获.PNG
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-12-16 10:26:42 | 显示全部楼层
KYV 发表于 2021-12-15 23:08
谢谢你的回复!我修改了一下,但还是出错了,是哪里不对呢?

F 也没有。。。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-12-16 10:36:24 | 显示全部楼层
如果你不习惯用可分配数组,可以在定义的时候就写好数组大小,数组引用的时候也要注意不要超出数组下标
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-12-17 15:53:28 | 显示全部楼层
安达充 发表于 2021-12-16 10:36
如果你不习惯用可分配数组,可以在定义的时候就写好数组大小,数组引用的时候也要注意不要超出数组下标

嗯嗯,已经修改好了。在定义的时候就写了数组大小,谢谢你啦!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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