首页 文章

“Fortran运行时错误:Amber12中的文件结束”

提问于
浏览
3

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

3 回答

  • 2

    我有相同的错误消息: ..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步 .

  • 10

    扩展评论而不是答案 . 您获得的错误消息的两个常见原因,即

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

    • 正在读取的文件不是程序正在查找的位置 .

    • 程序尝试从文件中读取比文件包含的更多数据 .

    根据您发布的内容,似乎(1)不太可能,但您可以通过插入 INQUIRE 语句来检查文件是否存在,然后再打开它 . 或者,您可以在文件 OPEN 语句中使用 STATUS='old' 关键字(和值),如果该文件不存在,程序将报告错误 .

    至于(2),你're pretty much on your own. No-one here (unless you are very very lucky) is likely to have a clue what your program expects to read from the input file, and you don' t发布任何相关代码 . 您可能需要修改文件 READ 语句以包含 END= 关键字参数以抽出错误源 .

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

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

  • 1

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

相关问题