2. Ett andra program i Fortran 90

2.0 Inledning

Det andra programmet ger bara en enkel utmatning i form av ett hälsningsmeddelande. Jag har dock ökat svårigheten genom att använda även svenska bokstäver.

2.1 Programlistningen för programmet HEJ

        PROGRAM HEJ
!       Detta är ett program som skriver ut en hälsning.
        WRITE(*,*) ' Hej Östergötland ' ! 8-bits kod
        WRITE(*,*) ' Hej \sterg|tland ' ! 7-bits kod
        END      
Första raden ger namnet på programmet, den andra är en kommentar (inleds med utropstecken och varar raden ut). Den tredje och fjärde raden har till uppgift att skriva ut den enkla hälsningen " Hej Östergötland" både i 8-bitars kod, vilken rymmer de svenska tecknen, och i 7 bitars kod, där de svenska tecknen åäö ÅÄÖ är ersatta av }{| ][\, men vid utskrift på lämplig utrustning kan svenska bokstäver erhållas i stället för dessa sällan använda symboler. Dessa båda rader har även avslutande kommentar. Allmänt gäller att en kommentar ej påverkar programmet vid körning, utan endast är till för att underlätta läsning av programmet. Det är normalt tillåtet med alla tillgängliga tecken i kommentarer. Den avslutande raden är den obligatoriska avslutningen av ett program.

2.2 Körning av programmet HEJ

Vid körning av detta program under Fortran 90 erhålles normalt exakt den utskrift som förefaller naturlig. Under Fortran 77 blir i stället ofta den andra utskriftsraden "Hej sterg|tland". eftersom bakåtstrecket \ har en speciell betydelse i UNIX, nämligen att nästa tecken skall skrivas ut som det är. På VAX/VMS med Fortran 77 blev det roligt för en gammal skaraborgare, utskriften blev nämligen "Hej Vstergvtland" respektive "Hej Östergötland". Det är naturligt att den andra utskriftsraden nu blev korrekt, eftersom VAX normalt arbetar i 7-bits kod. Under 7-bits kod representeras 8-bits bokstäverna med en motsvarighet i 7-bits koden, texten blir i detta fall mycket svårläst. Översättningen av de svenska tecknen åäö ÅÄÖ blir nämligen edv EDV.

Ett större problem uppstår om man försöker skriva ut ADJÖ, dvs har en skrivsats

        WRITE (*,*) ' ADJÖ' 
i 7-bits kod. Det fungerar bra på VAX men mindre bra på UNIX. Problemet är att det avslutande Ö eller \ citerar apostrofen ', varför kompilatorn inte hittar någon avslutande apostrof kring den text som skall skrivas ut, och kompileringsfel erhålles. Det går däremot bra med
        WRITE (*,*) ' ADJÖ ' 
        WRITE (*,*) ' ADJÖÖ' 
Den första ger utmatningen ADJ , den andra ger ADJÖ, allt under förutsättning av att 7-bits kod använts tillsammans med en skrivare med svenska tecken.

Ett första program Innehåll Grunder i Fortran 90


Last modified: 3 maj 1999
boein@nsc.liu.se