Het Fortranprogramma GENER:
PROGRAM GENERTAPE8f TAPE2»TAPE4fTAPE5fOUTPUT
DIMENSION XX<10> fYY(IO)»HOOGTE(10)fXD<10)»YD<10>
VARIABELEN
DATA AFSINP /O.l/
DATA SCHAF /l./
DATA GENFAC /5./
INITIALISEREN
NNR=NRN=1
H0GMAX=AFSEX=H0EKA=X0=Y0=0
JEND=NNN=JHALT=M=NN=L=0
IFGENFACLT4GENFAC-4
INLEES=GENFAC
MM=INLEES+1
PI=22./7.
ISCHAF=IFIXSCHAF+0.5)
N=2
N1=N2=N3=N4=0
READ8 20 NR rJSTOP f XA f YA
WRITE 420 NR f JSTOP f XA f YA
FORMAT <I5f2XfI1f2Xf2F10.3)
BEGIN HET INTERPOLEREN
GOTO 60
NNR=NNR+1
WRITE4 f 20NNR f JSTOP f XB f YB
READ8 f 20NR f JSTOP f XA f YA
READ8 f 20NR f JSTOP f XB f YB
IF(JSTOP.EG.1GOTO 50
IFEOF8NE0GOTO 10
AFST=SQRTXB-XA**2+YB-YA**2
IF AFSTLTAFSINF"GOTO 30
ITOT=AFST/AFSINP1
XAS=XB-XA/ITOT
YAS= <YB-YA)/ITOT
DO 40 JI=1fIT0T
NNR=NNR+1
XN=XA+XAS*JI
YN=YA+YAS*JI
WRITE4 f 20NNR f JSTOP f XN f YN
GOTO 70
NNR=NNR+1
WR I TE 4 f 20NNR f JSTOP f XB f YB
XA=XB
YA=YB
GOTO 60
CONTINUE
EINDE INTERPOLATIE
BEREKEN DE RICHTINGSCOEFFICIENTEN VAN HOOGTE- EN BASISL
AFSXAS=XXM-XX1
AFSYAS=(YY(M)-YY(l))
IF AFSXASEQ0)AFSXAS=0.000001
IFAFSYASEQ0>AFSYAS=0000001
RCA=YYM-YY1/AFSXAS
RCB=-XXM-XX 1/AFSYAS
BEPAAL SNIJPUNT HOOGTE- MET BASISLIJN
LA=MM-2
DO 120 L=2 f LA
RCSUB=RCA-RCB
IF RCSUBEQ0RCSUB=00000001
XN= RCA*XX(1)-YY(1)+YY<L)-RCB*XX <L/RCSUB
YN=YY1+RCA*XN-XX1
BEPAAL DE GROOTSTE HOOGTE
XHOOG= XN-XXL
YHOOG=(YN-YY(L)
IFXHOOGEQ0XHO0G=00000001
IFYHOOGEQ0YH00G=00000001
HOOGTEL=SQRTXH00G**2+ YH00G**2
IFHOOGTELGTHOGMAXH0GMAX=H00GTEL
BEPAAL DE GENERALISERINGSKLASSE
IF<HOGMAX.GT.DIST31G0T0 190
IFHOGMAX.LE.DIST3.AND.HOGMAX.GT.DIST2)GOTO 130
IFHOGMAX.LE.DIST2.AND.HOGMAX.GT.DIST1GOTO 140
IFHOGMAX.LE.DIST1GOTO 150
BNT=<3./4.>*MM
NT IFIX BNT+05
N2=N2+1
BASISL=2*AFM/2*PI)+05*AFM
GOTO 160
BNT 2/4)*MM
NT IFIX(BNT+0.5)
N3=N3+1
BASISL=2*AFM/3*PI2/3)*AFM
BEPAAL DE THEORETISCHE GRENSHOEK A
BOOGL=SQRT< BASISL*05**2+H0GMAX**2
S0M=05*BOOGL+BASISL*05+HOGMAX
R1=2./(BASISL*0.5*B00GL)
R2=SQRTSOM*SOM-BOOGLSOM-BASISL*05SOM-HOGMAX
SINB=R1*R2
RADB=ASIN(SINB
BETA=RADB*180/PI
CIRH=BETA*<INLEES-1
H0EKA=CIRH/<2*<INLEES-1
BEGIN EXTERPOLATIE
READ4 f 20)NR f JSTOPf EXX f EXY
IF(E0F(4).NE0GOTO 100
NRN=NRN+1
WRITE5 f 20NRN f JSTOP fEXX tEXY
IF(JSTOP.EQ.l)GOTO 90
IFSCHAFEQ.1GOTO 90
DO 80 ISKIP=2fISCHAF
READ4 f 20 NR f JSTOP fEXX f EXY
IF(JSTOP.EQ.1GOTO 95
IFEOF4NE0GOTO 100
CONTINUE
GOTO 90
NRN=NRN+1
WRITE 5 f 20NRN f JSTOP f EXX f EXY
GOTO 90
CONTINUE
EINDE EXTERPOLATIE
BEPALING THEORETISCH MAXIMALE HOOGTE T.O.V. BASISLIJN
AFM=<SCHAF*AFSINP*<INLEES-1
DIST1=AFM/<3.*PI
DIST2=AFM/(2.*PI)
DIST3=AFM/(1.*PI)
LEES N COORDINATEN IN
M=M+1
READ(5f20)NRfJSTOPfXXIfYYI
IF(JSTOP.EQ.1GOTO 240
IFEOF 5NE0GOTO 110
XX(1)=XX1
YY1=YY1
XCC=XX(1
YCC=YY 1
M=M+1
READ5 f 20NR f JSTOP f X1f Y1
IF(E0F(5>.NE0GOTO 110
IFJSTOPNE1)GOTO 220
JHALT=1
JST0P=0
M=M-1
MM=M
IF(MLE2GOTO 240
IFMLT4GOTO 190
GOTO 230
JEND=1
M=M-1
IFtM.LE.2GOTO 155
GOTO 150
XX(M)=X1
YYM=Y1
IFMNEMMGOTO 290
M=M-1
NN=NN+1
XN1=XX< D/SCHAF
YN1=YY(1/SCHAF
WRITE2 f 20NN f JSTOP f XN1f YN1
XXC=XX<1)
YYC=YY 1
210
240
250
190
BEGIN HET GENERALISEREN
NNN=0
N=2
N=N-1
)fl=XX(N)
Y1=YY(N)
N=N+1
X2=XXN
Y2=YY(N)
N=N+1
X3=XX(N)
Y3=YY(N)
BEPAAL DE GRENSHOEK A
DISTA=SQRT X3-X2**2+Y3-Y2)**2
DISTB=SQRTX3-X1#*2+Y3-Y1**2
DISTC=SQRT((X2-X1**2+Y2-Y1**2
S=05* DISTA+DISTB+DISTC
P1=2./(DISTB*DISTC)
DIA=S-DISTA
DIB=S-DISTB
DIC=S-DISTC
IF DIALE0.OR.DIB.LE.O..OR.DIC.LE.O.)GOTO 170
P2=SQRT(S*DIA*DIB*DIC)
SINA=P1*P2
RADIAL=ASIN(SINA
ALPHA-RADIAL*180./PI
IF<ALPHA.LT.HOEKA)GOTO 170
NNN=NNN+1
XDNNN=X2
YD(NNN)=Y2
IF(N.NE.MM)GOTO 180
IFNNNEQ0GOTO 150
DO 210 LLL=1fNNN
IFXDLLLEQXXCANDYDLLLEQYYCGOTO 210
NN=NN+1
XE=XD(LLL)/SCHAF
YE=YD(LLL)/SCHAF
WRITE2 f 20NN f JSTOP f XE f YE
IF JHALTNE1GOTO 250
NN=NN+1
XEN=XCC/SCHAF
YEN=YCC/SCHAF
WRITE(2f20)NNfJSTOPfXENfYEN
NN=NN+1
WRITE(2f20)NNfJHALTfXOfYO
M=NNN=L JHALT=0
N=2
MM=INLEES+1
H0GMAX=H0EKA=0
GOTO 200
IF(JEND.NE1)GOTO 270
GOTO 150
N1=N1+1
DO 260 NG=2 f MM
NN=NN+1
XE=XX(NG)/SCHAF
YE=YY(NG)/SCHAF
WRITE2 f 20NN f JSTOP f XE f YE
CONTINUE
KT 1980. VI. 3 13