Fortran Coder

标题: forrrt1:severe<408>数组超限怎么整呀 [打印本页]

作者: xiao.    时间: 2021-1-13 10:50
标题: forrrt1:severe<408>数组超限怎么整呀
[Fortran] 纯文本查看 复制代码


program co2h20n2
implicit none
integer,parameter::M=2966297,N=2,L=1227853
real ::cob(3000001,2)
real::co2(L,N)
real::h2o(M,N)
real ::k
integer::i,j,q,p,count


open(10,file='T_1800_P_25.0_CO2Mol_0.1_N2mol_0.9.data')
do i=1,1227852

    read(10,*)co2(i,:)

end do
close(10)


open(11,file='T_1800_P_25.0_H2OMol_0.1_N2mol_0.9.data')
do i=1,2966296

    read(11,*)h2o(i,:)
   
end do
close(11)


q=1
count=1
k=1000
do k=0,30000,0.01
     do p=count,1227852
      if (k-co2(p,1)<0)then
             cycle
      else if (k-co2(p,1)>0.01)then
     
     else
        cob(q,2)=cob(q,2)+co2(p,2)   
        count=count+1
      end if
     end do
     cob(q,1)=k
    q=q+1
   
  end do  




  q=1
   count=1
do k=0,30000,0.01
  do p=count,2966296
     if (k-co2(p,1)<0)then
    cycle
       else if (k-co2(p,1)>0.01)then
       else
        cob(q,2)=cob(q,2)+co2(p,2)
             count=count+1

       end if
  end do

  q=q+1
end do


open(12,file='hecheng.txt')
  do i=1,3000000

    write (12,*)cob(i,:)

  end do
  close(12)
  end  





微信图片_20210113104935.jpg (148.68 KB, 下载次数: 306)

微信图片_20210113104935.jpg

1609989679(1).jpg (57.45 KB, 下载次数: 362)

数组1

数组1

1609989696(1).jpg (49.4 KB, 下载次数: 301)

数组2

数组2

作者: fcode    时间: 2021-1-13 10:59
错误提示仔细看看,英文翻译一下。
第57行,数组越界

co2 大小是 1227853,但p循环到 2966296

此外,既然你定义了 L 和 M,为什么代码里还要写一大堆 2966296 呢?这样你改这些数字多累啊??为何不写成 do p = count , M-1 呢?

do k=0,30000,0.01
  do p=count,2966296
     if (k-co2(p,1)<0)then
    cycle
       else if (k-co2(p,1)>0.01)then
       else
        cob(q,2)=cob(q,2)+co2(p,2)
             count=count+1
       end if
  end do






欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2