2013-04-18 2 views
3

Я использую программное обеспечение amber12, используемое для полей молекулярной механической силы для моделирования биомолекул, следую инструкциям по установке, описанным в следующей ссылке Intallation of amber in Mac OS X, программа действительно работает, но когда она пробуется выполнить программную часть программного обеспечения его остановки и говорит«Ошибка выполнения Fortran: конец файла» в Amber12

Fortran runtime error: End of file

1.So это то, что я делаю, зайдите в папку с файлами, которые содержат файлы

N-terminal-2:~ javieralejandrorendoncarrillo$ cd Desktop/amber/Complex1 

2.Then установить путь

N-terminal-2:Complex1 javieralejandrorendoncarrillo$ export AMBERHOME=/Users/javieralejandrorendoncarrillo/amber/amber12 

3.And наконец выполнить программу йота следующую командную строку:

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) 

ответ

2

Extended комментарий, а не ответ. Две общие причины сообщения об ошибке вы получаете, то есть

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; ваш вопрос будет лучше направлен на них.

Для чего я думаю, что проблема не связана с используемым вами компилятором.

+0

скрипт должен выглядеть следующим образом Initial минимизацией нашего комплекс & CNTRL IMIN = 1, maxcyc = 3000, NCYC = 2500, разреза = 16, НТБ = 0, IGB = 1, / и командная строка $ sander.MPI -O -i /Users/javieralejandrorendoncarrillo/Desktop/Amber/COMPLEX1/min.in -o min_complex.out -p complex.prmtop -c complex.inpcrd -r complex_min.crd –

10

У меня было то же сообщение об ошибке: ..file mdread.F90 (unit = 5, file = 'min_all.in')...

При исследовании этого, я почему-то обнаружил, что изменение ntpr=5 к 6 в min_all.in файл избавились от проблемы:

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

Не будучи острый нож в ящике об этих вещи, я с трудом вижу, почему это разрешило это для меня, хотя.

Значение ntpr определяет, как часто координаты траектории должны быть отправлены в внешний файл, в этом случае каждые 6 шагов вместо каждых 5 шагов.

Смежные вопросы