我编写了一个abaqus(有限元)子程序,使用Fortran 77语言调用一个数组(180*180),因为Fortran 77 单个数组最多只能有512行,一行6个数,所以需要平均分为12段赋值给新数组输出,为什么输出的数组混乱了?第10、11、12段数组跑到前面来了,导致输出的数组顺序颠倒。。。求大神指教 返回小木虫查看更多
把代码贴出来啊
把代码贴出来啊
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
,
你的问题我也不知道是怎么回事。
给你一个小建议:把数据保存到单独的数据文件中;然后在程序中编写代码,打开数据文件,一行一行把数据读到数组变量中。