12
KT 1980. VI. 3
Het Fortran- intenpolatieprogramma:
PROGRAM IPOLA(TAPE1tTAPE4)
DATA AFSINP /0.1/
ITOT=I=J=0
AFST=XN=YN=0.
NNR=1
READ d f 20NR XAf YA
WRITE4 f 20NR f XA f YA
20 FORMAT(I5f5Xf2F10.3)
100 CONTINUE
READ d f 20NR f XB f YB
IF EOFd NE0GOTO 10
AFST=SGRT<XB-XA**2YB-YA)**2)
IF(AFST.LTAFSINP)G0T030
ITOT=AFST/AFSINP+1
XAS=XB-XA)/ITOT
YAS=(YB-YA)/ITOT
DO 40 J=1fIT0T
NNR'=NNR+1
XN=XA+XAS*J
YN=YA+YAS*J
40 WRITE 4 f 20NNR f XN f YN
G0T090
30 NNR=NNR+1
WRITE4 f 20NNR f XD f YD
90 XA=XB
YA=YB
G0T0100
10 CONTINUE
END
Het Fortranprogramma ZWAPU (zwaartepunt)
PROGRAM ZWAPUTAPElfTAPE6)
DIMENSION X300)fY(300
DATA IC /10/
JC=IC/2
NNR=0
READ1f 20N f X 1fY<1)
WRITE<6f20)NfX<1)fY(1)
60 CONTINUE
DO 10 I=2fIC
READ1f 20)NfX(I)fY(I)
IF EOF1NE0GOT0 40
10 CONTINUE
XA=X<1
YA=Y1
XB=X JC
YB=YJC
XC=X(IC)
YC=YIC
XZ=XA+XB+XC/3
YZ=(YA+YB+YC)/3.
NNR-NNR+1
WRITE6 f 20NNR f XZ f YZ
X(1)=XC
Y(1>=YC
GOTO 60
20 FORMAT(I5f5Xf2F10.3)
40 CONTINUE
END
Het Fortranprogramma GLYD (glijdend gemiddelde):
PROGRAM GLYDTAPElfTAPE2)
DIMENSION XX(10)fYY(IO)
DATA M /10/
NR=1
XT0T=YT0T=0.
1=0
L=M-1
READ1f 20IRf Xf Y
WRITE2 f 20NR fXfY
40 1=1+1
IFd.GT.M)GOTO10
READ<1f20)IRfXX<IfYY(I)
XTOT=XTOT+XX<I
YTOT=YTOT+YY<I
G0T040
10 1=0
NR=NR+1
XN=XTOT/M
YN=YTOT/M
WRITE 2 f 20NR f XN f YN
XT0T=0.
YT0T=0.
DO 30 K=1f L
XX(K=XXK+l
YY K)=YY(K+l
XTOT=XTOT+XX(K
30 YTOT=YTOT+YY<K)
READ1f 20IR f XXMf YYM
IF(EOFd) NE0)GOTO 50
XTOT=XTOT+XX(M)
YTOT=YTOT+YY(M)
GOTO 10
50 NR=NR+1
WRITE 2 f 20NR fXX(L)fYY(L)
20 FORMAT15 f 5X f 2F103
END
Het Fortranprogramma MAXLO (maximale loodlijn):
PROGRAM MAXLOTAPElfTAPE7)
DIMENSION X300fY(300f AFST300
DATA IR /5/
N= I 1
READ1f 20NR f X1f Y1
WRITE 7 f 20NR f X 1fY(1)
20 FORMAT15 f 5X f 2F103
100 VAF=BAF=0
IA=IB=JB=0
10 CONTINUE
1 1 1
IF(I.GT.IR)GOTO40
READ1f 20NR f XIf Y I
IFEOF1NE0GOTO 200
G0T010
40 1 1
AN=<X(IR)-X(l))
BN=(Y(IR)-Y(l))
IFANEO0>AN=0.0000001
IF BNEQ 0)BN=0.0000001
RCA=YIR-Y1AN
RCB=XIR-X 1BN
DO 30 J=2fIR
CN=RCB-RCA
IFCNEQ0)CN=0.0000001
XN=(-RCB*X(J)-Y(J)+Y(l)-RCA*X(l))/CN
YN=Y1+RCA* XN-X1
JB=Yd )-YN+RCA#(XN-Xd
IF(JB.LT.0GOT050
AFSTJ=SGRT(XN-X(J)**2+YN-YJ)**2)
IFAFSTJGTVAFIA=J
G0T030
50 AFST J=SQRT XN-XJ**2+YN-YJ**2
IFAFSTJGT BAFIB=J
30 IF(IA.EQ.O)G0T060
IFdB.EQ.O)G0T070
IFdB.LT. 1A)G0T080
N=N+1
WRITE7 f 20)NfX(IA)fY(IA)
60 N=N+1
WRITE 7 f 20)Nf X(IB)fY(IB)
G0T090
80 N=N+1
WR'I TE 7 f 20 )NfX(IB) fY(IB)
70 N=N+1
WRITE(7f20)NfX(IA)fY<IA)
90 X1=XIR
Yd =Y< IR)
G0T0100
200 N=N+1
WRITE<7f20)NfX(I-I)fY(I-I)
END
Het Fortranprogramma ALPHA:
PROGRAM ALPHATAPElfTAPE3)
IMPLICIT DOUBLE PRECISION(D)
DIMENSION DX300f DY300
DATA IC /3/
DC0SI=0.707106781
CC=IC/2
JC=IFIXCC+O5
NR=1
READ(1f 20N f DX(1f DY(1
DDX=DX<1)
DDY=DY 1
WRITE3f 20)NfDX1fDY(1
20 FORMAT 15f5Xf2F103
50 CONTINUE
DO 10 I=2fIC
READ(1f 20N f DX If DYI
10 IF(EOFd) .NE.O. )GOTO 100
DLAB=DXJC-DX <1**2+DYJC-DY(1**2
DLAC= <DX<IC)-DX1**2+(DY(IC)-DY(l)**2)
DLBC=<(DX(IC)-DX(JC))**2+<DY(IC)-DY<JC))**2)
IFDLACEQ0ORDLABEQ.0)GOTO 30
DCOSIB=DLAC**2+DLAB**2-DLBC**22*DLAC*DLAB
IFDCOSIB.GTDCOSIORDCOSIBEQ-1GOTO 30
DO 40 J=2fIC
NR=NR+1
40 WRITE(3f20)NRfDX(J)fDY<J)
DXd )=DX( IC)
DY 1)=DY(IC)
GOTO 50
30 NR=NR+1
WRITE(3f20)NRfDX(IC)fDY(IC)
DXd )=DX( IC)
DY d=DY(IC)
GOTO 50
NR=NR+1
100 WRITE3 f 20NR f DDX f DDY
END