sintaxis lista ejemplos completa comandos comando basicos io format fortran

io - ejemplos - lista completa de comandos linux pdf



Leer entero desde el final del archivo con `` Formato faltante para la transferencia de datos FORMATTED hecho` (2)

Como no lo especifica explícitamente, su instrucción open asume un archivo formatted (texto). Cuando lee un archivo de texto, también debe proporcionar un formato:

read(18, *) i1

Alternativamente, si su archivo unformatted está unformatted (binario), abra su archivo en consecuencia:

open (unit=18, file=''resLast'', status=''old'', action=''read'', form=''unformatted'')

Estoy actualizando un programa Fortran para mis necesidades. El programa compila usando f95 y gcc versión 4.1.2 (sé que es antiguo, pero no puedo actualizarlo). Quiero leer los parámetros de un archivo y pruebo esto a través de

inquire (file="resLast", exist=resExist) if (readStart.eq.1.and.resExist) then open (unit=18,file=''resLast'', status=''old'', action=''read'') read (18) startConf read (18) avlength, stdlength, avenergy read (18) i,h2(1) read (18) i,h2(2) read (18) i,h2(4) read (18) i,h2(5) read (18) i,h2(8) read (18) i,h2(9) read (18) i,h2(13) read (18) i,h2(16) read (18) i,h2(17) read (18) i,h2(18) read (18) i,h2(20) read (18) i,h2(25) read (18) i,h2(32) close (18) else startConf = 0 do i=1,32 h2(i)=0 comh2(i)=0 enddo avlength=0d0 stdlength=0d0 avenergy=0d0 endif

El archivo de entrada se ve como

0 196.090732114834 38451.5752213317 53.4452884569457 1 9.188750409521163E-004 2 4.548226133920252E-004 4 8.704101492185146E-005 5 2.175445697503164E-004 8 4.992044341634028E-005 9 2.108949411194772E-005 13 4.304789035813883E-005 16 4.693072696682066E-005 17 8.976260141935199E-005 18 2.737747854553163E-005 20 5.637826689053327E-005 25 3.860405195155181E-005 32 3.193027441739105E-005

Cuando intento ejecutar esto obtengo un error

Fortran runtime error: Missing format for FORMATTED data transfer done

Lo que apunta a la primera línea de read . La startConf variable, as well as i`` es un número entero. El resto de las variables son de doble precisión.

He usado este método para leer datos en enteros previamente (incluso en el mismo código) sin problemas, ¿dónde está mi falla actual?


leer (18, *) es una mejor opción. puedes probar esto