2016-12-02 6 views
0

Hier ist mein Code:Ungültige Zeichen im Namen `1t`

!lab 4(a) solution by James Ney 
program lab4_a 
implicit none 
integer :: n 
real :: L,R 
interface 
    function testFun (x) 
       real :: testFun 
       real, intent (in) :: x 
     end function testFun 
end interface 

print *, "lab 4(a) solution by James Ney" 
print *, "Enter left and right ends of interval and number of subintervals" 

read *, L,R,n 

call MeshCalcs(testFun,L,R,n) 

contains 

subroutine MeshCalcs(F,a,b,n) 
     implicit none 
     integer, intent(in) :: n 
     real, intent(in) :: a,b 
     real :: del,fVal,xVal 
     integer :: 1t=0,gr=0,i 
     real ::F,sum=0,average 
     del=(b-a)/real(n) 
     do i=0,n 
     xVal=a+(i*del) 
     fVal=F(xVal) 
     sum=sum+fVal 
     end do 
    Average=sum/(n+1.0) 
     print "('Average is: ',f10.2)",average 
     do i=0,n 
       xVal=a+(i*del) 
       fVal=F(xVal) 
       if (fVal>average) then 
       gr=gr+1 
       else if(fVal<average) then 
       1t=1t+1 
       end if 
     end do 
print "('number of function values greater than average =',i4)",gr 
print "('number of function values less than average =',i4)",1t 

end subroutine MeshCalcs 

end Program Lab4_a 

real function testFun(x) 
real, intent (in) :: x 
testFun=-(x-4.0)**2+9.0 
end function testFun 

und die Fehler, die ich erhalte, wenn ich versuche, mit gfortran zu kompilieren sind:

lab4_2a.f90:27.20: 

     integer :: 1t=0,gr=0,i 
        1 
Error: Invalid character in name at (1) 
lab4_2a.f90:43.5: 

    1t=1t+1 
    1 
Error: Non-numeric character in statement label at (1) 
lab4_2a.f90:43.6: 

    1t=1t+1 
     1 
Error: Invalid character in name at (1) 
lab4_2a.f90:47.62: 

print "('number of function values less than average =',i4)",1t 
                   1 
Error: Syntax error in PRINT statement at (1) 
lab4_2a.f90:41.5: 

    gr=gr+1 
    1 
Error: Symbol 'gr' at (1) has no IMPLICIT type 
lab4_2a.f90:30.12: 

     do i=0,n 
      1 
Error: Symbol 'i' at (1) has no IMPLICIT type 
+1

Was denken Sie, implizite none' ist? Was wäre ohne es? –

+0

Willkommen, versuche beschreibende Fragetitel zu verwenden und unnötige Dinge wie Grüße und Dank im Voraus zu vermeiden. Verwenden Sie das Tag 'fortran' für alle Fortran-Fragen und fügen Sie ein weiteres Tag für eine bestimmte Version hinzu, wenn Sie unterscheiden müssen. –

+0

Sie haben eine Antwort auf die aktuellen Fehler. Da ich die Anweisung 'integer :: 1t = 0, gr = 0, i' sehe, erwarte ich Ihre [nächste Frage] (https://stackoverflow.com/q/3352741/). – francescalus

Antwort

1

Die erste Fehlermeldung ist ganz klar, (Nun, klar denen, die dieses Zeug schon kennen). In dieser Zeile

integer :: 1t=0,gr=0,i 

die erste Variable deklariert hat einen Namen mit der Ziffer beginnen 1. Fortrans Regeln verlangen, dass alle Namen mit einem Buchstaben oder einem Unterstrich beginnen. Ich glaube, dass dies auch in anderen Programmiersprachen üblich ist. Also der Compiler Barfs auf 1t und der Rest der angezeigten Fehler sind wahrscheinlich direkte Konsequenzen. Benenne diese Variable um und schau was passiert.

Verwandte Themen