Styleguide: Difference between revisions
(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
- 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>