Escaliborc 发表于 2020-7-9 16:07:44

数组越界

运行老程序出错,stres数组大小为(11,2),查看95行程序,数组初始化感觉也没问题,不知道哪里数组越界,基础太差,实在是不明白错在哪,请指点

Escaliborc 发表于 2020-7-9 16:08:33

forrtl: severe (408): fort: (3): Subscript #2 of the array STRES has value -858993460 which is less than the lower bound of 1

Escaliborc 发表于 2020-7-9 16:09:07

      COMMON/UNIM1/NPOIN,NELEM,NBOUN,NLOAD,NLAYR,NPROP,NNODE,IINCS,
   .             IITER,KRESL,NCHEK,TOLER,NALGO,NSVAB,NDOFN,
   .             NINCS,NEVAB,NITER,NOUTP,FACTO,PVALU
      COMMON/UNIM2/PROPS(1,17),COORD(11),LNODS(10,2),IFPRE(22),
   .             FIXED(22),TLOAD(10,4),RLOAD(10,4),ELOAD(10,4),
   .             MATNO(10),STRES(10,2),PLAST(10),XDISP(22),
   .             TDISP(11,2),TREAC(11,2),ASTIF(22,22),ASLOD(22),
   .             REACT(22),FRESV(230),PEFIX(22),ESTIF(4,4),
   .             STRSL(6,2)
      DO 20 IELEM=1,NELEM
      PLAST(IELEM)=0.0
      DO 10 ID0FN=1,NDOFN
10    STRES(IELEM,IDOFN)=0.0
      DO 20 IEVAB=1,NEVAB
      ELOAD(IELEM,IEVAB)=0.0
20    TLOAD(IELEM,IEVAB)=0.0
      DO 30 IPOIN=1,NPOIN
      DO 30 IDOFN=1,NDOFN
      TDISP(IPOIN,IDOFN)=0.0
30    TREAC(IPOIN,IDOFN)=0.0

Transpose 发表于 2020-7-9 16:31:31

打错了
DO 10 ID0FN=1,NDOFN
这一句是IDOFN,打成了ID0FN

Escaliborc 发表于 2020-7-9 16:35:11

Transpose 发表于 2020-7-9 16:31
打错了

这一句是IDOFN,打成了ID0FN ...

我太粗心了,谢谢

vvt 发表于 2020-7-9 18:20:55

可见,implicit none 是多么重要

vvt 发表于 2020-7-9 18:25:51

此外,难以置信,楼主新写的代码,还在用这种1970年的代码风格。
页: [1]
查看完整版本: 数组越界