• No results found

nod_11_1976.pdf (1.304Mb)

N/A
N/A
Protected

Academic year: 2022

Share "nod_11_1976.pdf (1.304Mb)"

Copied!
35
0
0

Laster.... (Se fulltekst nå)

Fulltekst

(1)

hydrografiske vertikalsnitt SECTN/KDS-HR og SNITT/HR

(2)

,,1. i

Nr. 11

NORSK OSEANOGRAFISK DATASENTER (NOD)

To programmer for plotting av hydrografiske vertikalsnitt

SECTN/KDS-HR og SNITT/HR

April 1976

Cand.mag Halvor Røyset har utført dette arbeidet i forbindelse med opparbeidelse av data i Det Norske Kyststrøprosjekt.

Norges Almenvitenskapelige Forskningsråd (NAVF) har gitt Økono- misk støtte t i l prosjektet.

Reidar LeinebØ

FISKERIDIREKTORATETS HAVFORSKNINGSINSTITUTT BERGEN

(3)

SECTN/KDS-HR:

Brukar-rettleing Eksempel på plot Prinsippdiagram

Flytdiagram for innlesingsdelen Programbeskrivelse

MAP-instruksjonar Subrutinebeskrivelse:

SNITT/HR:

AKSER, SKALER SIGMAT,DISTR F_IXR, INTRPL DINTR2

CO NT UN

Side

l 2 3 4 5

8

9 lO 11 12 13

Brukar-rettleing 15

Eksempel på plot 17

Progråmbeskrivelse 18

MAP-instruksjonar 20

Flydiagram:

Lesedel 21

Behandling av data 22

Plotte-del 23

Kort algoritme 24

Subrutinebeskrivelse:

SNITTPLOT 26

AKSER,BOBLESORT 27

DEKODOVERPUNCH,OVERPUNCHll, SIGMAT 28

b,c,d

(4)

- l -

BRUKAR-RETTLEING FOR SECTN/KDS-HR:

Program: Absoluttelement av programmet har elementnamnet .SECTN/KDS-HR.

Data:

Resursbehov:

Priori tet: I, total tid < 4 min.

Sider utskrift:

<

25 Puncha kort: <. 20 000 Programrestriksjonar:

-Stasjonar med mindre enn 4 observasjonar blir ignorert.

-Maksimum 30 djuptekort pr. stasjon vert lesne.

- Maksimum 50 stasjonar i snittet.

-Manglar djupte t i l botnen på eit masterkort, så vert denne sett lik største observerte djup på sta- sjonen + 5 meter.

-større djupter enn 1500 meter vert ikkje plotta.

-Stasjonane vert ordna frå vest mot aust, såleis at vest blir t i l venstre på plottet.

l.kort - format 3I4:

l.parameter: Grense for lavaste stasjonsnr. i snittet.

2.parameter: Grense for hØgste stasjonsnr. i snittet.

3.parameter Observasjonsår.

Data som ikkje ligg innanfor desse grensene vert ignorerte.

2.kort- format 2A6:

Namn på snittet inntil 12 karakterar.

Kan også vere eit blankt kort.

Dersom dette er lik 'INGEN TEKST', så blir det ikkje plotta namne-rubrikk.

(5)

3.kort - format 2F3.0:

l.parameter: Skalafaktor for X-aksen i KM/CM.

2.parameter: Skalafaktor for Y-aksen i M/CM.

Dersom desse faktorane gir for stort plett, så beregnar programmet nye fak- torar. Platt-størrelsen er sett t i l maksimum A3-format.

Derfor: 001001 vil gi automatisk skaler- ing.

Neste kort - format ICES:

"EOF

Oseanografiske data, vanlegvis leste frå datafil ved hjelp av "ADD <datafil "7 •

Denne datafilen kan innehalde fleire stasjonar enn dei som tilhØyrer snittet.

Stasjonsnr.-grensene avgjer i så fall kva som skal takast med. ' Dette er imid- lertid ein tidskrevjande prosess. Red- user derfor datafilen t i l kun å omfatte snittet!

må avslutte data.

Eksempel på run-opplegg

"RUN,I/R ---,---/---,---,4,25,20000 . NN

"ASG,AX Programfil

"ASG,AX Datafil

~XQT Programfil.SECTN/KDS-HR

111122221976 (Stasjonsnr. llll-2222,år 1976) SNITT-NN

001001

"ADD

"EOF

"$.?!"'$. PRICE

"FIN

(X- og Y-skala lik l. gir automatisk skalering)

Datafil. (element)

(6)

-lJ 1---l

:;::lJ

z

o

--l

C~ l fil

;:o ( ] ::1J

]J C!

:::::s

r

. " JJ Cf) (fl c

rn

Cl

z

1 Cl en

- j 3

z

fil

'---. ---l ::.:-'\ Cl

o o

fil

Cf)

l ;l ø I JJ

[ -~~

:::s; 1--1 3

r OSL lldnro

. ~ ~

CD ---1

z

~

fil o

,-

::::::s:

o

f---1

·-u

l

z

fil

CD

z :::-tJ

fil

TI JJ :::::0

~l (,)

c--

fil

:AJ

z

D

N

(Jj

f---J (_ ~

CD

c· o

--J z w

Ul f---1 p

. __J

m

- 2b -

o os

- 175

1----'

CJ o ::D

<--

(fl --j

;>

:::D

'..o~z

o-

1711 ~

1---l

!----':::...-~-

CH___i,

C)

;>'

1,('

v(l

f.J

(')

(, o

o - 16~.1

;>

>,;'

'le> 'l,

-er .

_ 1 SG

C)

'OJc~~' 't~

(7)

o

N

l l

n

R \r

C:: T

c

!\ 1 11 c T

cY SQ }QQ • l V

I~l~\1_y§' J?.;-1~~~,

, o"-> ) l ro~ . l r.l'o"' ' ) ~ ~_::i C<1yU .-.::_;"<: ~:;.~.;:_:

N ·n

L:,

C>

C.fl_j <'('

C) l '

o

CJ c_

c

\ J

--{

3:

NOO-BERGEN 23a03c76

SRL_TINNHRLO,. JUNI SKLINNR 1975

INTERPOLRSJONSMETODE~

RKIMP

PROGRAM~

SECTN/KOS-HR

(8)

-lJ ::::tJ

o

~)

·;-{)

TI

~..::s ,,

Cll Ill C!

---l

z

~

~'\

CJ

Cf) l I

::u

l l

V'l

f---J

z

·--J fil ::::n

t )

r o

:I) Cf) '--

CJ

z

(fl 3

fil

---j C)

~, L~

rTJ

"p

:::;s;; TI

1---l

- " 7

---"'

TI

Ul

UJ z

;s:;

1---J

o

l

CJ o

f - - j ~ • l

z

.TI

CD z

l

ITl

TI --j :::::tJ

rn Q

z

N CD

~-__:, L tJ

CD c o

---J

z w

CJl

f----l p

.--._J

m

- 2d -

- 175

f - '

CJ o

.TI

<-

,,

) (/.)

l )0;:;-1 p)

:0

---;7

/~.L_

.. ·,;w- .

170

J .., ' •)

,;·,\~

·~) ~ 1 l/_"' ',IL.,~·-

-cP.a:

CJv '~ -

'" vv")

'v

_l(Jl]

_160

Cl

l ~

'<l : 1:-.-c: '·

V(_"'

t..J,? VV'JV(\~~

~.-"~

\.\..'1 '-'l\, v

(9)

'i,

PRINSIPPDIAGRAM FOR SECTN/KDS-HR

'Velclcv-a_sJ 'o hav- er:;

. l.. ( . .

t-11 ra c,-5evt,hy

$ ' . }

u,,

dæl-~0'-

~f>qt·>'l•rv 1

Ordna,- :;.-let_-

t;J

O' li Ct.-tre c.'

l N kkr../,·.(qc

l ._, J

uc.•;t--·,> (UfS\·

'""""'"

I''H/-( 'F:n.J'D i1ctr-lY l

}

?J,fn=JL

Ot·c(t;f!.•-c{/<t,pk

/ f·rrl e:·>.{ ff,'~~y·,.

J (', er.!).(', -.-• f-:Jc'rN<n~

cfuM,_:/u, let r~

~-- .34/n-c.ch'nc

-;r-·zx'i(

.6<.-ha, ~';i(.~"_.

O"'Y r /':>f.v1.<::..f1

~- ~ r~.<Jil /. -c:;;o•1

.

":;)IST1?

4 _ W1'011 tl· ,_ cw.JI,.,. ri

-i>-- ,'{u i' u el-t '11 c I.VT1?"PL

4-

//-/(.( i•1c,. ei.,/{',•·-

on(.t\f,! t~t-~f.:.JJ·,-r{,

+-

$v.6•-ccfcJ?(

Sl:~?i~MT 6ct('f·, J 1 rt ... J, ·~i l,·:.""-.

4 -

..

o'

-1).--

e

tiLC,(,J•i>J

pl,, (./c ro l-c i1,{ r•

4-

-t::========::t

r

l l l

l

l l l

r

Flytdiagram l

Vd071

xv

l( !J" <- 1'-'td { • -;;;':.<.'-It' ...

,~/(};';(;'1'\':'1- hr.-,-

lu.Y- n,/(},<tl.

•D 1 -~-

""CI-C:Jf1(Vr- C(C'I' .Bo.6tc.d {i;('

"./l .:C 1V r!\ 2

"'n/.c 'i/> a lcrl<:.

,:_(1c'tc~~~ '-• J ~ lt"-t <t;f'. ~ ~r~:J

Jillcl-t,!)ol·o·c , ...

bolh len' ·l((,_ ·

·"'·'l

x·s.o r

~ - S.w'TN<..;.,/,r :INTi\'?i..

~?t'.::.ri·~._ ... , t;: '1'.1 l."·

~ (/- - . ' ', . , · ' Il)(/(>;;(

Sa&tcclcltc

tz)N /'":(/,V

(10)

DETALJ-DIAGRAM FOR

LESEDELE I SECTN/KDS-HR

r_:}:( {(.!;:; 0,'(',·1'' J,.,

~l.:o .-,·'c.;(>,!-:~,_ el 1--...-e---lj,y;cff~ 'Z)Z3-ttf~

s

tu-< t: r;

r

;:?.(! F'·"f Nei.

-t;>--

-~--

- 4 -

8.ubrc.L+c'n<

f::IX'l?

.L'"-<: •-J>l a....\''-

,,,

'

o-t "(.,_ .... l=;.. f.t~~, .... i!

Flytdiagram 2

1 - - 4-

-

'VJck!Pc{

rn {( s l{'!-~-;()

rf

1 - -

\r

-

tie~·

Nec'

(11)

J?ROGRAMBESKRIVELSE FOR SECTN/I<DS-HR:,

Dette programmet er ei omarbeidd utgåve av programmet SECTN/INDIA- INK som var skrive av Kim David Saunders, ved Geofysisk Institutt i 1973~

Dokumentasjonen t i l det opprinnelege programmet var svært mangelfull, noko som også vil setje sitt preg på denne dokumentasjonen. Ein kan derfor ikkje fullstendig sjå bort frå at feil framleis kan forekomme.

Eg vil derfor be brukarane om å rapportere desse.

Endringar som er gjorde:

Bergen, februar 1976 Halvor RØyset

- Subrutinen CONTU2 er fjerna. Denne rutinen gav sjikt-teikning av snittet på linje-printar, men desse teikningane gav liten informasjon.

- Feil i bruken av avstandsfunksjonen DISTR er retta.

- Programdelen som teikna akserammer og plasserte origo er om- arbeidd. Derfor kan ein no lese inn skalafaktorane for aksane frå data-kort.

- Subrutinene TIC,SPLINE og RECT er fjerna sidan dei no ikkje trengs i programmet.

Dessutan er fleire overflØdige setningar og parameterar fjerna på forskjellige plassar og nye kommentarar er innsette, såleis at eg no vonar at programmet skal vere leseleg.

Når det gjeld prinsippet for programmet, så viser eg t i l Flytdiagram l. Detalj-diagram for lese-delen er å finne på Flydiagram 2.

(12)

- 6 -

Endringar som kan gjerast:

Maksimal plett-størrelse:

Maksimal plottstørrelse er sett t i l A3-format, men dette kan endrast i avsnittet "INITIALlZE THE PLOT ---".

MAXX er maks. lengde og MAXY er maks hØgde av plottet.

Parameterar t i l kontur-rutinen:

Dei viktigaste parameterane får verdiar i avsnittet

"CHOOSE THE VARIABLE TO BE CONTOURED".

AR(l): Intervall mellom kvar kontur.

AR ( 2) :. Minimumsverdi for konturane som blir plotta.

AR(3): Maksimumsverdi for konturane som blir plotta.

Desse parameterane kan det ofte vere aktuelt å forandre.

Standardverdiar sette i programmet:

AR(l) AR ( 2) AR ( 3)

Temp 0.5°C -2. 0°C 15.0°C

/Salt 0.10 0/00 32.0 0/00 38.0 0/00

Sigma-t 0.10 23.0 28.5

NB! Urimeleg stor avstand mellom AR(2) og AR(3) gir unødvendig stort tidsforbruk i rutinen CONTUN.

Ekstrapolasjon av data:

For å oppnå rimel~_g:e konturar nær botnen, vert det ekstrapolert 10 datapunkt under botn-konturen. (sjå avsnittet "COMPUTE THE INPUT MATRIX").

Metode:

La E vere ein forventa ekstremalverdi for den observerte størrelsen. I programmet har ein brukt fØlgjande verdier:

Temp: E=-1.2°C, salt: E=34.8 0/00, sigma-t: E=28.2 La T vere observasjonen nærast botnen på ein stasjon.

(13)

Ekstrapolerer så verdiane T(I) ved hjelp av formelen.

T(I)=(T-E)~EXP(-D*I)+E der I=l(l)lO

D er -e-iri·-beregna størrelse avhengig av djupta såleis at O.OS<D<l. T(I) avtek såleis eksponentielt motE.

Andre rimelege ekstrapolasjonsmetodar skulle kunne nyttast.

Interpolasjon av data:

Interpolasjonsmetode: Akima, subrutine INTRPL (sjå subrutine be- skrivelse). Denne rutinen kan uten vidare byttast ut med ei vilkårleg.standard interpolasjonsmetode (f.eks. henta frå MATH- -PACK-rutinene). Dette skulle enkelt la seg realisere ved:

SUBROUTINE INTRPL(IU,N,X,Y,M,U,V) IU=6

<

parametertilpassing mellom ny og gammel rutine/

CALL standard rutine (parameterliste)

<

parametertilpassing for ut-data>

RE TURN END

Subrutinen DINTR2 er eit interpolasjonsskjema som bygger på INTRPL og er spesielt tilpassa plotterutinen CONTUN.

Kontur-rutine:

Rutinen CONTUN er ei såkalt "masked" -kontur-rutine.

Ved hjelp av ein "mask"-vektor FSMSK (og ein vektor FS definert i CONTUN) unngår ein å tegne konturar under botn-konturen.

FSMSK er intialisert i avsnittet "COMPUTE THE MASK FOR CONTUN".

Ved eit eventuelt bytte av kontur-rutine skal ein vere oppmerk- som på at CONTUN legg plottar-origo i nedste, venstre hjØrnet og referer alle djupter t i l dette. Input matrisen TT er også til- passa dette origo (sjå DINTR2).

RekkefØlge av stasjonane:

I avsnittet "ORDER DATA BY ---" blir stasjonane ordna etter lengdegrad i rekkefØlge frå vest mot aust. Derfor blir alltid vestlegaste stasjon t i l venstre på plottet.

(14)

- 8 -

Metode: "Boble-sortering" med fysisk omplassering av alle data.

Det er relativt enkelt å forandre sorteringsrekkefØlgen, f.eks.

til sør - nord ved å bruke breiddegrader i staden for lengde- grader som sorteringsgrunnlag.

MAP-instruksjonar

Fullstendig MAP-element ligg på elementet MAPSECTN/KDS-HR Det skal innehalde fØlgande instruksjonar:

IN P.SECTN/KDS-HR,.DISTR/KDS,.DINTR2/KDS

IN P.INTRPL/KDS,.FIXR/KDS,.CONTUN/KDS,.AKSER/SECTN IN P.SIGMAT/KDS,.SKALER/HR

LIB UIB$*CALCMP.

END

Eventuelle endringar bØr lagast som nye versjonar av programmet, såleis at originalutgåva alltid er intakt.

' • -

(15)

Subrutinebeskrivelse:

AKSER: Symbolsk elementnamn: ;AKSER/SECTN

Rutine som teiknar eit aksekors, plasserer plottar origo på optimal plass, set korrekt enhet på aksane og skriv tekst.

Rutinen er spesielt tilpassa SECTN:

Aksekorset har origo i øverste venstre hjørnet, mens origo t i l plottaren er sett til nederste venstre hjØrnet.

Kallesekvens: AKSER(MAXX,MAXY,SKALAX,SKALAY,XTEKST,YTEKST, FIGTXl,FIGTX2)

Paramet.erar:

MAXX-REAL MAXY-REAL SKALAX-REAL SKAL Y-REAL XTEKST YTEKST FIGTXl FIGTX2

Max. lengde t i l plottet.

Max. breidde t i l plottet.

Skala pr. cm. for x-aksen.

Skala pr. cm. for y-aksen.

Tekst på X-aksen, inntil 12 karakterar.

Tekst på Y-aksen, inntil 12 karakterar.

Figurtekst på plottet, inntil 12 karakterar.

li 11 11 11 11 11 11

Dersom FIGTXl

=

'INGEN TEKST' blir det ikkje sett namnerubrikk på plottet.

SKALER: Symbolsk elementnamn: .SKALER/HR

Rutine som rundar av eit tal oppover t i l næraste tal av forma 1.,2.,4.,5. eller ~-~lO**N.

Kallesekvens: CALL SKALER(S)

Parameter: S-REAL: Tall som skal avrundast (både inn- og ut- parameter) .

Subrutinen kan f.eks. brukast t i l avrunding av skalafatorar.

(16)

- lO -

SIGMAT: Symbolsk elementnamn: SIGMAT/KDS

Rutine som beregner sigma-t verdiar etter standard formlar.

Kallesekvens: CALL SIGMAT(TEMP,SALT,XSO,SIGMA) Parameterar:

DISTR:

TEMP-REAL SALT-REAL XSO-REAL SIGMA-REAL

Temperatur (innparameter) Saltinnhald " 11

Sigma-o (~~

0

) (utparameter) Si gma- t ( ·.<l t) 11 11

Symbolsk elementnamn: .DISTR/KDS

Funksjon som beregnar avstanden mellom to posisjonar i km langs ein stor sirkel.

Kallesekvens: ... =DISTR(LONGl,LATl,LONG2,LAT2) Parameter:

LONGl-REAL LAT l-REAL LONG2-REAL LAT2-REAL

Lengdegrad for l. posisjon.

Breiddegrad for l. posisjon.

Lengdegrad for .. 2. posisjon.

Breiddegrad for 2. posisjon.

Posisjonane må vere gitt i hundredels grader i staden for minutt.

Vestleg lengde og sØrleg breidde blir markerte med negativt 'for- tegn. Eksempel: 105°30" Vest blir LONG

=

-105.50

Metode:

l

Beregnar den eksakte vinkelen v mellom dei to posisjonane, og reknar så ~t le~gda av bogen s mellom stasjonane. Tar hensyn t i l at jord-kloden er svakt eliptisk.

La (Ll,Bl) og (L2,B2) vere dei to posisjonane. ' Kan vise at:

cosV=sinBlsinB2+cosBlcosB2cos(Ll-L2)

*V=arccos( 11 11

Dersom jorda er kuleforma blir s=R~V

Reknar vi jorda eliptisk med halvaksan A og B, kan vi beregne ein midlare jord- radius:

(17)

FIXR:

l

R-~====~~========~

-

v(c~sB) 2 +

(si;:s)

2

der B

= i (B~l+B2)

På grunn av at beregningsmetoden for vinkelen v er Ømfinteleg for feil, arbeider rutinen med dobbelpresisjon i trigonometriske funksjonar.

Symolsk element: .FIXR/KDS Assembly-rutine som finn og fjernar overpunch.

Kallesekvens: CALL FIXR(FDATA,I,CODE) Parameterar:

FDATA-FIELDATA STRENG: Data beståande av 6 karakterar plassert i eit INTEGER-ord ved hjelp av format A6.

(Inn/ut-parameter).

I-INTEGER: Nummer O - 5 på karakter som skal dekodast.

( Innparameter) .

CODE-INTEGER: Kode for type overpunch (utparameter) . Det foreligg ingen nærare dokumentasjon av denne rutinen, så interesserte brukarar må studere anven- delsen i SECTN og ICESRPP.

INTRPL: Symbolsk element: .INTRPL/KDS

Interpolasjonsrutinen for ein funksjon i ein variabel.

Kallesekvens: CALL INTRPL(IU,N,X,Y,M,U,V) Innparameterar:

IU-INTEGER: Standard utskrift enhet for feilmeldingar.

Vanlegvis IU=6.

N -INTEGER: Antal datapunkt.

X -REAL Vektor av dimensjon N som inneheld X-verdiane der funksjonen er gittli stigande rekkefØlgje.

Y -REAL Vektor av dimensjon N som inneheld funksjons- verdiane Y (X) •

(18)

- 12 -

M -INTEGER: Antal punkt der funksjonen skal interpolerast.

U -REAL Vektor av dimensjon M som inneheld X-verdiane t i l interpolasjonspunkta i stigande rekkefØlge.

Ut-parameter:

V -REAL Vektor av dimensjon M som inneheld interpola- sjonsverdiane Y(U).

Denne algorutinen er publisert i COMM. ACM. lS(lO)OCT 1972

Forfatter: Hiroshi Akima, Institute of Telecomunications Science, Boulder Colo.

DINTR2:

Symbolsk element: .DINTR2/KDS

Rutine som ved bruk av INTRPL foretar interpolasjon av hydro- grafiske data både i horisontale og vertikale plan.

Kallesekvens: CALL DINTR2(DATA,AVST,DJUPTE,OBSANT,STANT,NN,~~'

XMIN,XMAX,YMIN,YMAX,TT,XX,YY) Innparameterar:

DATA-REAL AVST-REAL DJUPTE-REAL OBSANT-INTEGER STANT-INTEGER NN,MM-INTEGER XMIN,XMAX-REAL YMIN,YMAX-REAL

Datamatrise (salt temp, sigma-t, etc) + ekstrapolerte data på kvar stasjon Vektor som inneheld avstandane fra vest- legaste stasjon t i l aktuell stasjon;

Matrise som inneheld observasjonsdjuptene på kvar stasjon.

Vektor som inneheld observasjonsantal +10 ekstrapolasjonar på kvar stasjon.

Antal stasjonar i snittet.

Antal interpolasjonspunkt i horisontale og vertikale plan. I SECTN set lik 100.

Min. og maks. avstand på snittet.

Min. og maks. djupte på snittet.

(19)

Utparameterar:

TT-REAL

XX-REAL YY-REAL

(NN+l)*(MM+l) - matrise som inneheld

alle dei interpolerte data. Denne matrisa er grunnlaget for kontur-rutinen

CONTUN og spesielt tilpassa denne rutinen.

Vektor som inneheld avstanden t i l alle vertikale interpolasjons-sjikt.

Vektor som inneheld djupta t i l alle hori- sontale interpolasjons-sjikt.

Først blir det interpolert nye verdiar for ca. kvar 15 m frå O - 1500 m på kvar stasjon.

Ut frå desse data vert det så interpolert nye data i 100 verti- kale sjikt mellom stasjonane.

Til slutt vert matrisa TT snudd "opp-~ed". Dette for å tilpasse data t i l rutinen CONTUN~

CONTUN: Symbolsk elementnamn: .CONTUN/KDS

Rutine som tegnar konturar på grunnlag av matrisen TT(IMAX,J~~X).

Kallesekvens CALL CONTUN(TT,IMAX,JMAX,FS,AR,MODE,SCALEI,SCALEJ, THETA,NONO,SIZE,FSMSK,NOGT)

Parameterar:

TT-REAL

IMAX,JMAX-INTEGER FS,FSMSK -INTEGER MODE-INTEGER

IMAX~MAX - matrise som inneheld kontur- data.

Dimensjon t i l matrisen.

Maske-vektorar av ukjent konstruksjon.

Sjå hovedprogram.

Rutinen kan brukast i 5 ulike mod!i (sjå program-listing). I SECTN er MODE

=

4. Då er

AR(l) AR ( 2) AR ( 3)

Intervall mellom kvar kontur.

Minimums-kontur.

Maksimums-kontur.

(20)

- 14 -

SCALEI,SCALEJ-REAL: Plott-punkt pr. cm.

THETA-REAL NONO-INTEGER

SIZE-REAL NOGT-INTEGER

Vinkel som etiketten på konturane ·vert skriven i.

Kontrollparameter. Dersom NONO

<

O blir det ikkje skrive etikett på kon~

tur ane

HØgde i cm. på etiketten.

ANTAL desimalar i etiketten som skal skrivast. Dersom NOGT

<

O så blir ein rimeleg verdi beregna.

Rutinen teiknar ikkje akseramme eller set origo.

Plottar - origo er i ~edste, ventre hjørnet.

(21)

BRUKARRETTLEING FOR SNITT/HR:

Resurskrav:

Priori tet: I, tidskrav< 4 min.

Utskrift 25 sider

Puncha kort: ca. 3000 kort pr. plett.

Oseanografiske data:

Datafilen må berre innehalde dei data som hØyrer t i l snittet.

Eksempel på run-opplegg:

"RUN, I/R--- ,_--- /---,---,4, 25,2000 O • NN

"ASG,AX Programfil

"ASG,AX Datafil

"XQT PROGRAMFIL .SNITT/HR DIMENSIONSKORT:

FORMAT:2I3

l. Parameter: .maksimumsgrense for antal· stasjonar i snittet 2. Parameter: maksimumsgrense for antal observasjonar på ein

stasjon.

OSEANOGRAFISKE DATA:

FORl"vlAT: ICES.

Alle datakort som skal plottast. Vanlegvis henta fra datafil ved hjelp av "ADD DATA. (Elementnavn)

NB! Datakort(-fil) må avsluttast med "EOF NAMNEKORT:

FORMAT: Sl2

Namn på snittet. ·Inntil 12 karakterar.

Dersom dette er lik 1 INGEN TEKST 1 , så blir det ikkje sett namnerubrikk på plottet.

SKALERINGSKORT:

FORMAT:2I3

l . Parameter: Skala t i l X-aksen i km/cm.

2. Parameter: Skala t i l Y-aksen i m/cm.

Dersom disse skalaverdiane ikkje er akseptable, så vil pro- grammet beregne nye verdiar.

Derfor: 001001 vil normalt gi·automatisk skalering.

Anbefalt verdi: 005025

(22)

- 16 -

SORTERINGS-KRITERIUM:

FORMAT: Sl

Avgjer kva som skal vere t i l venstre på plottet. Tillatne

verdiar: 'NORD' ,'SOER' ,'AUST' eller 'VEST'. (Berre fØrste karak- ter er signifikant) .

PLOTT-TYPER:

FORMAT:S2

Eitt kort for kvart plett. Tillatne typer:

'TEMP' ,'SALT' eller 'SIGMA-T'.

er signi~ikante).

(Berre dei 2 fØrste karakterane

"$+$.PRICE

"FIN

Tolking av resultat:

'?'

t i l venstre for observasjonspunktet betyr usikker djupte.

'?'

t i l hØgre for observasjonsverdien betyr usikre data.

(23)

o

u c...,

c: '"O 1-3

trj H

:s:

~

(:.J G'l

~)

G

G:---1

o

w

..._.]

-=.:l

l

-l

l

07 ·p·r

... .;.-[\...

+ g7 < 4)i'1

+ .!.? .. 4~5

+ 2'7 -455 +2_7 .. 455

+ 2? -4'3S

+ 2" -5' 4

7 2: .. ss::;

+2"7 ... S'j7

2'7 C"'7''

+ , ... ;;; . .::::_

_,_ 27-590

+ 27 -GGS

+ 2? -G35

25 F

7 , ... C"•'<' J~...>L l ' 1)7 c-'C':'

:J:21 ~s~r + 2? -SG3

+ 2? .SGB

+27-5l2

+ 27-520

+ 27 .. 52'1

+ i~

+ 2: -SC4

+2.'? -Sll

~ 27 -!324-

---~

-

''·,,

l

AVSTAND I KM:

27.64B

50

j 27~4~~

-L t")~ C: r·~)

+

27

:sti1

+27-.SHJ +2? .. 452

+2:.sos +27-C7

+27-514 +27-.SQQ

~27 ... 515 +2? .. 513

+ -'?. + 2? , .. SL'3

+2'? .. srs +27 .. sss

+ 2'? ~S7S + 27-575

+2?.fl:J1 + 27-591

+ 2? -62L +2? -G8l

+27 -GS!

+ 27 -S34

+ 2? .')? ~-

+ ?

l

l

75 100

l

2L5G; 2r! -459 2.7 .. 408

.L l l l l ~ l l l l l

-!-27 _,.." 1

+

2'<4~,-0-- + 21 -.3:.;2

+ 27 .463 + 2~ .4':\4 + 27 •. J'5<:

+27 ~.52~ +27 .cc +27-.<;.~7

+ 27 ~.S2S + 21' .. 473 +21 -OS

+27 .. S2.S +2?-47S + 27 -4'1-2

_,_ 27.540 + 2" -4·BE +27 -4-54-

+2'1 -542 + 2'7 .. 534- + 27 .. s !9

+27 -576 +2'; -548- + 27 .s++

+27 .. s~s ..L. l).., C: C"---:

• '- • .... J·:::>v + 27 .. 547

+ 27 ~595 ~2'? ~SIJ.:J + 2.? ... ~jSS"

..:- 2? .. !)13 +2:~S'7C + 21 .. 570

·+2? .. S?S +2'? .. ~B4- +27 .5?3

+2.?.'3-::'l + 2? .594-

125

til

X'

00

3 CD

"d CD l-'

"d PJo

"d l-' o

eT

l-' -...l

(24)

PROGRAMBESKRIVELSE FOR SNITT/HR:

- 18 -

Til Fortran-programmerarar og andre uvitande:

Hovedprogrammet og dei fleste subrutinene er skrivne i NU ALGOL.

Motiveringa for det var å prøve å skape eit oversikteleg program som langt på veg er sjØlv-dokumenterande. Men for at innbarka FORTRAN- brukarar skal kunne lese programmet, trengs det ein viss kjenskap t i l grunnbegrepa i Algol. For ein fullstendig beskrivelse viser eg t i l Conradi & .Kvitsand: "Programmering med hovedvekt på NU ALGOL" og til UP-7884: "NU ALGOL Programmer Reference".

Nokre grunnbeg~ep skal eg likevel ta med:

Det er likegyldig kva kollonne ein startar å skrive i. Ei setning blir alltid avslutta med semikolon (;) eller dollar ($). Ei setning kan derfor gå over fleire linjerteller ein kan ha fleire setningar på ei linje ..

Eit variabelnamn kan bestå av inntil 72 alfa-numeriske tegn, men berre dei 12 første er signifikante. Alle variabelnamn må deklare- rast. Deklarasjon av indekserte variable har forma:<type;> ARRAY

<namn~(il:i2) der i l er nedre grense for indeksen (gjerne negativ) og i2erøvre grense. Også namna på eksterne subrutiner (prosedyrer) må deklarerast i EXTERNAL PROCEDURE.

DO-lØkker: Dei mest brukte do-lØkkene i Nu-Algol har forma:

FOR variabelnamn :=(nl,S,n2)DO ...

eller: FOR variabelnamn :=aritm.utrykk WHILE logisk utr. DO ...

der nl er nedre grense, S er steglengde og n2 er øvre grense.

Det viktigste begrepet-i Algol er blokk-begrepet og samansette set- ningar. Ved hjelp av desse kan ein så godt som fullstendig unngå bruk av GO TO.

Samansett setning:

BEGIN s1;s2;s3; ... ;sn END kommentar; der 81,---,sn er enkle algol- setningar. Logisk sett er no alt mellom BEGIN og END å oppfatte som ei algol-setning.

(25)

Blokk:

BEGIN deklarasjonar;s1; •.. ;sn END kommentar;

Her kan ein deklarere nye variable midt inne i programmet, og disse variable er lokale t i l blokka, dvs. at utanfor blokka er namna

ukjende eller kan re-deklarerast.

Initialisering av variable deklarert i ei blokk:

Ved inngangen t i l ei blokk vil alle variable som er deklarerte i blokka bli nullstilt (logisk variable blir sett lik FALSE). Vil ein unngå dette, så kan ein plassere OWN foran deklarasjonen. I så fall vil dei bli sett lik den verdien dei hadde sist dei var refererte

(tilsvarer Fortran-variable).

Algol-syntaksen er svært fleksibel. Stort sett gjeld at "Har du lyst, har du lov", men ein bØr også tenke l i t t på tidsforbruk ved konstruksjon av "elegante" setningar.

Så vil eg berre ønske alle nysgjerrige lykke til~

Bergen, februar 1976 Halvor RØyset

(26)

- 20 -

Kompilering og mapping:

Algol kompilatoren:

Spesielle opsjonar: Ved kompilering av eksterne prosedyrar må ein bruke E-opsjon.

R-opsjon:

Y-opsjon:

Denne opsjonen fjernar alle testar som undersøker indek- sar ligg innanfor det tillatne område. BØr ikkje bru- kast under test-kØyring, men bØr brukast ved produksjons- kØyring fordi den gir raskare koder.

Fjernar "warningar". Kompilatoren gir enkelte misvisande

"warningar".

Z-opsjon: Gir ingeh linjenummer ved "run-time" feilmeldingar.

· Liksom R-opsjon bØr denne også brukast t i l produksjons- kØyring.

RYZ-opsjonar er brukt ved kompilering av alle programmene i SNITT/HR.

Fortran kompilator~

Nu-Algol er enno (febr. 1976) ikkje oppdatert for Fortran-T serien.

Ein må derfor inntil vidare benytte Fortran-lOA kompilatoren. Kompi-

latorsetni~ga blir derfor:

"UIB$-fFORlOA.FOR,opsjonar

Tilsvarande må ein også bruke FORlOA.-versjonen av plotterutinene.

Map prosessor:

På grunn av FORlOA., må ein også i mappingen legge inn nokre ekstra instruksjonar.

Det symbolske map-elementet har namnet .SNITT/MAP Det inneheld fØlgjande _instruksjonar:

IN P.SNITT/HR,.DEKODER/HR,.OVERPUNCHll/HR IN BOBLESORT/HR, .AKSER/HR,.SNITTPLOT/HR

IN P. DISTR/FORlOA, . INTRPL/FORlOA, .• SIGMAT/FORlOA IN P.SKALER/FORlOA

LIB UIB$*CALCMP10A.

LIB UIB$*RBIB$10A.

LIB UIB$*FOR10A.

END

Skulle RBIB og FORlOA vere "unloaded", så må ein fØrst ta "ASG,AX"på desse system-filane.

(27)

FLYTDIAGRAM FOR SNITT/HR.

c SNIT<)

.j

FLYTDIAGRAM l.

LESEDEL.

1 - - - < 1 · · - - - ·---·-···

les &s-ecuuJ- fj rC< ;/1~<!./ce c:/.o. .f,x.,

'- M a{; /o--Jco rf::

'2

-:~>--

--<OI-

S lcric.J'

cj~Z;-fmcld ( 't~EJ - - - · · .. :\>-··· ..

l l

!

i

l

l l

A

l

l

l

l l

l

l

l

-.. J

l

~

Ne/'' V 1 J

1---~--·-··•"·-·-.. -· ... ____ " ___ "_ ... -·-·-··-·-~---· .. ---·--J

(28)

SNITT/HR.

T ·Ir l

l

Å•

l l

l

l_

-4

- 22 -

.' :N!a.119kr

).;;.y,l-r'

.;.d (:,(/{It

'Z ,

l.e6 tJ-~-J,ld i'fj)-

1-,/!c u:. c u' 1 ,

Ordna.t"

s+(Å.zi~hCÅ/'Jo(' .u.l-

·/l·l del/-< k•t'- -/vncr!:

13.1.-/<~:J )1(uv~

Ctt/.S ·la..ncl<' 1·1

IlJe l(()~<, Sf(Q -

FLYTDIAGRAM 2

BEHANDLING AV DATA.

+-

J-ro·-:::r~-fl.-·~7;;_1;;,:-"'d'·

c:DL.S.

rt?.

be1J'H~~ c~cr-J-.J'.

---K---·--

(29)

SNITT/HR

ve o "F

.at.a....

vt--111/

·---1>·--···---·

FLYTDIAGRAM 3 . PLOTTE-DEL.

---1(

STO

py:-)

+

-;;.;~:f:~ll~---r(-<.fr~J(

S.l6i /v/;J.

r

(30)

- 24 -

SNITT/HR

Programmet finst også i ein versjon SNITT/INTERAKTIV for bruk frå interaktiv terminal. Denne versjonen er

brukar-rettleing skulle vere overflØdig.

filane, må ein. rekne med ventetid på ca.

Algoritme for programmet.

konverserande og ekstra På grunn av I/O~tida t i l 2 min. pr. plot.

l. Les inn data, behandlar overpunch og feil. Skriv feil- meldingar.

2. Undersøker om djupte til botn manglar på nokon av master- korta. Set i så fall djupte lik største observasjonsdjup på stasjonen + 10 meter.

4. Les. inn ordningskriterium og sorter stasjonane ut frå dette.

Metode: Boblesortering med peikar-vektor.

5. Beregn avstanden mellom stasjonane ved hjelp av funksjonen DISTR.

6. Les forslag t i l skalafaktorar og undersøk om desse er aksep- table, eventuelt beregn nye.

7. Les inn plot-typer og beregn sigma-t· dersom det er naudsynt.

Utfør plot.

9. Stopp.

Oversikt over variable m.m.

Elementet SNITT/DOKUMENT inneheld m.a. oversikt over subrutinar og hovudvariable i programmet.

Feil i data:

Programmet behandlar feil som kan forekome i data.

Kort med uleselege data blir ignorerte og feilmeldingar utskrivne.

Programmet undersøker ikkje om det forekjem dubliseringar av kort.

Overpunch:

Behandlar kun overpunch i djupte, salt og temperatur på hydro-master- kort. All informasjon blir teken vare på. Usikker-hetsoverpunch vert markert ved å addere t i l 10000 i vedkomande data. Ved listing

(31)

på plottar vert dette markert med

'?'.

Usikkerhet i djupte vert markert med

'?'

t i l venstre for punktet, medan usikkerhet i data vert markert med

'?'

t i l hØgre for observasjonsverdien.

Plott-format:

Maksimum plott-format er sett t i l 60 x 80 cm.

Dette kan forandrast ved å endre XMAX og YMAX i plottedelen av pro- grammet.

Andre oseanografiske variable:

Beregning og listing av andre variable basert på observasjon av salt og temperatur, kan enklast skje ved å bytte ut sigma-t rutinen med den nye rutinen.

(32)

- 26 -

Subrutine - Spesifikasjon:

Symbolsk elementnamn i parantes:

Nu Algol prosedyrer:

SNITTPLOT: ( SNITTPLOT /HR) •

Prosedyre som gir listing av vertikalsnittet på plottar.

Kallesekvens:

SNITTPLOT(SKALA,MAX,PEIK,STNR,XKOORD,YKOORD,OBSV,DEC,STASJANT, OBSANT,TEKSTl,TEKST2)

Parameterar:

SKALA-REAL:

MAX-REAL:

PEIK-INTEGER:

STNR-STRING:

XKOORD-REAL:

YKOORD-INTEGER:

Vektor som inneheld h.h.v. skala for:X- og Y-aksen.

Vektor som inneheld h.h.v. maks.lengde for X- og Y-aksen.

Vektor som inneheld den ordna rekkefØlgen på stasjonane.

Vektor som inneheld stasjonsnummera.

Vektor som inneheld avstandane mellom sta- sjonane.

Matrise som inneheld observasjonsdjuptene på kvar stasjon.

OBSV-REAL: Matrise som inneheld alle observasjonsverdiane som skal plottast.

DEC-INTEGER: Antal desimaler som skal skrivast.

STASJANT-INTEGER: Antal stasjonar i snittet.

• , (

OBSANT-INTEGER: Vektor som inneheld ~ntal observasjonar på kvar stasjon.

TEKSTl,TEKST2-STRING: Figurtekst.

Dersom TEKST2

=

'INGEN TEKST' blir det ikkje sett namnerubrikk på plottet. Prosedyren plottar ikkje botn-data.

Prosedyren brukar den eksterne prosedyren AKSER.

(33)

AKSER: (AKSER/HR) .

Prosedyre som plasserar origo t i l plottaren på optimal plass og teiknar eit aksekors med tekst og enheter på aksane. Origo i øver- ste)venstre hjØrnet.

Kallesekvens:

AKSER(MAX,SKALA,XTEKST,YTEKST) Parameterar:

MAX-REAL:

SKALA-REAL:

Vektor som inneheld lengde av h.h.v. X- og Y-aksen.

Vektor som inneheld skala for h.h.v. X- og Y-aksen.

XTEKST,YTEKST-STRING: Tekst som blir plassert midt på aksane.

' -

Aksane får korrekte enheter berre når FACTOR

=

l.

BOBLESORT: (BOBLESORT/HR).

Prosedyre som utfører boblesortering i stigande eller avtakande rekkefØlgje ved bruk av ein peikar-vektor.

Kallesekvens:

BOBLESORT(A,PEIK,N,TYPE) Parameterar:

A-REAL:

PEIK-INTEGER:

N-INTEGER:

TYPE-STRING:

Vektor som skal sorterast.

Vektor som inneheld den ordna rekkefØlgjen etter sortering (Utparameter) .

Antal element i A.

Kan vere 'STIGANDE' eller 'AVTAKANDE'.

Avgjer om A skal ordnast i stigande eller avtakande rekkefØlgje.

Ved eventuelle feil i TYPE, så får ein alltid stigande rekkefØlgje.

(34)

- 28 -

DEKODEOVERPUNCH: (DEKODER/HR) .

Prosedyren som behandlar overpunch i kolonne 28-40 på eit hydro- djupte-kort.

Kallesekvens:

DEKODEOVERPUNCH(KORT,DJUPTE,TEMP,SALT,PUNCHEFEIL) Innparameter:

KORT-STRING:

Utparameterar: ·

DJUPTE-INTEGER:

Innhaldet av eit hydro-djupte kort.

Observasjonsdjupte.

SALT,TEMP-REAL: Observasjonsverdiar for salt og temperatur.

PUNCHEFEIL-BOOLEAN: Logisk variable ~om vert sett lik TRUE der- som kortet inneheld feil.

Usikkerhets-overpunch vert markert ved å addere t i l 10000 i vedkom- mande observasjon.

Bruker den eksterne prosedyren OVERPUNCHll.

OVERPUNCHll: (OVERPUNCHll/HR) .

Prosedyre som fjernar ein 11-overpunch frå ein karakter.

Kallesekvens:

OVERPUNCHll(KARAKTER) Inn/Utparameter:

KARAKTER-STRING: Karakteren som inneheld overpunch.

Fortran-rutiner:

·siGMAT: (SIGMAT/HR).

Rutine som beregnar sigma-t. Spesielt tilpassa SNITT/HR.

(35)

Ka11esekvens:

SIG111AT(TEMP,SALT,SIG111A) Innparameterar:

TEMP,SALT-REAL: Temperatur og sa1tobservasjon.

Utparameter:

SIGMA-REAL: Beregna sigma-t verdi.

DISTR,INTRPL og SKALER:

Sjå'beskrive1se under SECTN/KDS-HR side 9 - 11.

Referanser

RELATERTE DOKUMENTER

avtale mellom Sandnes kommune og Statens vegvesen Rogaland.. Miljøpakken inneheld ein avtale om planlegging og gjennomføring av miljøtiltak i

Vegliste for fylkes- og kommunale vegar i Møre og Romsdal fylke inneheld opplysningar om tillaten totalvekt og aksellast på vegen.. Aksellast

Vegliste for fylkes- og kommunale vegar i Møre og Romsdal fylke inneheld opplysningar om tillaten totalvekt og aksellast på vegen.. Aksellast

Vegliste for fylkes- og kommunale vegar i Møre og Romsdal fylke inneheld opplysningar om tillaten totalvekt og aksellast på vegen.. Aksellast

Vegliste for fylkes- og kommunale vegar i Møre og Romsdal fylke inneheld opplysningar om tillaten totalvekt og aksellast på vegen.. Aksellast

Vegliste for fylkes- og kommunale vegar i Møre og Romsdal fylke inneheld opplysningar om tillaten totalvekt og aksellast på vegen.. Aksellast

Vegliste for fylkes- og kommunale vegar i Møre og Romsdal fylke inneheld opplysningar om tillaten totalvekt og aksellast på vegen.. Aksellast

Vaksinegruppen ved Pasteurinstitu et har beny et svekket meslingvirus som vektor for å u rykke S-proteinet til SARS- CoV-2, og denne vaksinekandidaten er nå i første fase av