NSCinfo nr 82 1993-11-30
boein@nsc.liu.se


NSCinfo nr 82 (1993-11-30)

1. Nyheter i Fortran på Cray Y-MP.

I Cray Y-MP händer det att Fortranprogram inte har nollställda variabler när programmet startar, trots att så var fallet i X-MP. Detta beror på att som standard allokerade Cray X-MP statiskt, medan Cray Y-MP som standard allokerar utnyttjande stack.

Om man vill ha den gamla varianten skriver man

cft77 -a static
eller
cf77 -Wf"-a static"

Vid användning av stack gäller att samtliga variabler placeras i stack, utom konstanter som enbart läses, liksom storheter i DATA, SAVE eller något COMMON block. Dessa senare behandlas statiskt.

Kommandon för byte kan även läggas in direkt i Fortran-koden, med direktiven CDIR$ STACK respektive CDIR$ STATIC.

BE anmärkning:

I Standard Fortran (gäller alla tre standarderna 66, 77 och 90) är det inget krav på nollställning, och det är mycket dålig programmeringsteknik att antaga nollställning.

Även en helt annan effekt kan spöka, nämligen det ovan nämnda mycket okända kommandot SAVE. Även här blir det skillnad om minnesallokeringen sker statiskt eller utnyttjande stack.

Om en variabel som varken finns i argumentlistan eller i ett COMMON block tilldelas ett värde inne i en funktion eller subrutin så glöms detta värde bort vid återhoppet till den anropande rutinen, såvida man inte gjort SAVE på den variabeln (eller på alla variabler).

Motsvarande gäller COMMON block, om ett sådant finns i de båda subrutinerna SUB1 och SUB2 som båda anropas från huvud- programmet, så kommer enligt standarden inga värden att överföras mellan de båda subrutinerna via COMMON blocket, såvida detta inte även finns med i huvudrutinen.

2. Programbiblioteket NAG.

Vi har just installerat version 15 av NAG-biblioteket och kompilerat det på den nya maskinen. Vi har nämligen noterat att alla programbibliotek måste kompileras om. Var vänlig påpeka för oss om det är något paket vi missat. Vanliga användarprogram behöver däremot inte kompileras om, men bör kompileras om.

3. Information om kösituationen.

Man bör köra ustat i Cray för att få en bra bild över kösituationen när man kör interaktivt och om man vill få med de jobb som startas inne i Cray. Härvid gäller att jobbnamn och användarnamn på SAAB sidan är ersatta med ####### respektive ZZZZZZZZ.

Alternativet till ustat är qstat -a, som dock ger mindre information.

4. LAPACK.

Vi har just kompilerat om BLAS och LAPACK på den nya maskinen.

Manualfilerna till LAPACK är nu tillgängliga. Om man ger kommandot "man sökord" når man de manualfiler som hör till Cray och bland annat innefattar en stor del av BLAS och LAPACK. Dessa rutiner inkluderas automatiskt.

Dessutom finns hela Fortran-versionen av LAPACK och BLAS utlagda i enkel precision, dubbel precision samt i komplex enkel precision. Dessa länkas in med tillägget -lblas och/eller -llapack vid kompilering, t ex

cf77 -Zp test.f -lblas -llapack -L'/usr/local/lib'
Motsvarande manualfiler erhålles med kommandot
man -M /usr/local/man/man sökord
för LAPACK och

man -M /usr/local/man/blas/man sökord
för BLAS.

För ytterligare infomation hänvisas till "man lapack" på det ena eller andra sättet samt till nyhetsbrev nr 75.

Efter uppgraderingen till nästa version av operativsystemet kommer vi att ge en fullständig förteckning över vilka rutiner från BLAS och LAPACK som finns i respektive bibliotek.

5. Tips.

Stavningen av ordet "anonym" vid användningen av anonym ftp vållar problem. Den bästa stavningen vid begäran om användarnamn är faktiskt ftp, den näst bästa är anonymous.