write una matriz manejo leer escritura escribir datos crear como caracteres avanzado archivos archivo fortran bioinformatics gfortran

una - `Error de tiempo de ejecución de Fortran: Fin del archivo` en Amber12



manejo de archivos en fortran (2)

Comentario extendido en lugar de una respuesta. Las dos causas comunes del mensaje de error que está recibiendo, es decir

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

son

  1. El archivo que se lee no está donde el programa lo está buscando.
  2. El programa intenta leer más datos del archivo que el archivo contiene.

Según lo que publicó, parece que (1) es improbable, pero puede verificarlo insertando una instrucción INQUIRE para verificar la existencia del archivo antes de abrirlo. Alternativamente, puede utilizar la palabra clave STATUS=''old'' (y el valor) en su declaración OPEN archivo, si el archivo no existe, el programa informará un error.

En cuanto a (2), estás más o menos solo. Nadie aquí (a menos que tenga mucha suerte) es probable que tenga una pista de lo que su programa espera leer del archivo de entrada, y usted no publicará ninguno de los códigos relevantes. Puede importar modificar las declaraciones READ del archivo para incorporar un argumento END= keyword para eliminar el origen del error.

Supongo que los proveedores de Amber12 probablemente conozcan mejor su código que la comunidad de SO; su pregunta sería mejor dirigida a ellos.

Por lo que vale, creo que el problema no está relacionado con el compilador que está utilizando.

Estoy usando el software amber12 utilizado para campos de fuerzas mecánicas moleculares para la simulación de biomoléculas, sigo las instrucciones de instalación descritas en el siguiente enlace Intallation of ambar en Mac OS X el programa realmente funciona pero cuando intento ejecutar una parte del programa del programa se detiene y dice

Error de tiempo de ejecución de Fortran: fin del archivo

1.Así que esto es lo que hago, primero acceda a la carpeta de archivos que contiene los archivos

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

2. luego establecer el camino

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

3.y finalmente ejecuta el programa con la siguiente línea de comando:

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$

El archivo min.in se guarda en la carpeta de archivos Complex 1 donde estoy ejecutando la simulación, esta es la secuencia de comandos para min.in

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

¿Cómo resuelvo este problema? Es la sintaxis incorrecta? ¿Alguien sabe cómo ejecutar o qué tipo de lenguaje de programación es este?

Esta es la versión instalada de gfortran que tengo

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)


Tuve el mismo mensaje de error: ..file mdread.F90 (unit = 5, file = ''min_all.in'')..

Al investigar esto, por alguna razón descubrí que al cambiar el ntpr=5 a 6 en el archivo min_all.in me deshice del problema:

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

Al no ser el cuchillo más afilado en el cajón sobre estas cosas, me cuesta trabajo ver por qué me lo resolvió.

El valor ntpr solo define la frecuencia con la que se deben enviar las coordenadas de la trayectoria al archivo ntpr , en este caso cada 6 pasos en lugar de cada 5 pasos.