我是 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 的服务器。所以理论上它应该可以工作,除非有某种我不知道的限制。请帮忙