Styleguide: Difference between revisions

From BlueM
Jump to navigation Jump to search
(Doppelpunkte bei variablendeklaration)
(variante B (mein Favorit))
Line 11: Line 11:




Vorschlag A
* Vorschlag A
<fortran>
<fortran>


Line 40: Line 40:
       END FUNCTION FOO
       END FUNCTION FOO
cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
</fortran>
* Vorschlag B
<fortran>
C----------------------------------------------------------------------
C MOD_Beispiel: Ein Modul !
c Anmerkung: blabla
C----------------------------------------------------------------------
      module MOD_Beispiel
      use MODULE_BLABLAblabla
      implicit none
     
      integer MemberInt
      contains     
C----------------------------------------------------------------------
C funktion FOO : Eine unsinnige zu Demonstrationszwecken erstellte virtuelle Fkt
c Anmerkung: gibt false zurück wenn Fehler !
C----------------------------------------------------------------------
      logical function FOO (BAR)
      use MODULE_BLABLA
        integer  i
        logical  LOK
        character(*) str
     
        FOO = .FALSE.
        !Kommentar hubidubi
        do i = 1, 10
            CALL FOOBAR()
            !Wenn fehler dann raus !
            IF (.NOT. LOK)
              ERROR = FEHLER(50, '    ', '    ', 0)
              return
            end if
        end do
        FOO = .TRUE.
        return
      end function FOO
      end module MOD_Beispiel


</fortran>
</fortran>

Revision as of 04:58, 13 September 2007

Allgemein

Visual Studio 2005 Optionen für Tabstopp-Einstellungen für Fortran
  • Die Tab-Größe sollte auf 3 Leerzeichen gesetzt sein (siehe Screenshot).
  • Schlüsselwörter (z.B. IF, FUNCTION, INTEGER etc.) sollten in Großbuchstaben geschrieben werden.
  • Die Schlüsselwörter END IF, END DO etc. sollten wie hier angegeben mit einem Leerzeichen geschrieben werden.


Formatierung

Funktionen sollten folgendermaßen formatiert werden:


  • Vorschlag A

<fortran>

CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX c Funktionsbeschreibung

     FUNCTION FOO (BAR) RESULT (LOK)

c .................................................................

     USE MODULE
     INTEGER  i
     LOGICAL  LOK
     character(*) str

c .................................................................

     LOK = .FALSE.

c Kommentar

     DO i = 1, 10
        CALL FOOBAR()
        IF (.NOT. LOK) GOTO 9999
     END DO
     LOK = .TRUE.
     GOTO 10000

c ................................................................. c Fehlerbehandlung 9999 IF (.NOT. LOK) ERROR = FEHLER(50, ' ', ' ', 0)

     GOTO 10000

c ................................................................. 10000 RETURN

     END FUNCTION FOO

cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

</fortran>

  • Vorschlag B

<fortran>

C---------------------------------------------------------------------- C MOD_Beispiel: Ein Modul ! c Anmerkung: blabla C----------------------------------------------------------------------

     module MOD_Beispiel
     use MODULE_BLABLAblabla
     implicit none
     
     integer MemberInt
     contains      

C---------------------------------------------------------------------- C funktion FOO : Eine unsinnige zu Demonstrationszwecken erstellte virtuelle Fkt c Anmerkung: gibt false zurück wenn Fehler ! C----------------------------------------------------------------------

     logical function FOO (BAR)
     use MODULE_BLABLA
        integer  i
        logical  LOK
        character(*) str
     
        FOO = .FALSE.
        !Kommentar hubidubi
        do i = 1, 10
           CALL FOOBAR()
           !Wenn fehler dann raus !
           IF (.NOT. LOK)
              ERROR = FEHLER(50, '    ', '    ', 0)
              return
           end if
        end do
        FOO = .TRUE.
        return
     end function FOO
     end module MOD_Beispiel

</fortran>


Operatoren in Fortran

in Fortran gibt es zwei Syntaxen für Operatoren <fortran> Operator Relationship .LT. or < Less than .LE. or <= Less than or equal to .EQ. or == Equal to .NE. or /= Not equal to .GT. or > Greater than .GE. or >= Greater than or equal to </fortran>

Für Weiterentwicklungen sollten die gebräuchlichen Symbole benutzt werden: <fortran> < Less than <= Less than or equal to == Equal to /= Not equal to > Greater than >= Greater than or equal to </fortran>