2010-11-25 3 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

Пожалуйста, отформатируйте свой код как код - вы видите маленькие значки над окном редактирования? Используйте тот, который состоит из 1 и 0. Даже без этого я могу определить вашу первую ошибку: FORTRAN77 истекает 30 лет. – 2010-11-25 16:42:54

ответ

2

Это было некоторое время, так как я много сделал Фортран, но я не верю, что функция EOF является частью стандарта Fortran 77, и я всегда использовал конец = метки идиомы

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

(но, возможно, с использованием do вместо goto ...)

Here is page which discusses several options включая выше, и один на основе iostat

Смежные вопросы