爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 14516|回复: 3

[求助] 求指正

[复制链接]

新浪微博达人勋

发表于 2020-3-17 16:44:21 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 叁玖壹 于 2020-3-17 18:16 编辑

求指正,各位大佬三维数组的第三维度与一维数组怎么做逻辑运算,我写的程序总提示超出数组边界
program test
integer,parameter::m=121,h=689,n=42
integer i,j,k,f
character*4 nian(n)
character*5 tzh(h)
integer tz1(h),jd1(h),wd1(h),ps(h),zjs(h)
real yz(h),qd(h)
integer tz(n,h,m),jd(n,h,m),wd(n,h,m)
real R24(n,h,m)
ps(1)=0
open(10,file='G:\yuzhi.txt')
do i=1,h
read(10,*) tz1(i),wd1(i),jd1(i),yz(i)
enddo
close(10)
open(11,file='G:\tzh.txt')
do i=1,h
read(11,*) tzh(i)
enddo
close(11)

open(12,file='G:\sj\nian1.txt')
do k=1,n
read(12,*) nian(k)
enddo
close(12)

do k=1,n
do i=1,h
open(13,file='G:\sj\'//nian(k)//'\'//trim(tzh(i))//'.txt')
open(15,file='f:\ps.txt')
open(16,file='f:\qd.txt')
open(17,file='f:\zjs.txt')
do j=1,m
read(13,*) tz(k,i,j),jd(k,i,j),wd(k,i,j),R24(k,i,j)
do while((R24(k,i,j)>=yz(i)))
ps(i)=ps(i)+1
qd(i)=sum(R24(k,i,:),dim=1)
enddo
zjs(i)=sum(R24(k,i,:),dim=1)
enddo
enddo
enddo
do i=1,h
write(15,*) tz1(i),jd1(i),wd1(i),ps
write(16,*) tz1(i),jd1(i),wd1(i),qd
write(17,*) tz1(i),jd1(i),wd1(i),zjs
enddo
close(13)
close(15)
close(16)
close(17)
end

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-3-17 16:55:07 | 显示全部楼层
do k=1,m
        2
read(12,*) nian(k)
                1
Warning: Array reference at (1) out of bounds (121 > 42) in loop beginning at (2)

看错误提示。nian数组定义范围为1~42,k你取的是121,超出数组范围。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 成长值: 0
发表于 2020-3-17 16:59:04 | 显示全部楼层
还没往下看,但是这一句似乎不对:

open(12,file='G:\sj\nian1.txt')
do k=1,m
read(12,*) nian(k)
enddo
close(12)
k循环到m,超过定义的n长度了,自然会数组超过边界
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-17 18:18:10 | 显示全部楼层
感谢,真没注意到
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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