5

我正在使用用于模拟生物分子的分子机械力场的 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) 
4

3 回答 3

10

我有同样的错误信息:..file mdread.F90 (unit = 5, file = 'min_all.in')..

在对此进行调查时,出于某种原因,我发现将min_all.in文件中的ntpr=5to更改为解决了该问题:6

 &cntrl
  imin=1, maxcyc=200,
  ntpr=6,
 &end

在这些事情上,我不是抽屉里最锋利的刀,但我很难理解为什么这会为我解决这个问题。

ntpr值仅定义应将轨迹坐标发送到输出文件的频率,在这种情况下,每 6 步而不是每 5 步。

于 2017-10-17T07:13:01.870 回答
3

扩展评论而不是答案。您收到错误消息的两个常见原因,即

At line 524 of file mdread.F90 (unit = 5, file = 'min.in') Fortran runtime error: End of file

  1. 正在读取的文件不是程序正在寻找它的位置。
  2. 程序试图从文件中读取比文件包含的更多的数据。

从您发布的内容来看,(1)似乎不太可能,但您可以通过INQUIRE在打开文件之前插入语句来检查文件的存在来检查这一点。或者,您可以STATUS='old'在文件语句中使用关键字(和值)OPEN,如果文件不存在,程序将报告错误。

至于(2),你几乎是靠你自己的。这里没有人(除非您非常幸运)可能知道您的程序期望从输入文件中读取什么,并且您没有发布任何相关代码。您可能需要修改文件READ语句以包含END=关键字参数以找出错误的来源。

我认为 Amber12 的供应商本身可能比 SO 社区更了解他们的代码;你的问题会更好地针对他们。

对于它的价值,我认为该问题与您使用的编译器无关。

于 2013-04-19T09:29:37.780 回答
3

'&end' 或 '/' 行不应是输入脚本中的最后一行。在 '&end' 或 '\' 行之后有一个新的空行,无论您使用的是哪个。这解决了我的问题。

于 2018-07-04T07:55:18.257 回答