Pregunta

Tengo una línea de código Fortran, que incluye un texto. Estoy cambiando el texto, lo que hace que la línea de código demasiado largo para Fortran, por lo que se dividió en dos líneas usando 'a'.

Antes:

  IF (MYVAR .EQ. 1) THEN
    WRITE(iott,'(A) (A)') 'ABC=', SOMEVAR

Se cambió a:

  IF (MYVAR .EQ. 1) THEN
    WRITE(iott,'(A) (A)') 'ABC DEF GHI JK
a ' // 'L=', SOMEVAR

Mi pregunta es, en la nueva línea (que empiezan con 'a'), que hace el espacio en blanco entre la 'a' y el primer 'conseguir anexa a la cadena? O necesito el 'ser el carbón al lado de un espacio en blanco para evitar adicional?

Como se puede ver, no estoy acostumbrado a Fortran ...

¿Fue útil?

Solución

Si usted está preocupado acerca de un límite superior a 72 la columna, entonces supongo que está utilizando Fortran 77. La sintaxis de Fortran 77 requiere que comience con la columna 7, a excepción de líneas continuas, que necesitan un carácter de continuación en la columna 6. yo uso el método siguiente para decirme cuántas líneas se continuó durante una declaración (la primera línea es sólo para mostrar las columnas):

!234567890
      write(*,*)"Lorem Ipsum",
     1 " Foo",
     2 " Bar"

Esto imprimiría:

Lorem Ipsum Foo Bar

Usted no tiene que preocuparse acerca de los espacios que no están entre comillas. Todos los espacios en blanco se comprime en Fortran, de todos modos.

Vale la pena aprender a usar formato declaraciones. Pueden hacer que la producción sea mucho más fácil. Es algo similar a printf, si viene de C. Se especifica un formato con diferentes tipos de parámetros, a continuación, dar variables o literales para llenar ese formato.

Y no se preocupe que usted no está trabajando con el caliente, nuevo, el lenguaje del día. Se puede aprender mucho de Fortran, incluso Fortran 77, y cuando se utiliza correctamente, Fortran, incluso puede ser elegante. He visto Fortran 77 escrito como si se tratara de un lenguaje orientado a objetos, con memoria dinámica. Me gusta decir, "old.ne.bad".

Otros consejos

Ha sido demasiado largo para mí recordar los requisitos de las columnas antiguas de FORTRAN (y que ni siquiera puede ser tan estricta como estaban camino de regreso cuando).

Pero - no es esto algo que una prueba rápida le dirá directamente hacia afuera?

  1. Sí, el a es un carácter de continuación y, básicamente, sólo significa añadir el resto de esta línea que comienza después de que el carácter de continuación (columna 6, ¿verdad?) A la línea anterior.
  2. El compilador Fortran probablemente tiene una opción para activar la "forma libre" de entrada en lugar de utilizar "forma fija" de entrada. Utilice este y usted no tendrá que preocuparse de longitud de la línea.
  3. Si su compilador Fortran es más antigua que F90 - que es cuando pienso en la capacidad de entrada de forma gratuita comenzó, usted tiene mis condolencias
  4. .

@ Mike B:

En un mundo ideal, sí, pero en este caso el código se desarrolla en una máquina, y se sometió a un servidor de compilación que tiene el software de tercera parte correspondiente / / licencias de SDK a su alcance para construir. La construcción no es exactamente rápido tampoco.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top