Fortran Coder

查看: 89|回复: 1

[求助] forrrt1:severe<408>数组超限怎么整呀

[复制链接]

3

帖子

2

主题

0

精华

入门

F 币
34 元
贡献
13 点
发表于 2021-1-13 10:50:35 | 显示全部楼层 |阅读模式
[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

数组1

数组1

数组2

数组2
回复

使用道具 举报

1567

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1621 元
贡献
1048 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2021-1-13 10:59:54 | 显示全部楼层
错误提示仔细看看,英文翻译一下。
第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

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2021-1-25 02:16

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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