我正在使用用于分子机械力场的amber12软件来模拟生物分子,我按照下一个链接中描述的安装说明Intallation of amber in Mac OS X该程序实际可行但是在尝试执行程序的一部分时软件停止并说
Fortran运行时错误:文件结束
1.这就是我的工作,首先访问包含文件的文件夹
N-terminal-2:~ javieralejandrorendoncarrillo$ cd Desktop/amber/Complex1
2.然后设置路径
N-terminal-2:Complex1 javieralejandrorendoncarrillo$ export AMBERHOME=/Users/javieralejandrorendoncarrillo/amber/amber12
3.最后在下一个命令行执行程序:
N-terminal-2:Complex1 javieralejandrorendoncarrillo$ $AMBERHOME/bin/sander.MPI -O -i min.in -o min_complex.out -p complex.prmtop -c complex.inpcrd -r complex_min.crd &
[2] 13377
N-terminal-2:Complex1 javieralejandrorendoncarrillo$ At line 524 of file mdread.F90 (unit = 5, file = 'min.in')
Fortran runtime error: End of file
[2]- Exit 2 $AMBERHOME/bin/sander.MPI -O -i min.in -o min_complex.out -p complex.prmtop -c complex.inpcrd -r complex_min.crd
N-terminal-2:Complex1 javieralejandrorendoncarrillo$
文件min.in
保存在文件夹Complex 1
中我正在运行模拟这是min.in
Initial minimisation of our complex
&cntrl
imin=1, maxcyc=3000, ncyc=2500,
cut=16, ntb=0, igb=1,
&end
我该如何解决这个问题?语法错了吗?有谁知道如何执行或者这是什么样的编程语言?
这是我所拥有的gfortran安装的版本
N-terminal-2:~ javieralejandrorendoncarrillo$ gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin12/4.7.2/lto-wrapper
Target: x86_64-apple-darwin12
Configured with: ../gcc-4.7.2/configure --prefix=/opt/local --build=x86_64-apple-darwin12 --enable-languages=c,c++,objc,obj-c++,lto,fortran,java --libdir=/opt/local/lib/gcc47 --includedir=/opt/local/include/gcc47 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-4.7 --with-libiconv-prefix=/opt/local --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-4.7 --with-gxx-include-dir=/opt/local/include/gcc47/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --with-ppl=/opt/local --with-cloog=/opt/local --enable-cloog-backend=isl --disable-cloog-version-check --enable-stage1-checking --disable-multilib --enable-lto --enable-libstdcxx-time --with-as=/opt/local/bin/as --with-ld=/opt/local/bin/ld --with-ar=/opt/local/bin/ar --with-bugurl=https://trac.macports.org/newticket --disable-ppl-version-check --with-pkgversion='MacPorts gcc47 4.7.2_2'
Thread model: posix
gcc version 4.7.2 (MacPorts gcc47 4.7.2_2)
答案 0 :(得分:10)
我收到了同样的错误消息:..file mdread.F90 (unit = 5, file = 'min_all.in')..
。
在调查此问题时,我出于某种原因发现将 min_all.in 文件中的ntpr=5
更改为6
可以解决问题:
&cntrl
imin=1, maxcyc=200,
ntpr=6,
&end
对于这些东西,不是抽屉里最锋利的刀,我很难看到为什么这样才能解决它。
ntpr
值仅定义轨迹坐标应发送到外部文件的频率,在这种情况下每6步而不是每5步。
答案 1 :(得分:2)
扩展评论而不是答案。您获得的错误消息的两个常见原因,即
At line 524 of file mdread.F90 (unit = 5, file = 'min.in') Fortran runtime error: End of file
是
根据您发布的内容,似乎(1)不太可能,但您可以通过在打开文件之前插入INQUIRE
语句检查文件的存在来检查。或者,您可以在文件STATUS='old'
语句中使用OPEN
关键字(和值),如果文件不存在,程序将报告错误。
至于(2),你几乎都是靠自己。这里没有人(除非你非常幸运)很可能知道你的程序期望从输入文件中读取什么,并且你没有发布任何相关的代码。您可能需要修改文件READ
语句,以包含END=
关键字参数来清除错误源。
我认为Amber12的供应商本身可能比SO社区更了解他们的代码;你的问题会更好地针对他们。
我觉得这个问题与你正在使用的编译器无关。
答案 2 :(得分:1)
'&end'或'/'行不应是输入脚本中的最后一行。在“&end”或“ \”行之后使用新的空行,以您所使用的为准。 这为我解决了这个问题。