当前位置: 首页 > 程序语言 >Fortran 77语言的数组定义问题

Fortran 77语言的数组定义问题

作者 bobo-scut
来源: 小木虫 150 3 举报帖子
+关注

我编写了一个abaqus(有限元)子程序,使用Fortran 77语言调用一个数组(180*180),因为Fortran 77 单个数组最多只能有512行,一行6个数,所以需要平均分为12段赋值给新数组输出,为什么输出的数组混乱了?第10、11、12段数组跑到前面来了,导致输出的数组顺序颠倒。。。求大神指教 返回小木虫查看更多

今日热帖
  • 精华评论
  • cdut

    把代码贴出来啊

  • bobo-scut

    引用回帖:
    2楼: Originally posted by cdut at 2017-08-02 19:32:30
    把代码贴出来啊

    SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
         1 COORDS,JLTYP,SNAME)

          INCLUDE 'ABA_PARAM.INC'

          DIMENSION TIME(2), COORDS (3)
          CHARACTER*80 SNAME     

          real:: a(32400)
          F=0
              data a(1:2700)/0,0,0,0,0,0,
         1 0,0.00220443,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0.00497663,0.00290721,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0.00480093,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0.00209624,0.00517915,
         1 0,0,0,0,0,0.00745109,
         1 0,0,0,0,0,0,
         1 0,0,0,0.00202873,0,0,
         1 0,0.00220443,0,0,0,0.00220443,
         1 0.0145517,0,0,0.00516617,0,0,
    。。。。。。。。。。。中间数据太长,省略了(共12段数据)。。。。。。

             data a(29701:32400)/0.0168773,0.0358914,0,0,0,0,
         1 0,0,0,0,0,0.058191,
         1 0.285805,0.192845,0.178793,0.279138,0.817874,1.42453,
         1 0.568069,0.17191,0.0252345,0,0,0,
         1 0,0,0.0415708,0.0328483,0.0314557,0.006924,
         1 0.0146728,0.00747879,0.00206941,0.00923662,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0.0280474,0.0282101,
         1 0.134518,0.150935,0.192466,0.425515,0.438037,0.286305,
         1 0.196144,0.0212048,0.00206941,0.109296,0.143416,0.215023,
         1 0.130637,0.019311,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0,0,
         1 0,0,0,0,0,0/
    。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

          if (NOEL.ge.907201 .and. NOEL.le.939600)then
              if (a(NOEL-907200).gt.0.0000000000001)then
                  F=a(NOEL-907200)*1E6   
              end if        
          end if
          RETURN
          END

  • cdut

    引用回帖:
    3楼: Originally posted by bobo-scut at 2017-08-02 19:59:58
    SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
         1 COORDS,JLTYP,SNAME)

          INCLUDE 'ABA_PARAM.INC'

          DIMENSION TIME(2), COORDS (3)
          CHARACTER*80 SNAME     

          re ...

    你的问题我也不知道是怎么回事。
    给你一个小建议:把数据保存到单独的数据文件中;然后在程序中编写代码,打开数据文件,一行一行把数据读到数组变量中。

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓