mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-03-02 17:44:40 +00:00
1. Commit library tape images, directories, and extracted text files. 2. Commit additional utilities under Unisys-Emode-Tools.
1319 lines
104 KiB
Fortran
1319 lines
104 KiB
Fortran
CID BMD02T
|
|
CID 0901HS 15 150 $BMD02T AUTOCOVARIANCE AND POWER SPECTRA ANALYSIST0200000
|
|
C MAP T0200010
|
|
C XEQ T0200020
|
|
C LABEL T0200030
|
|
C LIST8 T0200040
|
|
C FORTRAN T0200050
|
|
CBMD02T AUTOCOVARIANCE AND POWER SPECTRAL ANALYSIS OCTOBER 22, 1965 T0200060
|
|
DIMENSION Z(17000),DUMB(20),FMT(120),NSELL(20),RX(200),PX(200), T0200070
|
|
1 LISA(20),ADDXY(200),SUBXY(200),CXY(200),QXY(200),SCXY(200), T0200080
|
|
2 SQXY(200),AMXY(200),PHASXY(200),RXY(200),RYX(200),YP( 4),SYM( 4),T0200090
|
|
3 CRO(400),COXYSQ(200),IPRNT1(20),IPRNT2(20) T0200100
|
|
DIMENSION X(1000),Y(1000),SPX(200),SPY(200),IPRNT3(20) T0200110
|
|
C T0200120
|
|
COMMON Z,DUMB,FMT,NSELL,RX,PX,LISA,ADDXY,SUBXY,CXY,QXY,SCXY,SQXY, T0200130
|
|
- YP,SYM,CRO,COXYSQ, T0200140
|
|
- IORDAT,IPLDAT,IDETRN,IPREWT,THETA,KSER,NPOINT,LAG,NSEL,IPLOT, T0200150
|
|
- DELTAT,UNIT,INFORM,KVR,IPRNT1,IPRNT2,IPRNT3,IPOW,ICCS,ICOH, T0200160
|
|
- PI,FNPT,CONST,PMD,FLAG,FLLAG,LLAG,KIT,KDUM,MISTAK,MX,KX ,Q T0200170
|
|
-,KPOINT T0200175
|
|
C T0200180
|
|
EQUIVALENCE (RXY,CXY,AMXY),(RYX,QXY,PHASXY),(RX,ADDXY),(PX,SUBXY),T0200190
|
|
X(YES,IYES),(END,IEND),(PROBLM,IPROB),(SEL,ISEL) T0200200
|
|
C T0200210
|
|
9002 FORMAT(1H177H BMD02T-AUTOCOVARIANCE AND POWER SPECTRAL ANALYSIS - T0200220
|
|
1VERSION OF OCT. 22, 1965/ T0200230
|
|
22X40HHEALTH SCIENCES COMPUTING FACILITY, UCLA//) T0200240
|
|
C T0200250
|
|
END=6HFINISH T0200260
|
|
PI=3.1415926536 T0200270
|
|
PROBLM=6HPROBLM T0200280
|
|
SEL=6HSELECT T0200290
|
|
YES=6HYES T0200300
|
|
C T0200310
|
|
INFORM=5 T0200320
|
|
C T0200330
|
|
999 READ 5001,JOB,PROB,IORDAT,IPLDAT,IDETRN,IPREWT,THETA, T0200340
|
|
- KSER,NPOINT,LAG,NSEL,IPLOT,DELTAT,UNIT,IOLD,NTAPE,KVR T0200350
|
|
5001 FORMAT(2A6,4A3,F5.0,I2,I4,I3,2I2,F5.0,A6,A3,12X,2I2) T0200360
|
|
IF(IEND-JOB)10,888,10 T0200370
|
|
888 IF(INFORM-5)890,890,889 T0200380
|
|
889 CALL REMOVE(INFORM) T0200390
|
|
890 CALL EXIT T0200400
|
|
10 IF(IPROB-JOB)740,150,740 T0200410
|
|
150 PRINT 9002 T0200420
|
|
PRINT 9003,PROB T0200430
|
|
9003 FORMAT(1H ///40X,26HP R O B L E M N U M B E R,4X,A6/40X,26(1H*)//T0200440
|
|
X/) T0200450
|
|
PRINT 9005,IORDAT,IPLDAT,IDETRN,IPREWT,THETA,KSER, T0200460
|
|
- NPOINT,LAG,NSEL,IOLD T0200470
|
|
9005 FORMAT(20X,31HINPUT DATA TO BE PRINTED OUT---A3//20X,33HINPUT SERIT0200480
|
|
XES TO BE PLOTTED OUT---A3//20X,13HDETRENDING---A3//20X,15HPREWHITET0200490
|
|
XNING---A3//20X,81HVALUE OF CONSTANT C USED IN THE PREWHITENING TRAT0200500
|
|
XNSFORMATION Z(T)=X(T+1)-CX(T) ---F10.5//20X19HNUMBER OF SERIES = IT0200510
|
|
X2//20X,23HNUMBER OF DATA POINTS =I5//20X,24HNUMBER OF LAGS CHOSEN T0200520
|
|
X= I3//20X,28HNUMBER OF SELECTION CARDS = I2//20X,20HUSE PREVIOUS DT0200530
|
|
XATA---A3//) T0200540
|
|
IF(KSER*(KSER-21))904,750,750 T0200545
|
|
904 PRINT 9013,DELTAT,UNIT T0200550
|
|
9013 FORMAT(20X,25HCONSTANT TIME INTERVAL = F10.5,1X,A6//) T0200560
|
|
IF(NPOINT*(NPOINT-1001))909,760,760 T0200565
|
|
909 PRINT 9021,KVR T0200570
|
|
9021 FORMAT(20X,34HNUMBER OF VARIABLE FORMAT CARDS = I3//) T0200580
|
|
KPOINT=NPOINT T0200585
|
|
CTHETA=ABSF(THETA) T0200590
|
|
IF(LAG-199)8,8,730 T0200600
|
|
8 IF((NPOINT*KSER)-17000)9,9,720 T0200610
|
|
9 IF(CTHETA-1.0)99,710,710 T0200620
|
|
99 IF(IOLD-IYES)11,30,11 T0200630
|
|
11 ASSIGN 75 TO NSKIP T0200640
|
|
12 IF(KVR)40,705,20 T0200650
|
|
40 IF(KVR+1)42,45,42 T0200660
|
|
42 L=1 T0200670
|
|
ASSIGN 74 TO NSKIP T0200680
|
|
GO TO 46 T0200690
|
|
45 L=2 T0200700
|
|
46 KVR=1 T0200710
|
|
GO TO (25,20),L T0200720
|
|
20 CALL VFCHCK(KVR) T0200730
|
|
KVR=KVR*12 T0200740
|
|
READ 1002,(FMT(I),I=1,KVR) T0200750
|
|
1002 FORMAT(12A6) T0200760
|
|
25 ASSIGN 80 TO KSKIP T0200770
|
|
ASSIGN 30 TO LSKIP T0200780
|
|
IF ( NTAPE) 71,72,73 T0200790
|
|
71 KADD=-NPOINT T0200800
|
|
DO 84 K=1,KSER T0200810
|
|
KADD=KADD+NPOINT T0200820
|
|
GO TO NSKIP,(74,75,715) T0200830
|
|
715 READ(INFORM) (X(I),I=1,NPOINT) T0200840
|
|
GO TO 755 T0200850
|
|
C T0200860
|
|
74 READ 1002,(FMT(J),J=1,12) T0200870
|
|
75 READ FMT,(X(I),I=1,NPOINT) T0200880
|
|
755 DO 84 I=1,NPOINT T0200890
|
|
ND=I+KADD T0200900
|
|
84 Z(ND)=X(I) T0200910
|
|
GO TO 825 T0200920
|
|
C T0200930
|
|
73 ASSIGN 83 TO LSKIP T0200940
|
|
IF(70- NTAPE)735,735,738 T0200950
|
|
735 NTAPE=NTAPE-70 T0200960
|
|
ASSIGN 715 TO NSKIP T0200970
|
|
CALL TPWD(NTAPE,INFORM) T0200980
|
|
GO TO 71 T0200990
|
|
C T0201000
|
|
738 CALL TPWD(NTAPE,INFORM) T0201010
|
|
ASSIGN 81 TO KSKIP T0201020
|
|
72 DO 82 I=1,NPOINT T0201030
|
|
KADD=0 T0201040
|
|
GO TO KSKIP,(80,81) T0201050
|
|
80 READ FMT,(DUMB(J),J=1,KSER) T0201060
|
|
GO TO 815 T0201070
|
|
C T0201080
|
|
81 READ(INFORM)(DUMB(J),J=1,KSER) T0201090
|
|
815 DO 82 J=1,KSER T0201100
|
|
L=KADD+I T0201110
|
|
KADD=KADD+NPOINT T0201120
|
|
82 Z(L)=DUMB(J) T0201130
|
|
825 GO TO LSKIP,(30,83) T0201140
|
|
83 REWIND INFORM T0201150
|
|
30 LLAG=LAG+1 T0201160
|
|
FLLAG=LLAG T0201170
|
|
FLAG=LAG T0201180
|
|
FNPT=NPOINT T0201190
|
|
Q=PI/FLAG T0201200
|
|
CONST=2.0*DELTAT/PI T0201210
|
|
PMD=0.5/(FLAG*DELTAT) T0201220
|
|
IF(-NSEL)95,770,770 T0201225
|
|
95 DO 9000 KDUM=1,NSEL T0201230
|
|
KIT=0 T0201240
|
|
DO 98 I=1,20 T0201250
|
|
NSELL(I)=0 T0201260
|
|
IPRNT1(I)=0 T0201270
|
|
IPRNT2(I)=0 T0201280
|
|
IPRNT3(I)=0 T0201290
|
|
LISA(I)=0 T0201300
|
|
98 CONTINUE T0201310
|
|
READ 5003, JOB,IPOW,ICCS,ICOH,NNX,IPRNT1(1),LISA(1),NN T0201320
|
|
XS,(NSELL(I),IPRNT1(I+1),IPRNT2(I+1),IPRNT3(I+1),LISA(I+1),I=1,NNS)T0201330
|
|
5003 FORMAT(A6,1X,3A4,I2,A1,2I2,1X,6(I2,3A1,I2)/6X,9(I2,3A1,I2)/6X, T0201340
|
|
X4(I2,3A1,I2)) T0201345
|
|
IF(JOB-ISEL)740,101,740 T0201350
|
|
101 CALL SMEAN (NNX,X,XBAR,XALPHA) T0201360
|
|
102 IF (MISTAK) 9000,100,9000 T0201380
|
|
100 ASSIGN 145 TO KPOWR T0201390
|
|
IF(IPOW-IYES)105,110,105 T0201400
|
|
110 ASSIGN 135 TO KPOWR T0201410
|
|
CALL POWER (NNX,X,XBAR,XALPHA,SPX) T0201420
|
|
105 DO 8000 I=1,NNS T0201430
|
|
KIT=I T0201440
|
|
NNY=NSELL(I) T0201450
|
|
IF(NNX-NNY)120,9000,120 T0201460
|
|
120 CALL SMEAN (NNY,Y,YBAR,YALPHA) T0201470
|
|
IF(MISTAK-17)122,740,122 T0201480
|
|
122 IF(MISTAK) 9000,125,9000 T0201490
|
|
125 GO TO KPOWR,(135,145) T0201500
|
|
135 CALL POWER (NNY,Y,YBAR,YALPHA,SPY) T0201510
|
|
IF(ICCS-IYES)8000,140,8000 T0201520
|
|
140 IF(IPREWT-IYES)145,130,145 T0201530
|
|
145 CALL CROSS (NNX,NNY,X,Y,SPX,SPY,XBAR,YBAR,XALPHA,YALPHA) T0201540
|
|
GO TO 8000 T0201550
|
|
130 PRINT 1051 T0201560
|
|
1051 FORMAT(1H1,10X,77HSINCE PREWHITENING IS DONE IN THE INPUT DATA , CT0201570
|
|
-ROSS-SPECTRUM IS NOT COMPUTED/ 10X,66HPROGRAM WILL PROCEED TO NEXTT0201580
|
|
- SERIES IN THE SELECTION CARD (IF ANY)/ 10X,39H OR TO THE NEXT SELT0201590
|
|
-ECTION CARD (IF ANY)) T0201600
|
|
8000 CONTINUE T0201610
|
|
9000 CONTINUE T0201620
|
|
GO TO 999 T0201630
|
|
C T0201640
|
|
705 IF(INFORM)20,20,73 T0201650
|
|
C T0201660
|
|
710 PRINT 9200,THETA T0201670
|
|
GO TO 751 T0201680
|
|
C T0201690
|
|
720 PRINT 9300 T0201700
|
|
GO TO 751 T0201710
|
|
C T0201720
|
|
730 PRINT 9400,LAG T0201730
|
|
GO TO 751 T0201740
|
|
C T0201750
|
|
740 PRINT 9500 T0201760
|
|
GO TO 751 T0201762
|
|
C T0201764
|
|
750 PRINT 9600 T0201766
|
|
751 PRINT 9800 T0201768
|
|
GO TO 888 T0201770
|
|
C T0201772
|
|
760 PRINT 9700 T0201774
|
|
GO TO 751 T0201776
|
|
C T0201778
|
|
770 PRINT 9900 T0201780
|
|
NSEL =1 T0201782
|
|
GO TO 95 T0201784
|
|
C T0201786
|
|
9200 FORMAT(1H0,20X,47HCONSTANT USED IN PREWHITENING TRANSFORMATION IS,T0201790
|
|
XF7.5,23H,A VALUE NOT PERMITTED.) T0201800
|
|
9300 FORMAT(1H0,37X,22HDATA STORAGE EXCEEDED.) T0201810
|
|
9400 FORMAT(1H0,37X,29HNUMBER OF LAGS IS TOO LARGE =,I5) T0201820
|
|
9500 FORMAT(1H0,37X,27HCONTROL CARDS OUT OF ORDER.) T0201830
|
|
9600 FORMAT(1H0,37X,43HNUMBER OF SERIES IS OUTSIDE PROGRAM LIMITS.) T0201832
|
|
9700 FORMAT(1H0,37X,43HNUMBER OF POINTS IS OUTSIDE PROGRAM LIMITS.) T0201834
|
|
9800 FORMAT(1H0,37X,23HPROGRAM CANNOT PROCEED.) T0201840
|
|
9900 FORMAT(1H0,37X,44HNO SELECTION CARD SPECIFIED. ONE IS ASSUMED.) T0201850
|
|
C T0201860
|
|
END T0201870
|
|
C LABEL T0201880
|
|
C LIST8 T0201890
|
|
C FORTRAN T0201900
|
|
CCROSS SUBROUTINE CROSS FOR BMD02T JULY 22, 1964 T0201910
|
|
SUBROUTINE CROSS(NNX,NNY,X,Y,SPX,SPY,XBAR,YBAR,XALPHA,YALPHA) T0201920
|
|
C T0201930
|
|
EMDAF(FN,H,R)=((FN*H)**2)*(1.0-2.0*(R/FN)-2.0*(R/FN)**2) T0201940
|
|
C T0201950
|
|
DIMENSION Z(17000),DUMB(20),FMT(120),NSELL(20),RX(200),PX(200), T0201960
|
|
1 LISA(20),ADDXY(200),SUBXY(200),CXY(200),QXY(200),SCXY(200), T0201970
|
|
2 SQXY(200),AMXY(200),PHASXY(200),RXY(200),RYX(200),YP( 4),SYM( 4),T0201980
|
|
3 CRO(400),COXYSQ(200),IPRNT1(20),IPRNT2(20) T0201990
|
|
DIMENSION X(1000),Y(1000),SPX(200),SPY(200),IPRNT3(20) T0202000
|
|
COMMON Z,DUMB,FMT,NSELL,RX,PX,LISA,ADDXY,SUBXY,CXY,QXY,SCXY,SQXY, T0202010
|
|
- YP,SYM,CRO,COXYSQ, T0202020
|
|
- IORDAT,IPLDAT,IDETRN,IPREWT,THETA,KSER,NPOINT,LAG,NSEL,IPLOT, T0202030
|
|
- DELTAT,UNIT,INFORM,KVR,IPRNT1,IPRNT2,IPRNT3,IPOW,ICCS,ICOH, T0202040
|
|
- PI,FNPT,CONST,PMD,FLAG,FLLAG,LLAG,KIT,KDUM,MISTAK,MX,KX ,Q T0202050
|
|
EQUIVALENCE (RXY,CXY,AMXY),(RYX,QXY,PHASXY),(RX,ADDXY),(PX,SUBXY),T0202060
|
|
X(YES,IYES),(B,IB),(C,IC),(SS,IS),(H,IH),(T,IT) T0202070
|
|
C T0202080
|
|
B=6HB T0202090
|
|
BLANK=6H T0202100
|
|
C=6HC T0202110
|
|
DBLSTR=6H** T0202120
|
|
H=6HH T0202130
|
|
SS=6HS T0202140
|
|
STAR=6HX T0202150
|
|
SYM(1)=6H*00000 T0202160
|
|
T=6HT T0202170
|
|
YES=6HYES T0202180
|
|
C T0202190
|
|
DO 501 I=1,LLAG T0202200
|
|
SXY=0.0 T0202210
|
|
SYX=0.0 T0202220
|
|
M=I-1 T0202230
|
|
L=NPOINT-M T0202240
|
|
FL=L T0202250
|
|
DO 502 J=1,L T0202260
|
|
K=M+J T0202270
|
|
SXY=SXY+X(J)*Y(K) T0202280
|
|
502 SYX=SYX+X(K)*Y(J) T0202290
|
|
RXY(I)=SXY/FL T0202300
|
|
501 RYX(I)=SYX/FL T0202310
|
|
IF(IDETRN-IYES)455,450,455 T0202320
|
|
450 FMGM=XBAR*YBAR T0202330
|
|
CAP1=(XBAR*YALPHA-YBAR*XALPHA)/2.0 T0202340
|
|
CAP=-CAP1 T0202350
|
|
WARN1=(XALPHA*YALPHA)/12.0 T0202360
|
|
FI=-1.0 T0202370
|
|
DO 504 I=1,LLAG T0202380
|
|
FI=FI+1.0 T0202390
|
|
FLAMDA=EMDAF(FNPT,DELTAT,FI) T0202400
|
|
CAP=CAP+CAP1 T0202410
|
|
WARNER=FMGM+FLAMDA*WARN1 T0202420
|
|
RXY(I)=RXY(I)-CAP-WARNER T0202430
|
|
504 RYX(I)=RYX(I)+CAP-WARNER T0202440
|
|
455 PRINT 1501,NNX,NNY,NNX,NNY,UNIT T0202450
|
|
1501 FORMAT(1H1,21X,3HLAG,14X,15HCROSSCOVARIANCE,15X,15HCROSSCOVARIANCET0202460
|
|
X/37X,9HOF SERIES,I3,4H AND,I3,11X,9HOF SERIES,I3,4H AND,I3/20X,1H(T0202470
|
|
XA6,1H),11X,15H(POSITIVE TAU),15X,15H(NEGATIVE TAU)//) T0202480
|
|
TIME=-DELTAT T0202490
|
|
DO 503 I=1,LLAG T0202500
|
|
TIME=TIME+DELTAT T0202510
|
|
503 PRINT 1502,TIME,RXY(I),RYX(I) T0202520
|
|
1502 FORMAT(19X,F9.4,10X,F15.6,15X,F15.6) T0202530
|
|
TIME1=TIME T0202540
|
|
509 DO510 I=1,LLAG T0202550
|
|
K=LLAG-I+1 T0202560
|
|
510 CRO(I)=RXY(K) T0202570
|
|
KL=LLAG T0202580
|
|
DO 511 I=2,LLAG T0202590
|
|
KL=KL+1 T0202600
|
|
511 CRO(KL)=RYX(I) T0202610
|
|
LLLAG=2*LLAG-1 T0202620
|
|
IF(IPRNT2(KIT+1)-IB)515,520,515 T0202630
|
|
515 IF(IPRNT2(KIT+1)-IC)655,520,655 T0202640
|
|
520 FR=-10.0**10 T0202650
|
|
RO=10**10 T0202660
|
|
DO630 I=1,LLLAG T0202670
|
|
FR=MAX1F(FR,CRO(I)) T0202680
|
|
630 RO=MIN1F(RO,CRO(I)) T0202690
|
|
PRINT 1503,NNX,NNY,TIME1,UNIT T0202730
|
|
1503 FORMAT(1H1, 7X,44HGRAPH OF CROSS-COVARIANCE FUNCTION OF SERIES,I3,T0202740
|
|
X4H AND,I3,36H PLOTTED AGAINST TIME UP TO A LAG OF,F9.4,1X,A6//) T0202750
|
|
ANY=-TIME1-DELTAT T0202760
|
|
IF(LLAG-50) 640,645,645 T0202770
|
|
640 K1=0 T0202780
|
|
K2=1 T0202790
|
|
ASSIGN 642 TO KSKIP T0202800
|
|
GO TO 641 T0202810
|
|
C T0202820
|
|
645 K1=-1 T0202830
|
|
K2=K1 T0202840
|
|
ASSIGN 643 TO KSKIP T0202850
|
|
KZ=LLLAG+1 T0202860
|
|
641 DO 650 I=1,LLLAG T0202870
|
|
ANY=ANY+DELTAT T0202880
|
|
GO TO KSKIP,(642,643) T0202890
|
|
642 YP(1)=CRO(I) T0202900
|
|
GO TO 650 T0202910
|
|
C T0202920
|
|
643 KZ=KZ-1 T0202930
|
|
YP(1)=CRO(KZ) T0202940
|
|
650 CALL PLOTR(ANY,-TIME1,TIME1,YP,SYM,RO,FR,1,K2) T0202950
|
|
CALL PLOTR(ANY,-TIME1,TIME1,YP,SYM,RO,FR,K1,K2) T0202960
|
|
655 DO 15 JP=1,LLAG T0202970
|
|
ADDXY(JP)=RXY(JP)+RYX(JP) T0202980
|
|
15 SUBXY(JP)=RXY(JP)-RYX(JP) T0202990
|
|
ADDXY(1)=0.5*ADDXY(1) T0203000
|
|
ADDXY(LLAG)=0.5*ADDXY(LLAG) T0203010
|
|
SUBXY(1)=0.5*SUBXY(1) T0203020
|
|
SUBXY(LLAG)=0.5*SUBXY(LLAG) T0203030
|
|
S1=-Q T0203040
|
|
DO 17 IH=1,LLAG T0203050
|
|
CXY (IH)=0.0 T0203060
|
|
QXY(IH)=0.0 T0203070
|
|
S1=S1+Q T0203080
|
|
S=-S1 T0203090
|
|
DO 17 JP=1,LLAG T0203100
|
|
S=S+S1 T0203110
|
|
CXY(IH)=CXY(IH)+COSF(S)*ADDXY(JP) T0203120
|
|
17 QXY(IH)=QXY(IH)+SINF(S)*SUBXY(JP) T0203130
|
|
DO 16 I=1,LLAG T0203140
|
|
CXY (I)=CXY(I)*CONST *.5 T0203150
|
|
16 QXY( I)=QXY(I)*CONST*.5 T0203160
|
|
SCXY(1)=.54*CXY(1)+.46*CXY(2) T0203170
|
|
SCXY(LLAG)=.54*CXY(LLAG)+.46*CXY(LLAG-1) T0203180
|
|
SQXY(1)=.54*QXY(1)+.46*QXY(2) T0203190
|
|
SQXY(LLAG)=.54*QXY(LLAG)+.46*QXY(LLAG-1) T0203200
|
|
KK=LLAG-1 T0203210
|
|
DO 18 J=2,KK T0203220
|
|
SCXY(J)=.54*CXY(J)+.23*(CXY(J+1)+CXY(J-1)) T0203230
|
|
18 SQXY(J)=.54*QXY(J)+.23*(QXY(J+1)+QXY(J-1)) T0203240
|
|
DO 19 J=1,LLAG T0203250
|
|
19 AMXY(J)=SQRTF(SCXY(J)**2+SQXY(J)**2) T0203260
|
|
CALL HONG T0203270
|
|
PRINT 1005,UNIT,NNX,NNY,NNX,NNY,NNX,NNY,NNX,NNY T0203280
|
|
1005 FORMAT(12H1 FREQUENCY,6X,11HCO-SPECTRUM,6X,19HQUADRATURE SPECTRUMT0203290
|
|
1,5X,27HAMPLITUDE OF CROSS-SPECTRUM,4X,23HPHASE OF CROSS-SPECTRUM/1T0203300
|
|
XX,8H(CYCLES/A6,1H),6X,2HOF,19X,2HOF,26X,2HOF,27X,2HOF/16X,6HSERIEST0203310
|
|
X,I3,4H AND,I3,5X,6HSERIES,I3,4H AND,I3,12X,6HSERIES,I3,4H AND,I3,1T0203320
|
|
X3X,6HSERIES,I3,4H AND,I3,2H *//) T0203330
|
|
ANY=-PMD T0203340
|
|
DO 22 I=1,LLAG T0203350
|
|
ANY=ANY+PMD T0203360
|
|
22 PRINT 1006,ANY,SCXY(I),SQXY(I),AMXY(I),PHASXY(I) T0203370
|
|
1006 FORMAT(3X,F8.3,5X,F14.7,7X,F14.7,14X,F14.7,15X,F14.7) T0203380
|
|
PRINT 543 T0203390
|
|
543 FORMAT(1H0,10X,37H* PHASE GIVEN IN FRACTION OF A CIRCLE) T0203400
|
|
IF(IPRNT2(KIT+1)-IB)201,204,201 T0203410
|
|
201 IF(IPRNT2(KIT+1)-IS)208,204,208 T0203420
|
|
204 DO 205 I=1,LLAG T0203430
|
|
205 SCXY(I)=LOGF(AMXY(I)) T0203440
|
|
PRINT 1010,NNX,NNY,UNIT T0203450
|
|
1010 FORMAT(1H1, 8X,46HGRAPH OF AMPLITUDE OF CROSS-SPECTRUM OF SERIES,IT0203460
|
|
X3,4H ANDI3,42H (IN LOG SCALE) AGAINST FREQUENCY (CYCLES/A6,1H)//) T0203470
|
|
CALL PLUG (SCXY) T0203480
|
|
PRINT 1011,NNX,NNY,UNIT T0203490
|
|
1011 FORMAT(1H1,3X,33HPHASE OF CROSS-SPECTRUM OF SERIES,I3,4H AND,I3,63T0203500
|
|
XH -- PLOTTED IN FRACTIONS OF A CIRCLE AGAINST FREQUENCY (CYCLES/,AT0203510
|
|
X6,1H)//) T0203520
|
|
CALL KONG T0203530
|
|
208 IF(ICOH-IYES)777,215,777 T0203540
|
|
215 IF(IPOW-IYES)210,216,210 T0203550
|
|
210 PRINT 1015,NNX,NNY,KDUM T0203560
|
|
1015 FORMAT(1H1,10X,5H*****/15X,29HTHE POWER SPECTRUM OF SERIES I3,5H AT0203570
|
|
-ND I3,54H ARE NOT COMPUTED ACCORDING TO THIS SELECTION CARD NO. I3T0203580
|
|
-/15X,68HTHE COHERENCE SQUARE AND THE TRANSFER FUNCTIONS CANNOT BE T0203590
|
|
-CALCULATED/ 15X,5H*****) T0203600
|
|
GO TO 777 T0203610
|
|
C T0203620
|
|
216 ASSIGN 224 TO KADD1 T0203630
|
|
ASSIGN 250 TO KADD2 T0203640
|
|
SMAX=-9999999.0 T0203650
|
|
SCXMAX=-9999999.0 T0203660
|
|
SQXMAX=-9999999.0 T0203670
|
|
DO 220 I=1,LLAG T0203680
|
|
IF (SPX(I))212,214,212 T0203690
|
|
212 RX(I)=BLANK T0203700
|
|
SQXY(I)=AMXY(I)/SPX(I) T0203710
|
|
SQXMAX=MAX1F(SQXMAX,SQXY(I)) T0203720
|
|
213 IF(SPY(I))217,218,217 T0203730
|
|
217 CRO(I)=BLANK T0203740
|
|
COXYSQ(I)=(AMXY(I)**2)/(SPX(I)*SPY(I)) T0203750
|
|
IF(1.1-COXYSQ(I))2175,2180,2180 T0203760
|
|
2175 CRO(I)=DBLSTR T0203770
|
|
ASSIGN 240 TO KADD2 T0203780
|
|
GO TO 221 T0203790
|
|
C T0203800
|
|
2180 SMAX=MAX1F(SMAX,COXYSQ(I)) T0203810
|
|
GO TO 221 T0203820
|
|
C T0203830
|
|
214 RX(I)=STAR T0203840
|
|
ASSIGN 223 TO KADD1 T0203850
|
|
COXYSQ(I)=0.0 T0203860
|
|
CRO(I)=STAR T0203870
|
|
SQXY(I)=0.0 T0203880
|
|
219 IF(SPY(I))221,222,221 T0203890
|
|
221 PX(I)=BLANK T0203900
|
|
SCXY(I)=AMXY(I)/SPY(I) T0203910
|
|
SCXMAX=MAX1F(SCXMAX,SCXY(I)) T0203920
|
|
GO TO 220 T0203930
|
|
C T0203940
|
|
218 COXYSQ(I)=0.0 T0203950
|
|
CRO(I)=STAR T0203960
|
|
222 PX(I)=STAR T0203970
|
|
SCXY(I)=0.0 T0203980
|
|
ASSIGN 223 TO KADD1 T0203990
|
|
220 CONTINUE T0204000
|
|
PRINT 1012,UNIT,NNX,NNY,NNX,NNY,NNY,NNX,NNX,NNY T0204010
|
|
1012 FORMAT(13H1 FREQUENCY7X16HCOHERENCE SQUARE,11X,12HAMPLITUDE OF,1T0204020
|
|
X3X,12HAMPLITUDE OF,15X,8HPHASE OF/9H (CYCLES/A6,1H),11X,2HOF,15X,3T0204030
|
|
X(18HTRANSFER FUNCTION7X)/20X,6HSERIES,I3,4H AND,I3,11X2(4HFROMI3,T0204040
|
|
X3H TO,I3,11X)4HFROMI3,3H TO,I3,2H *//) T0204050
|
|
ANY=-PMD T0204060
|
|
DO 230 I=1,LLAG T0204070
|
|
ANY=ANY+PMD T0204080
|
|
PRINT 1016,ANY,COXYSQ(I),CRO(I),SQXY(I),RX(I),SCXY(I T0204090
|
|
X),PX(I),PHASXY(I) T0204100
|
|
1016 FORMAT(3X,F9.4,9X,F14.7,3(A2,9X,F14.7)) T0204110
|
|
IF(CRO(I)-DBLSTR)227,228,227 T0204120
|
|
227 IF(CRO(I)-STAR)229,228,229 T0204130
|
|
228 COXYSQ(I)=SMAX T0204140
|
|
229 IF(RX(I)-STAR)2291,2292,2291 T0204150
|
|
2291 IF(PX(I)-STAR)230,2294,230 T0204160
|
|
2292 SQXY(I)=SQXMAX T0204170
|
|
GO TO 2291 T0204180
|
|
C T0204190
|
|
2294 SCXY(I)=SCXMAX T0204200
|
|
230 CONTINUE T0204210
|
|
PRINT 543 T0204220
|
|
GO TO KADD2,(240,250) T0204230
|
|
240 PRINT 1017 T0204240
|
|
1017 FORMAT(1H0,10X,84H** INDICATES THAT THIS VALUE IS TOO HIGH DUE TO T0204250
|
|
XSAMPLING ERROR. IT WILL BE SET EQUAL/14X,71HTO THE MAXIMUM VALUE OT0204260
|
|
XF THE REMAINING COHERENCES FOR PLOTTING PURPOSES.) T0204270
|
|
250 GO TO KADD1,(223,224) T0204280
|
|
223 PRINT 1018 T0204290
|
|
1018 FORMAT(1H0,10X,91HX INDICATES THIS VALUE IS NOT COMPUTABLE DUE TO T0204300
|
|
XA NEGATIVE OR ZERO POWER SPECTRAL ESTIMATE./13X,82HIT WILL BE SET T0204310
|
|
XEQUAL TO THE MAXIMUM OF THE REMAINING VALUES FOR PLOTTING PURPOSEST0204320
|
|
X.) T0204330
|
|
224 IF(IPRNT3(KIT+1)-IB)231,232,231 T0204340
|
|
231 IF(IPRNT3(KIT+1)-IH)233,232,233 T0204350
|
|
232 PRINT 1013,NNX,NNY,UNIT T0204360
|
|
1013 FORMAT(1H1,16X,40HGRAPH OF COHERENCE SQUARE BETWEEN SERIESI3,4H ANT0204370
|
|
XDI3,27H AGAINST FREQUENCY (CYCLES/A6,1H)//) T0204380
|
|
CALL PLUG (COXYSQ) T0204390
|
|
233 IF(IPRNT3(KIT+1)-IB)234,235,234 T0204400
|
|
234 IF(IPRNT3(KIT+1)-IT)777,235,777 T0204410
|
|
235 DO 225 I=1,LLAG T0204420
|
|
SQXY(I)=LOGF(SQXY(I)) T0204430
|
|
225 SCXY(I)=LOGF(SCXY(I)) T0204440
|
|
PRINT 1014,NNX,NNY,UNIT T0204450
|
|
1014 FORMAT(1H1, 5X,51HGRAPH OF AMPLITUDE OF TRANSFER FUNCTION FROM SERT0204460
|
|
XIESI3,3H TOI3,42H (IN LOG SCALE) AGAINST FREQUENCY (CYCLES/A6,1H)/T0204470
|
|
X/) T0204480
|
|
CALL PLUG (SQXY) T0204490
|
|
PRINT 1014,NNX,NNY,UNIT T0204500
|
|
CALL PLUG (SCXY) T0204510
|
|
777 RETURN T0204520
|
|
C T0204530
|
|
END T0204540
|
|
SUBROUTINE FORM2(T,M,SYMB) T0204550
|
|
T0204560
|
|
C SUBROUTINE FORM2 OF PLOTR T0204570
|
|
C ORIGINALLY WRITTEN BY RICHARD KRONMAL T0204580
|
|
C MODIFIED MAR. 22, 1964 BY EUGENE ALBRIGHT, T0204590
|
|
C HEALTH SCIENCES COMPUTING FACILITY, UCLA T0204600
|
|
C REWRITTEN BY DONNA WILLIAMS OF D.R.I. IN FORTRAN. APR,1968 T0204610
|
|
C T0204620
|
|
C CALLING SEQUENCE CALL FORM2(T,M,SYMB) T0204630
|
|
C T0204640
|
|
C T0204650
|
|
ISYM=CONCAT(T,0,1,1,11) T0204660
|
|
ISYM=ISYM*2**M T0204670
|
|
ISYM=CONCAT(0,ISYM,12,12,6) T0204680
|
|
IMASK=6HI00000 T0204690
|
|
BLANK=6H 00000 T0204700
|
|
AMASK=6HA00000 T0204710
|
|
PMASK=6H+00000 T0204720
|
|
SMASK=6H/00000 T0204730
|
|
ONE =6H100000 T0204740
|
|
TWO =6H200000 T0204750
|
|
NINE =6H900000 T0204760
|
|
IF (ISYM-SMASK) 100,900,800 T0204770
|
|
100 IF (ISYM-BLANK) 300,200,900 T0204780
|
|
200 ISYM=CONCAT(0,SYMB,12,12,6) T0204790
|
|
T0204800
|
|
GO TO 1000 T0204810
|
|
300 IF (ISYM-NINE) 400,500,600 T0204820
|
|
400 ISYM=ISYM+ONE T0204830
|
|
GO TO 1000 T0204840
|
|
500 ISYM=AMASK T0204850
|
|
GO TO 1000 T0204860
|
|
600 IF (ISYM-IMASK) 700,650,800 T0204870
|
|
650 ISYM=SMASK T0204880
|
|
GO TO 1000 T0204890
|
|
700 IF(ISYM-PMASK) 800,800,400 T0204900
|
|
800 ISYM=TWO T0204910
|
|
1000 ISYM=ISYM/(2**M) T0204920
|
|
T=ISYM T0204930
|
|
900 CONTINUE T0204940
|
|
RETURN T0204945
|
|
END T0204950
|
|
REAL FUNCTION LOG10F(A) T0204960
|
|
LOG10F=ALOG10(A) T0204970
|
|
RETURN T0204980
|
|
END T0204990
|
|
REAL FUNCTION EXPF(A) T0205000
|
|
EXPF=EXP(A) T0205010
|
|
RETURN T0205020
|
|
END T0205030
|
|
INTEGER FUNCTION XMODF(I,J) T0205040
|
|
XMODF=MOD(I,J) T0205050
|
|
RETURN T0205060
|
|
END T0205070
|
|
C LABEL T0205080
|
|
C LIST8 T0205090
|
|
C FORTRAN T0205100
|
|
CHONG SUBROUTINE HONG FOR BMD02T APRIL 15, 1963 T0205110
|
|
SUBROUTINE HONG T0205120
|
|
C T0205130
|
|
DIMENSION Z(17000),DUMB(20),FMT(120),NSELL(20),RX(200),PX(200), T0205140
|
|
1 LISA(20),ADDXY(200),SUBXY(200),CXY(200),QXY(200),SCXY(200), T0205150
|
|
2 SQXY(200),AMXY(200),PHASXY(200),RXY(200),RYX(200),YP( 4),SYM( 4),T0205160
|
|
3 CRO(400),COXYSQ(200),IPRNT1(20),IPRNT2(20),IPRNT3(20) T0205170
|
|
COMMON Z,DUMB,FMT,NSELL,RX,PX,LISA,ADDXY,SUBXY,CXY,QXY,SCXY,SQXY, T0205180
|
|
- YP,SYM,CRO,COXYSQ, T0205190
|
|
- IORDAT,IPLDAT,IDETRN,IPREWT,THETA,KSER,NPOINT,LAG,NSEL,IPLOT, T0205200
|
|
- DELTAT,UNIT,INFORM,KVR,IPRNT1,IPRNT2,IPRNT3,IPOW,ICCS,ICOH, T0205210
|
|
- PI,FNPT,CONST,PMD,FLAG,FLLAG,LLAG,KIT,KDUM,MISTAK,MX,KX T0205220
|
|
EQUIVALENCE (RXY,CXY,AMXY),(RYX,QXY,PHASXY),(RX,ADDXY),(PX,SUBXY) T0205230
|
|
C T0205240
|
|
C PI2 IS EQUAL TO 2 TIMES PI T0205250
|
|
C T0205260
|
|
PI2=2*3.1415926536 T0205270
|
|
C T0205280
|
|
DO 10 I=1,LLAG T0205290
|
|
AB=ABSF(SQXY(I)/SCXY(I)) T0205300
|
|
PHI=ATANF(AB) T0205310
|
|
IF( SCXY(I)) 11,12,13 T0205320
|
|
11 IF(SQXY(I)) 17,30,18 T0205330
|
|
17 PHASXY(I)=PI+PHI T0205340
|
|
GO TO 10 T0205350
|
|
C T0205360
|
|
30 PHASXY(I)=PI T0205370
|
|
GO TO 10 T0205380
|
|
C T0205390
|
|
18 PHASXY(I)=PI-PHI T0205400
|
|
GO TO 10 T0205410
|
|
C T0205420
|
|
12 IF(SQXY(I))35,15,40 T0205430
|
|
35 PHASXY(I)=1.5*PI T0205440
|
|
GO TO 10 T0205450
|
|
C T0205460
|
|
15 PHASXY(I)=0.0 T0205470
|
|
GO TO 10 T0205480
|
|
C T0205490
|
|
C STATEMENT 40 SETS PHASXY(I) EQUAL TO PI DIVIDED BY 2 T0205500
|
|
C T0205510
|
|
40 PHASXY(I)=3.1415926536/2 T0205520
|
|
GO TO 10 T0205530
|
|
C T0205540
|
|
13 IF (SQXY(I)) 14,15,16 T0205550
|
|
14 PHASXY(I)=PI2-PHI T0205560
|
|
GO TO 10 T0205570
|
|
C T0205580
|
|
16 PHASXY(I)=PHI T0205590
|
|
10 CONTINUE T0205600
|
|
DO 100 I=1,LLAG T0205610
|
|
100 PHASXY(I)=PHASXY(I)/PI2 T0205620
|
|
RETURN T0205630
|
|
C T0205640
|
|
END T0205650
|
|
C LABEL T0205660
|
|
C LIST8 T0205670
|
|
C FORTRAN T0205680
|
|
CKONG SUBROUTINE KONG FOR BMD02T FEBRUARY 17, 1964 T0205690
|
|
SUBROUTINE KONG T0205700
|
|
C T0205710
|
|
DIMENSION Z(17000),DUMB(20),FMT(120),NSELL(20),RX(200),PX(200), T0205720
|
|
1 LISA(20),ADDXY(200),SUBXY(200),CXY(200),QXY(200),SCXY(200), T0205730
|
|
2 SQXY(200),AMXY(200),PHASXY(200),RXY(200),RYX(200),YP( 4),SYM( 4),T0205740
|
|
3 CRO(400),COXYSQ(200),IPRNT1(20),IPRNT2(20),IPRNT3(20) T0205750
|
|
COMMON Z,DUMB,FMT,NSELL,RX,PX,LISA,ADDXY,SUBXY,CXY,QXY,SCXY,SQXY, T0205760
|
|
- YP,SYM,CRO,COXYSQ, T0205770
|
|
- IORDAT,IPLDAT,IDETRN,IPREWT,THETA,KSER,NPOINT,LAG,NSEL,IPLOT, T0205780
|
|
- DELTAT,UNIT,INFORM,KVR,IPRNT1,IPRNT2,IPRNT3,IPOW,ICCS,ICOH, T0205790
|
|
- PI,FNPT,CONST,PMD,FLAG,FLLAG,LLAG,KIT,KDUM,MISTAK,MX,KX T0205800
|
|
EQUIVALENCE (RXY,CXY,AMXY),(RYX,QXY,PHASXY),(RX,ADDXY),(PX,SUBXY) T0205810
|
|
C T0205820
|
|
SYM(3)=6H100000 T0205830
|
|
SYM(4)=SYM(3) T0205840
|
|
C T0205850
|
|
IF(LLAG-35) 10,10,15 T0205860
|
|
10 NTIMES=2 T0205870
|
|
GO TO 30 T0205880
|
|
15 NTIMES=1 T0205890
|
|
30 TIMES=NTIMES+1 T0205900
|
|
DX=PMD/TIMES T0205910
|
|
XMAX=1.0/(2.0*DELTAT) T0205920
|
|
YMAX=1.5 T0205930
|
|
YMIN=-.5 T0205940
|
|
YP(3)=0.0 T0205950
|
|
YP(4)=1.0 T0205960
|
|
BNY=-PMD T0205970
|
|
DO 100 I=1,LLAG T0205980
|
|
BNY=BNY+PMD T0205990
|
|
ANY=BNY T0206000
|
|
FACE=PHASXY(I)+1.0 T0206010
|
|
IF( FACE-1.5) 105,105,110 T0206020
|
|
110 FACE=FACE-2.0 T0206030
|
|
105 YP(1)=PHASXY(I) T0206040
|
|
YP(2)=FACE T0206050
|
|
SYM(1)=6HX00000 T0206060
|
|
SYM(2)=6H*00000 T0206070
|
|
CALL PLOTR (ANY,0.0,XMAX,YP,SYM,YMIN,YMAX,4,-1) T0206080
|
|
SYM(1)=6H 00000 T0206090
|
|
SYM(2)=SYM(1) T0206100
|
|
125 DO 200 J=1,NTIMES T0206110
|
|
ANY=ANY+DX T0206120
|
|
200 CALL PLOTR (ANY,0.0,XMAX,YP,SYM,YMIN,YMAX, 4,-1) T0206130
|
|
100 CONTINUE T0206140
|
|
CALL PLOTR (ANY,0.0,XMAX,YP,SYM,YMIN,YMAX,-1,-1) T0206150
|
|
RETURN T0206160
|
|
C T0206170
|
|
END T0206180
|
|
C LABEL T0206190
|
|
C LIST8 T0206200
|
|
C FORTRAN T0206210
|
|
CPLOTR SUBROUTINE PLOTR JULY 20, 1964 T0206220
|
|
SUBROUTINE PLOTR(X,ZMIN,ZMAX,Y,SYM,WMIN,WMAX,NC,NP) T0206230
|
|
C T0206232
|
|
C PLOTR WAS MODIFIED THIS DATE TO GIVE BETTER SCALES. T0206234
|
|
C T0206236
|
|
COMMON /A/ NCC,IC,XY,XMAX,YMAX,XR,YR,XM,TP,TC,XIJ,YIJ,JX,JY T0206237
|
|
-,GF,FMT,YMIN,XMIN T0206238
|
|
DIMENSION XY(51,17),Y(15),CLAB(12),XM(6),SYM(15),GF(10),FMT(10) T0206240
|
|
C T0206250
|
|
100 FORMAT(1H 6X5(F12.3,8X),F12.3/17X,5(F12.3,8X)) T0206260
|
|
101 FORMAT(1H F12.3,1X,A1,16A6,A5,A1,I2) T0206270
|
|
102 FORMAT(1H 13X,A1,16A6,A5,A1) T0206275
|
|
1000 FORMAT(1H 14X,101A1) T0206280
|
|
1001 FORMAT(15X,20(5H+....),1H+) T0206285
|
|
BLANKS=(+6H ) T0206287
|
|
IF(NCC)48,50,48 T0206290
|
|
50 KL=0 T0206300
|
|
XM(1)=6H"00000 T0206302
|
|
XM(2)=6H0"0000 T0206304
|
|
XM(3)=6H00"000 T0206306
|
|
XM(4)=6H000"00 T0206308
|
|
XM(5)=6H0000"0 T0206310
|
|
XM(6)=6H00000" T0206312
|
|
GF(1)=(+6H1X ) T0206314
|
|
GF(2)=(+6H2X ) T0206316
|
|
GF(3)=(+6H3X ) T0206318
|
|
GF(4)=(+6H4X ) T0206320
|
|
GF(5)=(+6H5X ) T0206322
|
|
GF(6)=(+6H6X ) T0206324
|
|
GF(7)=(+6H7X ) T0206326
|
|
GF(8)=(+6H8X ) T0206328
|
|
GF(9)=(+6H9X ) T0206330
|
|
GF(10)=(+6H10X ) T0206332
|
|
FMT(1)=(+6H(17X ) T0206334
|
|
FMT(2)=BLANKS T0206336
|
|
FMT(3)=BLANKS T0206338
|
|
FMT(4)=(+6H5(F12.) T0206340
|
|
FMT(5)=(+6H3,8X)/) T0206342
|
|
FMT(6)=(+6H7X, ) T0206344
|
|
FMT(8)=(+6H4(F12.) T0206346
|
|
FMT(9)=(+6H3,8X),) T0206348
|
|
FMT(10)=(+6HF12.3)) T0206350
|
|
TC=(+1H.) T0206353
|
|
TP=(+1H+) T0206355
|
|
CALL SCALE(WMIN,WMAX,100.0,JY,YMIN,YMAX,YIJ) T0206357
|
|
YR=YMAX-YMIN T0206360
|
|
230 J=JY T0206363
|
|
IF(J*(J-10))204,201,201 T0206366
|
|
201 IF(KL)220,220,231 T0206370
|
|
231 PRINT 1001 T0206373
|
|
IF(KL)250,250,220 T0206376
|
|
220 CLAB(1)= YMIN T0206380
|
|
DO 222 I=2,11 T0206383
|
|
222 CLAB(I)=CLAB(I-1)+YIJ T0206386
|
|
PRINT 100,(CLAB(I),I=1,11,2),(CLAB(I),I=2,10,2) T0206390
|
|
IF(KL)231,231,14 T0206393
|
|
204 IF(J-5)205,221,207 T0206396
|
|
207 J=J-5 T0206400
|
|
205 JYT=5-J T0206403
|
|
221 CONTINUE T0206406
|
|
IF(KL)226,226,227 T0206410
|
|
226 FMT(3)=GF(JY) T0206413
|
|
225 FMT(7)=GF(JY) T0206416
|
|
TT=JY T0206420
|
|
TT=TT*YIJ/10. T0206423
|
|
CLAB(1)= YMIN+TT T0206426
|
|
DO 223 I=2,10 T0206430
|
|
223 CLAB(I)=CLAB(I-1) +YIJ T0206433
|
|
PRINT FMT,(CLAB(I),I=2,10,2),(CLAB(I),I=1,9,2) T0206436
|
|
IF(KL)227,227,14 T0206440
|
|
227 IF(JY-5)208,209,208 T0206443
|
|
209 PRINT 1001 T0206446
|
|
IF(KL)250,250,226 T0206450
|
|
208 PRINT 1000,(TC,I=1,J),((TP,(TC,I=1,4)),K=1,19),TP,( T0206453
|
|
1 TC,I=1,JYT) T0206456
|
|
IF(KL)250,250,226 T0206460
|
|
250 CONTINUE T0206463
|
|
NCC=1 T0206466
|
|
IC=0 T0206470
|
|
IF(NP)80,11,11 T0206473
|
|
11 DO 1 I=1,51 T0206476
|
|
DO 1 J=1,17 T0206480
|
|
1 XY(I,J)=BLANKS T0206483
|
|
CALL SCALE (ZMIN,ZMAX,50.,JX,XMIN,XMAX,XIJ) T0206486
|
|
XR=XMAX-XMIN T0206490
|
|
48 IF(NC)52,13,49 T0206500
|
|
49 IF(NP)80,10,10 T0206510
|
|
10 DO 9 N=1,NC T0206520
|
|
SYMB=SYM(N) T0206530
|
|
XDIFFR=XMAX-X T0206533
|
|
IF(XDIFFR)105,106,106 T0206535
|
|
105 XDIFFR=0.0 T0206537
|
|
106 YDIFFR=YMAX-Y(N) T0206540
|
|
IF(YDIFFR)107,108,108 T0206543
|
|
107 YDIFFR=0.0 T0206545
|
|
108 L=51.-(50.*XDIFFR)/XR+.5 T0206547
|
|
K=101.-(100.*YDIFFR)/YR+.5 T0206550
|
|
M=XMODF(K,6) T0206560
|
|
K=(K-1)/6+1 T0206570
|
|
IF(M)21,16,21 T0206580
|
|
16 M=6 T0206590
|
|
21 LL=M T0206600
|
|
M=(M-1)*6 T0206610
|
|
19 T=AND(XY(L,K),XM(LL)) T0206620
|
|
CALL FORM2(T,M,SYMB) T0206630
|
|
XY(L,K)=OR(AND(XY(L,K),COMPL(XM(LL))),T) T0206640
|
|
9 CONTINUE T0206650
|
|
GO TO 15 T0206660
|
|
80 DO 86 I=1,17 T0206670
|
|
86 XY(1,I)=BLANKS T0206680
|
|
L=1 T0206690
|
|
DO 95 N=1,NC T0206700
|
|
SYMB=SYM(N) T0206710
|
|
YDIFFR=YMAX-Y(N) T0206713
|
|
IF(YDIFFR)860,865,865 T0206715
|
|
860 YDIFFR=0.0 T0206717
|
|
865 K=101.-(100.*YDIFFR)/YR+.5 T0206720
|
|
M=XMODF(K,6) T0206730
|
|
IF(M)90,91,90 T0206740
|
|
91 M=6 T0206750
|
|
90 LL=M T0206760
|
|
K=(K-1)/6+1 T0206770
|
|
M=(M-1)*6 T0206780
|
|
T=AND(XY(L,K),XM(LL)) T0206790
|
|
CALL FORM2(T,M,SYMB) T0206800
|
|
95 XY(L,K)=OR(AND(XY(L,K),COMPL(XM(LL))),T) T0206810
|
|
IF(XMODF(IC,5))97,96,97 T0206820
|
|
96 W=TP T0206830
|
|
GO TO 98 T0206840
|
|
97 W=TC T0206850
|
|
98 PRINT 101,X,W,(XY(1,N),N=1,17),W T0206860
|
|
IC=IC+1 T0206870
|
|
GO TO 15 T0206880
|
|
13 M=6-JX T0206885
|
|
LL=50+M T0206890
|
|
T=JX T0206893
|
|
IF(5-JX)131,131,135 T0206895
|
|
131 T=0.0 T0206897
|
|
135 RLAB=XMAX-(T*XIJ)/5.0 T0206900
|
|
W=TC T0206910
|
|
K=52 T0206915
|
|
DO 31 L=M,LL T0206920
|
|
K=K-1 T0206925
|
|
I=XMODF(L,5) T0206930
|
|
IF(I-1)2,3,2 T0206935
|
|
3 W=TP T0206940
|
|
PRINT 101,RLAB,W,(XY(K,N),N=1,17),W,RLAB T0206945
|
|
RLAB=RLAB-XIJ T0206950
|
|
W=TC T0206955
|
|
GO TO 31 T0206960
|
|
2 PRINT 102,W,(XY(K,N),N=1,17),W T0206965
|
|
31 CONTINUE T0206970
|
|
52 KL=1 T0206980
|
|
GO TO 230 T0206990
|
|
14 NCC=0 T0207000
|
|
15 RETURN T0207010
|
|
END T0207020
|
|
C LABEL T0207030
|
|
C LIST8 T0207040
|
|
C FORTRAN T0207050
|
|
CPLUG SUBROUTINE PLUG FOR BMD02T JULY 22, 1964 T0207060
|
|
SUBROUTINE PLUG (W) T0207070
|
|
C T0207080
|
|
DIMENSION Z(17000),DUMB(20),FMT(120),NSELL(20),RX(200),PX(200), T0207090
|
|
1 LISA(20),ADDXY(200),SUBXY(200),CXY(200),QXY(200),SCXY(200), T0207100
|
|
2 SQXY(200),AMXY(200),PHASXY(200),RXY(200),RYX(200),YP( 4),SYM( 4),T0207110
|
|
3 CRO(400),COXYSQ(200),IPRNT1(20),IPRNT2(20) T0207120
|
|
DIMENSION W(200),IPRNT3(20) T0207130
|
|
COMMON Z,DUMB,FMT,NSELL,RX,PX,LISA,ADDXY,SUBXY,CXY,QXY,SCXY,SQXY, T0207140
|
|
- YP,SYM,CRO,COXYSQ, T0207150
|
|
- IORDAT,IPLDAT,IDETRN,IPREWT,THETA,KSER,NPOINT,LAG,NSEL,IPLOT, T0207160
|
|
- DELTAT,UNIT,INFORM,KVR,IPRNT1,IPRNT2,IPRNT3,IPOW,ICCS,ICOH, T0207170
|
|
- PI,FNPT,CONST,PMD,FLAG,FLLAG,LLAG,KIT,KDUM,MISTAK,MX,KX T0207180
|
|
EQUIVALENCE (RXY,CXY,AMXY),(RYX,QXY,PHASXY),(RX,ADDXY),(PX,SUBXY) T0207190
|
|
C T0207200
|
|
SYM(1)=6H*00000 T0207210
|
|
C T0207220
|
|
YMIN=9999999.0 T0207230
|
|
YMAX=-9999999.0 T0207240
|
|
DO 450 I=1,LLAG T0207250
|
|
YMIN=MIN1F (YMIN,W(I)) T0207260
|
|
450 YMAX=MAX1F (YMAX,W(I)) T0207270
|
|
IF( LLAG-50) 455,460,460 T0207280
|
|
455 KA=1 T0207300
|
|
KB=0 T0207310
|
|
GO TO 470 T0207320
|
|
C T0207330
|
|
460 KA=-1 T0207340
|
|
KB=-1 T0207350
|
|
470 XMAX=0.5/DELTAT T0207360
|
|
615 ANY=-PMD T0207370
|
|
DO 630 I=1,LLAG T0207380
|
|
ANY=ANY+PMD T0207390
|
|
YP(1)=W(I) T0207400
|
|
630 CALL PLOTR (ANY,0.00,XMAX,YP,SYM,YMIN,YMAX,1,KA) T0207410
|
|
CALL PLOTR (ANY,0.00,XMAX,YP,SYM,YMIN,YMAX,KB,KA) T0207420
|
|
RETURN T0207430
|
|
C T0207440
|
|
END T0207450
|
|
C LABEL T0207460
|
|
C LIST8 T0207470
|
|
C FORTRAN T0207480
|
|
CPOWER SUBROUTINE POWER FOR BMD02T JULY 22, 1964 T0207490
|
|
SUBROUTINE POWER (NNX,X,XBAR,XALPHA,SPX) T0207500
|
|
C T0207510
|
|
AMDAF(FN,H,R)=((FN*H)**2)*(1.0-2.0*(R/FN)-2.0*(R/FN)**2) T0207520
|
|
C T0207530
|
|
DIMENSION Z(17000),DUMB(20),FMT(120),NSELL(20),RX(200),PX(200), T0207540
|
|
1 LISA(20),ADDXY(200),SUBXY(200),CXY(200),QXY(200),SCXY(200), T0207550
|
|
2 SQXY(200),AMXY(200),PHASXY(200),RXY(200),RYX(200),YP( 4),SYM( 4),T0207560
|
|
3 CRO(400),COXYSQ(200),IPRNT1(20),IPRNT2(20) T0207570
|
|
DIMENSION X(1000),SPX(200),IPRNT3(20) T0207580
|
|
COMMON Z,DUMB,FMT,NSELL,RX,PX,LISA,ADDXY,SUBXY,CXY,QXY,SCXY,SQXY, T0207590
|
|
- YP,SYM,CRO,COXYSQ, T0207600
|
|
- IORDAT,IPLDAT,IDETRN,IPREWT,THETA,KSER,NPOINT,LAG,NSEL,IPLOT, T0207610
|
|
- DELTAT,UNIT,INFORM,KVR,IPRNT1,IPRNT2,IPRNT3,IPOW,ICCS,ICOH, T0207620
|
|
- PI,FNPT,CONST,PMD,FLAG,FLLAG,LLAG,KIT,KDUM,MISTAK,MX,KX,Q T0207630
|
|
C T0207640
|
|
EQUIVALENCE (RXY,CXY,AMXY),(RYX,QXY,PHASXY),(RX,ADDXY),(PX,SUBXY),T0207650
|
|
X(YES,IYES),(IA,A),(IB,B),(IP,P) T0207660
|
|
C T0207670
|
|
A=6HA T0207680
|
|
B=6HB T0207690
|
|
BLANK=6H T0207700
|
|
P=6HP T0207710
|
|
STAR=6H* T0207720
|
|
SYM(1)=6H*00000 T0207730
|
|
YES=6HYES T0207740
|
|
C T0207750
|
|
DO 301 I=1,LLAG T0207760
|
|
SX=0.0 T0207770
|
|
M=I-1 T0207780
|
|
NX=NPOINT-M T0207790
|
|
FNX=NX T0207800
|
|
DO 305 J=1,NX T0207810
|
|
K=M+J T0207820
|
|
305 SX=SX+X(J)*X(K) T0207830
|
|
301 RX(I)=SX/FNX T0207840
|
|
IF(IDETRN-IYES)303,302,303 T0207850
|
|
302 FI=-1.0 T0207860
|
|
XBAR2=XBAR*XBAR T0207870
|
|
XALSQ=(XALPHA*XALPHA)/12.0 T0207880
|
|
DO 306 I=1,LLAG T0207890
|
|
FI=FI+1.0 T0207900
|
|
FLAMDA=AMDAF(FNPT,DELTAT,FI) T0207910
|
|
306 RX(I)=RX(I)-XBAR2-(FLAMDA*XALSQ) T0207920
|
|
303 PRINT 1301,UNIT,NNX T0207930
|
|
1301 FORMAT(1H1,21X,3HLAG,30X,14HAUTOCOVARIANCE/20X,1H(,A6,1H),28X,9HOFT0207940
|
|
X SERIES,I3//) T0207950
|
|
TIME=-DELTAT T0207960
|
|
DO 320 I=1,LLAG T0207970
|
|
TIME=TIME+DELTAT T0207980
|
|
320 PRINT 1302,TIME,RX(I) T0207990
|
|
1302 FORMAT(19X,F9.4,26X,F13.6) T0208000
|
|
TIME1=TIME T0208010
|
|
IF(IPRNT1(KIT+1)-IB)321,325,321 T0208020
|
|
321 IF(IPRNT1(KIT+1)-IA)615,325,615 T0208030
|
|
325 RXMIN=10**10 T0208040
|
|
RXMAX=-10**10 T0208050
|
|
PRINT 1303,NNX,TIME1,UNIT T0208060
|
|
1303 FORMAT(1H1,9X,42HGRAPH OF AUTOCOVARIANCE FUNCTION OF SERIES,I3,37HT0208070
|
|
X PLOTTED AGAINST TIME UP TO A LAG OF F9.4,1X,A6//) T0208080
|
|
DO 335 I=1,LLAG T0208090
|
|
RXMIN=MIN1F(RXMIN,RX(I)) T0208100
|
|
335 RXMAX=MAX1F(RXMAX,RX(I)) T0208110
|
|
ANY=-DELTAT T0208150
|
|
IF(LLAG-50) 600,605,605 T0208160
|
|
600 K1=0 T0208170
|
|
K2=1 T0208180
|
|
GO TO 606 T0208190
|
|
C T0208200
|
|
605 K1=-1 T0208210
|
|
K2=K1 T0208220
|
|
606 DO 610 I=1,LLAG T0208230
|
|
ANY=ANY+DELTAT T0208240
|
|
YP(1)=RX(I) T0208250
|
|
610 CALL PLOTR(ANY,0.,TIME1,YP,SYM,RXMIN,RXMAX,1,K2) T0208260
|
|
CALL PLOTR(ANY,0.,TIME1,YP,SYM,RXMIN,RXMAX,K1,K2) T0208270
|
|
615 SX=RX(1) T0208280
|
|
RX(1)=0.5*RX(1) T0208290
|
|
RX(LLAG)=0.5*RX(LLAG) T0208300
|
|
S1=-Q T0208310
|
|
DO 401 IH=1,LLAG T0208320
|
|
PX(IH)=0.0 T0208330
|
|
S1=S1+Q T0208340
|
|
S=-S1 T0208350
|
|
DO 402 JP=1,LLAG T0208360
|
|
S=S+S1 T0208370
|
|
402 PX(IH)=PX(IH)+RX(JP)*COSF(S) T0208380
|
|
401 PX(IH)=PX(IH)*CONST T0208390
|
|
SPX(1)=.54*PX(1)+.46*PX(2) T0208400
|
|
SPX(LLAG)=.54*PX(LLAG)+.46*PX(LLAG-1) T0208410
|
|
KK=LLAG-1 T0208420
|
|
DO 415 J=2,KK T0208430
|
|
415 SPX(J)=.54*PX(J)+.23*(PX(J+1)+PX(J-1)) T0208440
|
|
OMEGA=-Q T0208450
|
|
THET1=1.0+(THETA*THETA) T0208460
|
|
THET2=2.0*THETA T0208470
|
|
IF(IPREWT-IYES)420,425,420 T0208480
|
|
425 DO 100 I=1,LLAG T0208490
|
|
OMEGA=OMEGA+Q T0208500
|
|
AA=THET1-THET2*COSF(OMEGA) T0208510
|
|
100 SPX(I)=SPX(I)/AA T0208520
|
|
420 PRINT 1401,UNIT,NNX T0208530
|
|
1401 FORMAT(1H119X9HFREQUENCY22X24HPOWER SPECTRAL ESTIMATES/17X,8H(CYCLT0208540
|
|
-ES/A6,1H),25X, 9HOF SERIES I3//) T0208550
|
|
ANY=-PMD T0208560
|
|
ASSIGN 442 TO KADD1 T0208570
|
|
ASSIGN 433 TO KADD2 T0208580
|
|
RXMAX=-(0.5*(SPX(1)+SPX(LLAG))) T0208590
|
|
DO 435 I=1,LLAG T0208600
|
|
ANY=ANY+PMD T0208610
|
|
IF(SPX(I))421,422,422 T0208620
|
|
421 RXY(I)=STAR T0208630
|
|
GO TO 423 T0208640
|
|
422 RXY(I)=BLANK T0208650
|
|
423 PRINT 1402,ANY,SPX(I),RXY(I) T0208660
|
|
1402 FORMAT(21X,F8.3,26X,F14.7,A1) T0208670
|
|
RXMAX=RXMAX+SPX(I) T0208680
|
|
IF(RXY(I)-BLANK)432,435,432 T0208690
|
|
432 GO TO KADD2,(433,434) T0208700
|
|
433 SPMAX=-9999999.0 T0208710
|
|
DO 4335 J=1,LLAG T0208720
|
|
SPMAX=MAX1F(SPMAX,SPX(J)) T0208730
|
|
4335 CONTINUE T0208740
|
|
ASSIGN 440 TO KADD1 T0208750
|
|
ASSIGN 434 TO KADD2 T0208760
|
|
434 SPX(I)=SPMAX T0208770
|
|
435 CONTINUE T0208780
|
|
GO TO KADD1,(440,442) T0208790
|
|
440 PRINT 1405 T0208800
|
|
1405 FORMAT(1H0, 6X,88H* THIS ESTIMATE IS NEGATIVE INDICATING SOME LEAKT0208810
|
|
XAGE. IT WILL BE SET EQUAL TO THE MAXIMUM/ 9X,85HVALUE OF THE REMAIT0208820
|
|
XNING ESTIMATES FOR FUTURE PLOTS AND EQUAL TO ZERO FOR CALCULATIONST0208830
|
|
X.) T0208840
|
|
442 SPMAX=(Q*RXMAX)/DELTAT T0208850
|
|
ANY=SPMAX-SX T0208860
|
|
PRINT 1406,SPMAX,SX,ANY T0208870
|
|
1406 FORMAT(1H0,6X,44HTHE CHECK SUM OF POWER SPECTRAL ESTIMATES IS,F14.T0208880
|
|
X7,14H AND SHOULD BE,F14.7/7X,17HTHE DIFFERENCE IS,F14.7) T0208890
|
|
IF(IPRNT1(KIT+1)-IB)443,448,443 T0208900
|
|
443 IF(IPRNT1(KIT+1)-IP)476,448,476 T0208910
|
|
448 IF(IPLOT) 450,460,450 T0208920
|
|
450 PRINT 1404,NNX,UNIT T0208930
|
|
1404 FORMAT (1H1,18X,47HGRAPH OF THE POWER SPECTRAL ESTIMATES OF SERIEST0208940
|
|
XI3,27H AGAINST FREQUENCY (CYCLES/A6,1H)//) T0208950
|
|
CALL PLUG (SPX) T0208960
|
|
IF(IPLOT) 476,460,460 T0208970
|
|
460 PRINT 1403,NNX,UNIT T0208980
|
|
1403 FORMAT(1H1,10X,34HPOWER SPECTRAL ESTIMATES OF SERIESI3,6X49HPLOTTET0208990
|
|
XD IN A LOG SCALE AGAINST FREQUENCY (CYCLES/A6,1H)//) T0209000
|
|
DO 475 I=1,LLAG T0209010
|
|
475 RX(I)=LOGF(SPX(I)) T0209020
|
|
CALL PLUG (RX) T0209030
|
|
476 DO 471 I=1,LLAG T0209040
|
|
IF(RXY(I)-BLANK)472,471,472 T0209050
|
|
472 SPX(I)=0.0 T0209060
|
|
471 CONTINUE T0209070
|
|
470 RETURN T0209080
|
|
C T0209090
|
|
END T0209100
|
|
SUBROUTINE REMOVE(I) T0209110
|
|
ENDFILE I T0209120
|
|
REWIND I T0209130
|
|
RETURN T0209138
|
|
END T0209140
|
|
REAL FUNCTION ATANF(A) T0209150
|
|
ATANF=ATAN(A) T0209160
|
|
RETURN T0209170
|
|
END T0209180
|
|
REAL FUNCTION LOGF(A) T0209190
|
|
LOGF=ALOG(A) T0209200
|
|
RETURN T0209210
|
|
END T0209220
|
|
REAL FUNCTION SQRTF(A) T0209230
|
|
SQRTF=SQRT(A) T0209240
|
|
RETURN T0209250
|
|
END T0209260
|
|
T0209270
|
|
T0209280
|
|
C LABEL T0209290
|
|
C LIST8 T0209300
|
|
C FORTRAN T0209310
|
|
CSMEAN SUBROUTINE SMEAN FOR BMD02T MARCH 16, 1965 T0209320
|
|
SUBROUTINE SMEAN (NNX,X,XBAR,XALPHA) T0209330
|
|
C T0209340
|
|
DIMENSION Z(17000),DUMB(20),FMT(120),NSELL(20),RX(200),PX(200), T0209350
|
|
1 LISA(20),ADDXY(200),SUBXY(200),CXY(200),QXY(200),SCXY(200), T0209360
|
|
2 SQXY(200),AMXY(200),PHASXY(200),RXY(200),RYX(200),YP( 4),SYM( 4),T0209370
|
|
3 CRO(400),COXYSQ(200),IPRNT1(20),IPRNT2(20) T0209380
|
|
DIMENSION X(1000),IPRNT3(20) T0209390
|
|
COMMON Z,DUMB,FMT,NSELL,RX,PX,LISA,ADDXY,SUBXY,CXY,QXY,SCXY,SQXY, T0209400
|
|
- YP,SYM,CRO,COXYSQ, T0209410
|
|
- IORDAT,IPLDAT,IDETRN,IPREWT,THETA,KSER,NPOINT,LAG,NSEL,IPLOT, T0209420
|
|
- DELTAT,UNIT,INFORM,KVR,IPRNT1,IPRNT2,IPRNT3,IPOW,ICCS,ICOH, T0209430
|
|
- PI,FNPT,CONST,PMD,FLAG,FLLAG,LLAG,KIT,KDUM,MISTAK,MX,KX T0209440
|
|
-,Q,KPOINT T0209445
|
|
EQUIVALENCE (RXY,CXY,AMXY),(RYX,QXY,PHASXY),(RX,ADDXY),(PX,SUBXY),T0209450
|
|
X(YES,IYES) T0209460
|
|
C T0209470
|
|
YES=6HYES T0209480
|
|
SYM(1)=6H*00000 T0209490
|
|
C T0209500
|
|
NPOINT=KPOINT T0209505
|
|
IF (INFORM) 100,105,105 T0209510
|
|
100 DO 110 I=1,NPOINT T0209520
|
|
ND=I+(NNX-1)*NPOINT T0209530
|
|
110 X(I)=Z(ND) T0209540
|
|
GO TO 135 T0209550
|
|
105 ISX=NPOINT*(NNX-1) T0209560
|
|
DO 115 I=1,NPOINT T0209570
|
|
K=I+ISX T0209580
|
|
115 X(I)=Z(K) T0209590
|
|
135 IF(IORDAT-IYES)140,130,140 T0209600
|
|
130 PRINT 1102,NNX T0209610
|
|
1102 FORMAT(1H15X24HORIGINAL DATA OF SERIES I3//) T0209620
|
|
PRINT 1104,(X(I),I=1,NPOINT) T0209630
|
|
1104 FORMAT(10F11.5) T0209640
|
|
140 IF(IPLDAT-IYES)141,200,141 T0209650
|
|
200 HU=-10**10 T0209660
|
|
SM=10**10 T0209670
|
|
DO 210 I=1,NPOINT T0209680
|
|
HU=MAX1F(HU,X(I)) T0209690
|
|
210 SM=MIN1F (SM,X(I)) T0209700
|
|
PRINT 2001,NNX T0209740
|
|
2001 FORMAT(1H1,10X,22HGRAPH OF INPUT SERIES I3///) T0209750
|
|
FI=0.0 T0209760
|
|
DO 215 I=1,NPOINT T0209770
|
|
FI=FI+1.0 T0209780
|
|
YP(1)=X(I) T0209790
|
|
CALL PLOTR (FI,1.0,FNPT,YP,SYM,SM,HU,1,-1) T0209800
|
|
215 CONTINUE T0209810
|
|
CALL PLOTR (FI,1.0,FNPT,YP,SYM,SM,HU,-1,-1) T0209820
|
|
141 MISTAK=0 T0209830
|
|
150 LL=KIT+1 T0209840
|
|
IF(NNX-LISA(LL)) 145,155,145 T0209850
|
|
155 CALL TRANS(NNX,X) T0209860
|
|
IF (MISTAK) 160,145,160 T0209870
|
|
145 IF(IDETRN-IYES)305,300,305 T0209880
|
|
300 PLUI=0.0 T0209890
|
|
MU=(NPOINT+2)/3 T0209900
|
|
NSMALL =NPOINT-MU+1 T0209910
|
|
DO 310 I=NSMALL,NPOINT T0209920
|
|
310 PLUI=PLUI+X(I) T0209930
|
|
PHO=0.0 T0209940
|
|
DO 315 I=1,MU T0209950
|
|
315 PHO=PHO+X(I) T0209960
|
|
FMU=MU T0209970
|
|
XALPHA=(PLUI-PHO)/(DELTAT*FMU*(FNPT-FMU)) T0209980
|
|
305 SUMX=0.0 T0209990
|
|
DO 320 I=1,NPOINT T0210000
|
|
320 SUMX=SUMX+X(I) T0210010
|
|
XBAR=SUMX/FNPT T0210020
|
|
IF(IDETRN-IYES)325,330,325 T0210030
|
|
325 DO 335 I=1,NPOINT T0210040
|
|
335 X(I)=X(I)-XBAR T0210050
|
|
330 IF(IPREWT-IYES)160,340,160 T0210060
|
|
340 NT=NPOINT-1 T0210070
|
|
DO 350 I=1,NT T0210080
|
|
350 X(I)=X(I+1)-THETA*X(I) T0210090
|
|
NPOINT=NT T0210100
|
|
FNPT=NPOINT T0210110
|
|
160 RETURN T0210120
|
|
C T0210130
|
|
END T0210140
|
|
C LABEL T0210150
|
|
C LIST8 T0210160
|
|
C FORTRAN T0210170
|
|
CTPWD SUBROUTINE TPWD FOR BMDXXX SERIES T0210180
|
|
SUBROUTINE TPWD(NT1,NT2) T0210190
|
|
IF(NT1)40,10,12 T0210200
|
|
10 NT1=5 T0210210
|
|
12 IF(NT1-NT2)14,19,14 T0210220
|
|
14 IF(NT2-5)15,19,17 T0210230
|
|
15 REWIND NT2 T0210240
|
|
GO TO 19 T0210250
|
|
17 CALL REMOVE(NT2) T0210260
|
|
19 IF(NT1-5)18,24,18 T0210270
|
|
18 IF(NT1-6)22,40,22 T0210280
|
|
22 REWIND NT1 T0210290
|
|
24 NT2=NT1 T0210300
|
|
28 RETURN T0210310
|
|
40 PRINT 49 T0210320
|
|
CALL EXIT T0210330
|
|
49 FORMAT(25H ERROR ON TAPE ASSIGNMENT) T0210340
|
|
END T0210350
|
|
C LABEL T0210360
|
|
C LIST8 T0210370
|
|
C FORTRAN T0210380
|
|
CTRANS SUBROUTINE TRANS FOR BMD02T JUNE 2, 1964 T0210390
|
|
SUBROUTINE TRANS(NNX,X) T0210400
|
|
C T0210410
|
|
ASNF(V)=ATANF(V/SQRTF(1.0-V**2)) T0210420
|
|
C T0210430
|
|
DIMENSION Z(17000),DUMB(20),FMT(120),NSELL(20),RX(200),PX(200), T0210440
|
|
1 LISA(20),ADDXY(200),SUBXY(200),CXY(200),QXY(200),SCXY(200), T0210450
|
|
2 SQXY(200),AMXY(200),PHASXY(200),RXY(200),RYX(200),YP( 4),SYM( 4),T0210460
|
|
3 CRO(400),COXYSQ(200),CON( 8),IBIN( 8),IPRNT1(20),IPRNT2(20) T0210470
|
|
DIMENSION X(1000),IPRNT3(20) T0210480
|
|
COMMON Z,DUMB,FMT,NSELL,RX,PX,LISA,ADDXY,SUBXY,CXY,QXY,SCXY,SQXY, T0210490
|
|
- YP,SYM,CRO,COXYSQ T0210500
|
|
- IORDAT,IPLDAT,IDETRN,IPREWT,THETA,KSER,NPOINT,LAG,NSEL,IPLOT, T0210510
|
|
- DELTAT,UNIT,INFORM,KVR,IPRNT1,IPRNT2,IPRNT3,IPOW,ICCS,ICOH, T0210520
|
|
- PI,FNPT,CONST,PMD,FLAG,FLLAG,LLAG,KIT,KDUM,MISTAK,MX,KX T0210530
|
|
EQUIVALENCE (RXY,CXY,AMXY),(RYX,QXY,PHASXY),(RX,ADDXY),(PX,SUBXY),T0210540
|
|
X(SPC,ISPC) T0210550
|
|
C T0210560
|
|
SPC =(+6HSPECTG) T0210570
|
|
C T0210580
|
|
READ 1002,JOB,NTRAN,(IBIN(I),CON(I),I=1,NTRAN) T0210590
|
|
1002 FORMAT(A6,I1,8(I2,F6.0)) T0210600
|
|
IF(JOB-ISPC)700,602,700 T0210610
|
|
602 DO 500 I=1,NTRAN T0210620
|
|
IF(IBIN(I)-17) 605,600,605 T0210630
|
|
605 JESUS=IBIN(I) T0210640
|
|
IF(JESUS-6)610,905,610 T0210650
|
|
C T0210660
|
|
600 JESUS=6 T0210670
|
|
610 CC=CON(I) T0210680
|
|
IF(JESUS*(JESUS-11)) 620,905,905 T0210685
|
|
620 DO 150 K=1,NPOINT T0210687
|
|
GO TO (10,20,30,40,50,60,70,80,90,100) ,JESUS T0210690
|
|
10 IF(X(K))200,150,14 T0210710
|
|
C T0210740
|
|
14 X(K)=SQRTF(X(K)) T0210750
|
|
GO TO 150 T0210770
|
|
C T0210780
|
|
20 IF(X(K))200,22,23 T0210800
|
|
22 X(K)=1.0 T0210810
|
|
GO TO 150 T0210820
|
|
C T0210830
|
|
23 X(K)=SQRTF(X(K))+SQRTF(X(K)+1.0) T0210840
|
|
GO TO 150 T0210850
|
|
30 IF(X(K))200,200,31 T0210870
|
|
31 X(K)=0.4342944819*LOGF(X(K)) T0210880
|
|
GO TO 150 T0210890
|
|
C T0210900
|
|
40 X(K)=EXPF(X(K)) T0210920
|
|
GO TO 150 T0210930
|
|
C T0210940
|
|
50 IF(X(K))200,150,53 T0210960
|
|
C T0210990
|
|
53 IF (X(K)-1.0) 54,55,200 T0211000
|
|
54 ARG =SQRTF(X(K)) T0211010
|
|
X(K)=ASNF(ARG) T0211020
|
|
GO TO 150 T0211030
|
|
C T0211040
|
|
55 X(K)=PI/2.0 T0211050
|
|
GO TO 150 T0211070
|
|
C T0211080
|
|
60 IF(X(K))200,200,61 T0211100
|
|
61 X(K)=LOGF(X(K)) T0211110
|
|
GO TO 150 T0211120
|
|
C T0211130
|
|
70 IF(X(K))71,200,71 T0211150
|
|
71 X(K)=1.0/X(K) T0211160
|
|
GO TO 150 T0211170
|
|
C T0211180
|
|
80 X(K)=X(K)+CC T0211200
|
|
GO TO 150 T0211210
|
|
C T0211220
|
|
90 X(K)=X(K)*CC T0211240
|
|
GO TO 150 T0211250
|
|
C T0211260
|
|
100 IF(X(K))200,200,101 T0211280
|
|
101 X(K)=X(K)**CC T0211290
|
|
GO TO 150 T0211295
|
|
200 PRINT 1001,K,NNX,IBIN(I) T0211300
|
|
1001 FORMAT(11H0DATA POINT I5,10H OF SERIESI3, T0211310
|
|
X57H VIOLATES THE RESTRICTION FOR TRANSGENERATION OF THE TYPEI3, T0211315
|
|
X52H. THE PROGRAM CONTINUES LEAVING THE VALUE UNCHANGED.) T0211320
|
|
150 CONTINUE T0211330
|
|
500 CONTINUE T0211340
|
|
300 RETURN T0211350
|
|
700 PRINT 1003,JOB T0211360
|
|
901 PRINT 1004 T0211370
|
|
MISTAK=11 T0211380
|
|
GO TO 300 T0211390
|
|
1003 FORMAT(58H0CONTROL CARD ERROR. PROGRAM EXPECTED A SPECTG CARD BUT T0211400
|
|
XA A6,16H CARD WAS FOUND.) T0211405
|
|
1004 FORMAT(55H0PROGRAM WILL GO TO THE NEXT SELECTION OR PROBLEM CARD.)T0211410
|
|
905 PRINT 1005 T0211415
|
|
GO TO 901 T0211420
|
|
1005 FORMAT(40H0ILLEGAL TRANSGENERATION CODE SPECIFIED.) T0211425
|
|
END T0211430
|
|
C LABEL T0211440
|
|
C LIST8 T0211450
|
|
C FORTRAN T0211460
|
|
CVFCHCK SUBROUTINE TO CHECK FOR PROPER NUMBER OF VARIABLE FORMAT CRDST0211470
|
|
SUBROUTINE VFCHCK(NVF) T0211480
|
|
IF(NVF)10,10,20 T0211490
|
|
10 PRINT 4000 T0211500
|
|
NVF=1 T0211510
|
|
50 RETURN T0211520
|
|
C T0211530
|
|
20 IF(NVF-10)50,50,10 T0211540
|
|
C T0211550
|
|
4000 FORMAT(1H023X71HNUMBER OF VARIABLE FORMAT CARDS INCORRECTLY SPECIFT0211560
|
|
XIED, ASSUMED TO BE 1.) T0211570
|
|
END T0211580
|
|
C LABEL T0211590
|
|
C LIST8 T0211600
|
|
C FORTRAN T0211610
|
|
CSCALE SUBROUTINE SCALE FOR SUB PLOTR AUGUST 18, 1964 T0211620
|
|
SUBROUTINE SCALE(YMIN,YMAX,YINT,JY,TYMIN,TYMAX,YIJ) T0211630
|
|
DIMENSION C(10) T0211640
|
|
C(1)= 1.0 T0211650
|
|
C(2)=1.5 T0211660
|
|
C(3)=2.0 T0211670
|
|
C(4)=3.0 T0211680
|
|
C(5)=4.0 T0211690
|
|
C(6)=5.0 T0211700
|
|
C(7)=7.5 T0211710
|
|
C(8)=10.0 T0211720
|
|
TEST=2**(-21) T0211730
|
|
50 YR=YMAX-YMIN T0211740
|
|
TT=YR/YINT T0211750
|
|
J=LOG10F(TT) T0211760
|
|
E=10.0**J T0211770
|
|
TT=TT/E T0211780
|
|
I=0 T0211790
|
|
IF(TT-1.0)205,201,201 T0211800
|
|
205 TT=TT*10.0 T0211810
|
|
E=E/10.0 T0211820
|
|
201 I=I+1 T0211830
|
|
IF(8-I)1,2,2 T0211840
|
|
1 E=E*10.0 T0211850
|
|
I=1 T0211860
|
|
2 T3=TT-C(I) T0211870
|
|
IF (T3.GT. .000001 .OR. T3 .LT. -.000001) GO TO 252 T0211872
|
|
TT=INT(TT*1000000)/1000000 T0211874
|
|
252 IF (TT-C(I))233,202,201 T0211876
|
|
233 YIJ=C(I)*E T0211880
|
|
GO TO 203 T0211890
|
|
202 Y=YMIN/C(I) T0211900
|
|
J=Y T0211910
|
|
T=J T0211920
|
|
GO TO 233 T0211930
|
|
204 YIJ=C(I+1)*E T0211940
|
|
203 X=((YMAX+YMIN)/YIJ-YINT )/2.0+.00001 T0211950
|
|
K=X T0211960
|
|
IF(K)235,240,240 T0211970
|
|
235 Y=K T0211980
|
|
IF(X-Y)236,240,236 T0211990
|
|
236 K=K-1 T0212000
|
|
240 TYMIN=K T0212010
|
|
TYMIN=YIJ*TYMIN T0212020
|
|
TYMAX=TYMIN+YINT*YIJ T0212030
|
|
IF(YMAX-TYMAX-TEST)10,10,201 T0212040
|
|
10 TT=YINT/10. T0212050
|
|
JY=TT+.000001 T0212060
|
|
YIJ=YINT*(YIJ/10.0) T0212070
|
|
J=TYMIN/ YIJ T0212080
|
|
IF (K)242,241,241 T0212090
|
|
242 J=J-1 T0212100
|
|
241 J=J*JY+JY-K T0212110
|
|
JY=J T0212120
|
|
RETURN T0212130
|
|
END T0212140
|
|
REAL FUNCTION SINF(A) T0212150
|
|
SINF=SIN(A) T0212160
|
|
RETURN T0212170
|
|
END T0212180
|
|
REAL FUNCTION COSF(A) T0212190
|
|
COSF=COS(A) T0212200
|
|
RETURN T0212210
|
|
END T0212220
|
|
REAL FUNCTION MIN1F(A,B) T0212230
|
|
MIN1F=AMIN1(A,B) T0212240
|
|
RETURN T0212250
|
|
END T0212260
|
|
REAL FUNCTION MAX1F(A,B) T0212270
|
|
MAX1F=AMAX1(A,B) T0212280
|
|
RETURN T0212290
|
|
END T0212300
|
|
REAL FUNCTION ABSF(A) T0212310
|
|
ABSF=ABS(A) T0212320
|
|
RETURN T0212330
|
|
END T0212340
|