Ungleichheitsrestriktion



  • Hallo zusammen,
    ich bekomme mal wieder eine Fehlermeldung ausgegeben bei der Formulierung einer größer gleich Restriktion (>=1,5).
    Wenn ich die Ungleichung mit Fließkommazahl angebe erscheint eine Fehlermeldung, jedoch aber nicht wenn ich die Fließkommazahl als Bruch umforme. Eine Klammer um den Bruch wird nicht akzeptiert, hier erscheint ebenfalls wieder eine Fehlermeldung. Ich frage mich nun, ob mit dem Bruch auch wirklich die 1,5 dargestellt werden?

    Restriktion mit Fehlermeldung:
    G(6)=-(275/(((8X(2))/(4X(3)))**2
    & +((8X(2))/(2X(3)))**2
    & -((8X(2))/(4X(3)))((8X(2))/(2*X(3))))**0.5)+1.5.0d0

    Folgende Fehlermeldung wird ausgegeben:
    error unclassifiable statement at (1)

    Restriktion ohne Fehlermeldung:
    G(6)=-(275/(((8X(2))/(4X(3)))**2
    & +((8X(2))/(2X(3)))**2
    & -((8X(2))/(4X(3)))((8X(2))/(2*X(3))))**0.5)+3/2.0d0

    Quellcode:

      SUBROUTINE GFUN(G,X)
          IMPLICIT NONE
    
          REAL*8 G(10) , X(3)
        
          G(1)= X(1)-1400.0d0
          G(2)= -X(2)+100.0d0
          G(3)= X(2)-400.0d0
          G(4)=-X(3)+2.0d0
          G(5)=-(4/3)*(0.5*X(2)-X(3))**3*3.141592654-3.141592654*(0.5*X(2)
         &     -X(3))**2*X(1)+50.0d0
          G(6)=-(275/(((8*X(2))/(4*X(3)))**2
         &     +((8*X(2))/(2*X(3)))**2
         &     -((8*X(2))/(4*X(3)))*((8*X(2))/(2*X(3))))**0.5)+1.5.0d0
          G(7)=-(275/(((12*X(2))/(4*X(3)))**2
         &     +((12*X(2))/(2*X(3)))**2
         &     -((12*X(2))/(4*X(3)))*((12*X(2))/(2*X(3))))**0.5)+1.1.0d0
          G(8)=-X(1)+0.0d0
          G(9)=-X(2)+0.0d0
          G(10)=-X(3)+0.0d0
    
          END
    
     
          REAL*8 FUNCTION FFUN(X)
          IMPLICIT NONE
    	REAL*8 X(3)
          ffun =0.25942*3.141592654*X(1)*X(2)*X(3)
         &      +1+0.25942*3.141592654*X(2)**2*X(3)
         &      +(2*0.0001*X(3)*(2*3.141592654*X(2)+X(1))
         &      +0.0008*X(3)**2*(2*3.141592654*X(2)+X(1)))
         &      +0.1592*10**5*(3.141592654*X(2)**2+3.141592654*X(2)*X(1))
    
          END
     ... Code ... 
    

    Um jeglichen Rat bin ich mit Dank verbunden!

    Beste Grüße
    Georg


  • Administrator

    Welch interessante Zahl 1.5.0 ist. Ist das 1.5 oder 5.0 oder tatsächlich etwas ganz anderes? Versuchst du überhaupt die Fehler zu verstehen? Und bitte reduziere die Menge der Klammern und erhöhe sie nicht auch noch. Klammern sind nicht ein magisches Lösungsmittel. Für irgendetwas gibt es Operatorpräzedenz.

    Wieso entwickelst du eigentlich überhaupt in Fortran?