Question

J'ai une ligne de code Fortran, qui comprend un texte. Je change le texte, ce qui rend la ligne de code trop long pour Fortran, donc je diviser sur deux lignes à l'aide de « a ».

était:

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

Changement à:

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

Ma question est, sur la nouvelle ligne (en commençant par « a »), fait l'espace blanc entre le « a » et le premier «se joint en annexe à la chaîne? Ou dois-je le «être le charbon à côté d'un pour éviter un espace blanc supplémentaire?

Comme vous pouvez le dire, je ne suis pas habitué à Fortran ...

Était-ce utile?

La solution

Si vous êtes inquiet de dépasser une limite de 72 colonne, alors je suppose que vous utilisez Fortran 77. La syntaxe de Fortran 77 exige que vous commencez à la colonne 7, à l'exception des lignes continues, qui ont besoin d'un caractère de continuation dans la colonne 6. J'utilise la méthode suivante pour me dire combien de lignes sont d'une instruction continue (la première ligne est juste pour montrer les colonnes):

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

imprimerait:

Lorem Ipsum Foo Bar

Vous n'avez pas à vous soucier des espaces qui ne sont pas entre guillemets. Tous les espaces est compressé en Fortran, de toute façon.

Il vaut la peine d'apprendre à utiliser le format déclarations. Ils peuvent faire la production beaucoup plus facile. Il est un peu semblable à printf, si vous venez de C. Vous spécifiez un format avec différents types de paramètres, puis donner des variables ou littéraux pour remplir ce format.

Et ne vous inquiétez pas que vous ne travaillez pas avec le chaud, nouveau, langue du jour. Vous pouvez apprendre beaucoup de Fortran, même Fortran 77, et lorsqu'il est utilisé correctement, Fortran peut même être élégant. Je l'ai vu Fortran 77 écrit comme si elle était un langage orienté objet, avec la mémoire dynamique. Je tiens à dire, "old.ne.bad".

Autres conseils

Il a été trop longtemps pour me rappeler les anciennes exigences de colonne de FORTRAN (et ils peuvent même ne pas être aussi stricts que le chemin du retour quand).

Mais - est-ce pas quelque chose qu'un test rapide vous dira d'emblée?

  1. Oui, le a est un caractère de continuation et, fondamentalement, cela signifie simplement ajouter le reste de cette ligne commençant après le caractère de continuation (col 6, non?) À la ligne précédente.
  2. Votre compilateur Fortran a probablement une option pour activer « forme libre » entrée au lieu d'utiliser l'entrée « forme fixe ». Utilisez cette page et vous ne serez pas à vous soucier de la longueur de la ligne.
  3. Si votre compilateur Fortran est plus ancienne que F90 - ce qui est quand je pense que la capacité d'entrée de forme libre a commencé, vous avez mes condoléances
  4. .

B @ Mike:

Dans un monde idéal oui, mais dans ce cas, le code est développé sur une machine, et soumis à un serveur de build qui a le logiciel 3ème partie appropriée / SDK / permis dont il dispose pour construire. La construction est exactement ni rapide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top