hier ein MWE einer Funktion in meinem Code ist, dass zwei Fehler zu erzeugen, wenn kompiliert wird:„nicht klassifizierbar Aussage“ bei if-Anweisung
function foo (a)
implicit none
real, intent(in)::a
real::foo
if -1.0 < 0.0 then
write(*,*) "hi"
end if
foo = a
end function foo
Die Fehler, die ich bei der Kompilierung bekommen sind:
frag.f90:7063.8:
if -1.0 < 0.0 then
1
Error: Unclassifiable statement at (1)
frag.f90:7065.11:
end if
1
Error: Expecting END FUNCTION statement at (1)
Ich verstehe nicht, warum ich eine unklassifizierbare Aussage bei einer if
Erklärung bekomme. Ich glaube, der zweite Fehler ist mit dem ersten verknüpft (wenn es keine if
-Anweisung gibt, keine Notwendigkeit, es zu schließen), wenn also der erste Fehler behoben wird, sollte der zweite auch behoben werden.
Ich kompiliere mit gfortran
.
Als ich lehren, habe ich immer Studenten fragen Klammern um Bedingungen hinzufügen, auch wenn die Programmiersprache nicht verhängen ist. Es ist gut für die Lesbarkeit und Debugging und ist in der Tat obligatorisch in Fortran. – innoSPG