0

我是 Fortran 新手,我正在尝试让其他人的代码运行以获取更大的输入。我一直在代码的这个区域遇到分段错误,这(惊喜,惊喜!!)取决于输入的大小。我将调试输出发送到一个文件并在每次写入后刷新,所以我确定它在这里而不是其他地方。

  integer    npoints, nv1(maxstrucs),ind1,ind2,window
  integer*2  smapall
  real*8     xre(0:maxres),xrp(0:maxres)
  real*8     xse(3,0:maxres),xsp(3,0:maxres)
  real*8     xm(3,3,0:maxres)
  real*8     rms2_fast3, urms
  real*8     xp(3,maxres),xe(3,maxres)

  real       smap,v1
  common /vectors/ v1(maxstrucs,maxres,3)
  common/allall/ smap(maxres,maxres),smapall(numcol,maxres,maxres),
 &     nstrucs

maxstrucs 是 500,maxres 是 150,numcol 是 124750。我知道公共字段有问题,但我正在使用标志 -mcmodel=medium 进行编译

作为参考,编译语句是

g77  -mcmodel=medium -fno-automatic -ffixed-line-length-none -c -o mmult.o mmult.fr code here

我还将堆栈大小设置为无限制

ulimit -s unlimited

我有一个 94Gbs 可用 RAM 的服务器。所以理论上它应该可以工作,除非有某种我不知道的限制。请帮忙

4

0 回答 0