Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

`Fortran runtime error: End of file` in Amber12

I am using amber12 software used for molecular mechanical force fields for the simulation of biomolecules, I follow the installation instructions described in the next link Intallation of amber in Mac OS X the program actually works but when in try to execute a program part of the software its stops and says

Fortran runtime error: End of file

1.So this is what I do, first access the file folder that contain the files

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

2.then set the path

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

3.and finally execute the program whit the next command line:

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$ 

The file min.in is saved in file folder Complex 1 where I'm running the simulation this is the script for min.in

Initial minimisation of our complex
 &cntrl
  imin=1, maxcyc=3000, ncyc=2500,
  cut=16, ntb=0, igb=1,
 &end

How do I solve this problem? Is the syntax wrong? Does anyone know how to execute or what kind of programming language is this?

This is the version installed of gfortran I have

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) 
like image 743
Alex RendOn Avatar asked Apr 18 '13 22:04

Alex RendOn


2 Answers

I had the same error message: ..file mdread.F90 (unit = 5, file = 'min_all.in')...

When investigating this, I for some reason found that changing the ntpr=5 to 6 in the min_all.in file got rid of the problem:

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

Not being the sharpest knife in the drawer about these things, I have a hard time seeing why this solved it for me though.

The ntpr value only defines how often the trajectory coordinates should be sent to the out-file, in this case every 6 steps instead of every 5 steps.

like image 63
MackieTheKnife Avatar answered Oct 15 '22 15:10

MackieTheKnife


Extended comment rather than an answer. The two common causes of the error message you are getting, that is

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

are

  1. The file being read is not where the program is looking for it.
  2. The program tries to read more data out of the file than the file contains.

From what you have posted it seems that (1) is unlikely, but you could check this by inserting an INQUIRE statement to check the file's existence prior to opening it. Alternatively you could make use of the STATUS='old' keyword (and value) in your file OPEN statement, if the file does not exist the program will report an error.

As for (2), you'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 post any of the relevant code. You might care to modify the file READ statements to incorporate an END= keyword argument to smoke out the source of the error.

I presume that the suppliers of Amber12 are themselves likely to be more knowledgeable about their code than the SO community; your question would be better directed to them.

For what it's worth I think that the problem is unrelated to the compiler you are using.

like image 26
High Performance Mark Avatar answered Oct 15 '22 14:10

High Performance Mark