FORTRAN: 1. FORTRAN

HANDLEIDING FORTRAN

HOOFDSTUK 1: FORTRAN


1.3 Variabelen

FORTRAN kent gehele getallen (INTEGER), reële getallen (REAL), logische (of Boole'se of Boolean) variabelen (LOGICAL) en tekens (CHARACTER). Omdat FORTRAN van oorsprong alleen integers en reals kende, hoeft men niet aan de compiler kenbaar te maken welke variabelen van type integer of real zijn. ``By default'' zijn variabelen van welke de naam met I t/m N begint van type integer, terwijl de overige van type real zijn.

Volgens de officiële standaard mag een FORTRAN variabele naam uit maximaal 6 tekens (letters en cijfers) bestaan en moet de naam met een letter beginnen. Vooruitlopend op de FORTRAN-90 standaard laten veel compilers echter al een langere naam en een ``underscore'' (_) in de naam toe. Hoewel de FORTRAN standaard alleen hoofdletters toestaat, zijn veel compilers soepel en geven alleen een ``warning'' (waarschuwing). Gebruik eventueel de CAPS LOCK toets bij het intikken van standaard FORTRAN in hoofdletters.

Goede namen zijn:

        I       II3     AAP     NOOT    Z12345
Foute namen zijn:
        3I      AAP.1   I+5
Toegelaten namen (maar niet volgens de FORTRAN-77 standaard) zijn:
        INVERSE_MATRIX  VIERKANTSWORTEL

FORTRAN kent de volgende zes data typen:

        INTEGER
        REAL
        DOUBLE PRECISION
        COMPLEX
        LOGICAL
        CHARACTER
Het bereik van FORTRAN variabelen is machine- en compilerafhankelijk, er is geen standaard, voor een bepaalde compiler is het bereik van een integer N bijvoorbeeld:
        -231 = -2147483648 <= N <= 231-1 = 2147483647
en van een single precision real R en een double precision real D is het bereik:
        2-126  <= R <= 2128
        2-1022 <= D <= 21024
Men kan op twee manieren het type van een variabele aangeven:

Een expliciete declaratie bestaat uit een type-aanduiding gevolgd door een lijst namen van variabelen, gescheiden door komma's. Het type is een FORTRAN sleutelwoord dat een van de bovenstaande zes data typen aanduidt; alle namen in de lijst worden van dit type. Character variabelen vereisen een lengte specificatie. Voorbeelden van expliciete declaraties:

        REAL              AREA, VAR, SURF, REAL, UNREAL
        DOUBLE PRECISION  DLEN
        COMPLEX           RESID, POLE, W, Z
        LOGICAL           BOOLE, BIT
        CHARACTER*12      NAAM
Een impliciete declaratie is van de vorm:
        IMPLICIT type (a,b,c....)
Hier duidt ``a,b,c,...'' aan, dat variabelen waarvan de naam met deze letters beginnen van dit type zijn. Zo geeft
        IMPLICIT INTEGER (P, Q, R)
aan dat alle variabelen waarvan de namen met P, Q of R beginnen van het type INTEGER zijn. Dus de variabele REAL bijvoorbeeld, is een integer binnen een subprogramma waar dit IMPLICIT statement van kracht is.

Een IMPLICIT statement moet het eerste declaratiestatement van een subprogramma zijn en werkt tot het eerstvolgende END statement. De compiler kent het alfabet, en kent bijvoorbeeld aan alle variabelen die met A, B, C, D, E of F beginnen het type LOGICAL toe door het statement

        IMPLICIT LOGICAL (A-F)
Met andere woorden, een bereik van beginletters kan gespecificeerd worden door een eerste en een laatste letter gescheiden door een minteken te geven. Nog een voorbeeld van een impliciete declaratie:
        IMPLICIT LOGICAL (L),
       *         INTEGER (I-K, M),
       *         CHARACTER*25 (N),
       *         COMPLEX (C, Z)
Dit geeft de volgende variabelen de volgende datatypes:
        LOLA    -->  LOGICAL
        JENNY   -->  INTEGER
        NORA    -->  CHARACTER*25
        CORRIE  -->  COMPLEX
Zoals boven gesteld heeft FORTRAN standaard het volgende IMPLICIT statement:
        IMPLICIT REAL (A-H, O-Z)
        IMPLICIT INTEGER (I-N)
Dat wil zeggen dat als geen declaraties gegeven worden, de compiler aanneemt dat variabelen die met A-H en O-Z beginnen van het type REAL zijn, en die met I-N beginnen van het type INTEGER.

Bij elk type variabele horen constanten. Integer constanten worden aangegeven als positieve of negatieve gehele getallen:

        I   = 23
        MIN = -1
        MAX = 33333
Enkele-precisie real getallen worden aangegeven met een punt ``.'' en eventueel met een macht van 10 die door de letter E voorafgegaan wordt:
        R      = 23.0
        PI     = 3.14
        PLANCK = 6.6252 E-34
        C      = 2.997930 E8
Dubbele-precisie real getallen hebben een punt ``.'' en altijd een macht van 10 die door de letter D aangegeven wordt:
        A      = 23.D0
        PI     = 3.14D0
        PLANCK = 6.6252 D-34
        C      = 2.997930 D8
Het reële en imaginaire deel van een komplexe constante staan tussen haakjes gescheiden door een komma. Het zuiver imaginaire getal i is in FORTRAN:
        (0.E, 1.E)
Er zijn twee logical constanten:
        .TRUE.
        .FALSE.
Een character constante staat tussen apostrofs. Denk er aan dat de character variabele en zijn lengte gedeclareerd moeten zijn:
        CHARACTER*10 STRING
        STRING = 'APENOOTJES'


Updated 30-jan-1996, pfk