先贴代码
-----------------------------------------------------
[Fortran] 纯文本查看 复制代码 X = 0.5*(-MATMUL((R+S), VX(:, temp_A)) + MATMUL((1.0+R), VX(:, temp_B)) + MATMUL((1.0+S), VX(:, temp_C)))
Y = 0.5*(-MATMUL((R+S), VY(:, temp_A)) + MATMUL((1.0+R), VY(:, temp_B)) + MATMUL((1.0+S), VY(:, temp_C)))
-----------------------------------------------------
运行后提示溢出(如下所示),调试发现问题就出在上面这两行代码。X 是50万行1列的数组,Y也是50万行1列的数组。VX和VY都 是约7500行1列的数组,R和S是66行一列的数组,
后来查到可以在IVF里按下面做调整(运行fortran出现stack overflow错误怎么办-百度经验 (baidu.com))。把0调整到最大1000000000。可以运行成功,得到了想要的结果。但有个疑问,就是如果X和Y的数组规模更大一点呢?达到100万行1列呢?这样设置是否能仍然有效呢?是否能把这两行代码做一些调整,可以不需要调整这个参数,并且能适用于更大规模数组呢?
|