Fortran - Help me

 
Vista:

Help me

Publicado por Selene (2 intervenciones) el 06/06/2012 21:40:47
Lo estoy programando en Fortran 77, pero no me corre

program back
integer i

open(unit=21, file='selene.dat', status='old')
do 8 i=1,6
read(21,'(a1)') yes
if (yes.ne.'a')goto 9
8 continue
9 backspace
close(21)
stop
end


Cuando lo corro me sale,


backspace.f:7:
if (yes.ne.'a')goto 9
1 2
Equality operator at (1) must operate on two scalar (not array) subexpressions, two function invocations returning arithmetic or character scalars, or a combination of both -- but the subexpression at (2) is an array
backspace.f:8:
8 continue
....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Help me

Publicado por theoretical (4 intervenciones) el 11/06/2012 02:36:53
Hola Selena, no he compilado su programa puesto que trabajo en fortran90/95. Lo que he observado del mismo es que dentro del cuerpo de ciclo do, tu estas leyendo una variable del tipo caracter, pero no las declaras como tal. Tambèn en la expresion relacional de la instrucción if, estas realizando una comparación, con otra variable del tipo caracter, pero el compilador no sabe quien es "a", puesto que no la has declarado, ni mucho meno asigno un valor o letra. Por otro lado creo que no tienes ni idea del papel que desempeña el posicionamento de un fichero reallizado a travez de la instrucción BACKSPACE. Esta sintaxis, permite retroceder un registro respecto del actual
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar