2010-11-25 5 views
-2
f77 -c -o alqueva.o alqueva.f 
alqueva.f: In program `ssssss': 
alqueva.f:402: 
      DO WHILE (.NOT. EOF(12)) 
        1  2 
.NOT. operator at (1) must operate on subexpression of logical type, but the subexpression at (2) is not of logical type 
alqueva.f:415: 
        DO WHILE (.NOT. EOF(iread)) 
          1  2 
.NOT. operator at (1) must operate on subexpression of logical type, but the subexpression at (2) is not of logical type 
make: *** [alqueva.o] Error 1 
+2

Veuillez formater votre code en code - voyez-vous les petites icônes au-dessus de la fenêtre d'édition? Utilisez celui composé de 1 et de 0. Même sans cela, je peux repérer votre première erreur: FORTRAN77 a 30 ans de retard. –

+0

BTW - Juste poster une liste d'erreurs comme tat n'est pas très amical. Vous n'avez même pas posé de question. Bien sûr, nous étions en mesure de comprendre que vous ne savez pas quoi faire avec ce qui précède, mais il serait poli de le dire. – dmckee

+2

@High Performance Mark - FORTRAN77 est encore fortement utilisé dans les disciplines scientifiques et d'ingénierie (même préféré sur les variantes ultérieures). Dire que c'est une erreur d'utiliser cela, juste parce que ce n'est pas la «nouvelle chose», c'est ridicule. – TZHX

Répondre

2

Cela a été un moment que je l'ai fait beaucoup Fortran, mais je ne crois pas que la fonction EOF fait partie de la norme Fortran 77, et j'ai toujours utilisé la fin = idiome label

10 read (blah,end=20) 
    process stuff 
    goto 10 
20 close (blah) 

(mais peut-être à l'aide do au lieu de goto ...)

Here is page which discusses several options y compris ce qui précède et celle basée sur iostat