我正在使用 Linux Mint 21 Cinammon 来安装 UrQMD 模拟包。我已经安装了 ROOT 以及指定的所有必需的依赖项网页。说明说:
$ tar -xvf urqmd-3.4.tar
$ make
在 make 命令之后,我得到
if [ -e lhc ]; then patch -R -p0 < lhc.patch || true; fi
rm -f lhc
gfortran -O3 -mcmodel=medium -c make22.f -o obj_x86_64/make22.o
make22.f:548:72:
548 | 151 ba2(j)=0d0
| 1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 151 at (1)
make22.f:3593:72:
3593 | 152 ba2(j)=p(2,j)/p(2,4)
| 1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 152 at (1)
make22.f:1644:45:
1644 | call getbran((/sig1,sig2,sig3/),1,3,dummy,1,3,channel)
| 1
......
3739 | call getbran(x,minnuc,maxmes,xmax,im,ip,ir)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(8)).
make22.f:1670:39:
我怀疑这与 gfortran 的版本有关,因为建议使用 6 或更低版本,因为该软件已经有一段时间没有更新了。我还尝试安装旧版本的 gfortran 和 gcc,但也不起作用。
答案1
前几天遇到这个问题,确实是gfortran版本的问题。在程序的提取文件中,有一个名为 mk 的文件夹,其中包含文件“Linux.mk”。该文件的第一行如下:
# We need to define a fortran compiler $(FC) and a linker $(LD).
FC = gfortran
LD = $(FC)
将其更改为
FC = gfortran-6
LD = $(F77)
解决了问题。我之前安装了 gfortran-6,并将其与 gfortran-11 一起安装。