ОШИБКА СОЗДАНИЯ ФОРТРАНА - PullRequest
0 голосов
/ 25 ноября 2010
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

1 Ответ

2 голосов
/ 25 ноября 2010

Прошло много времени с тех пор, как я сделал много Fortran, но я не верю, что функция EOF является частью стандарта для Fortran 77, и я всегда использовал идиому end = label

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

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

Здесь находится страница, на которой обсуждаются несколько вариантов , включая вышеприведенный, и один на основе iostat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...