Trailing-Edge
-
PDP-10 Archives
-
decuslib20-02
-
decus/20-0026/tally.ssp
There are 2 other files named tally.ssp in the archive. Click here to see a list.
C TALL 10
C ..................................................................TALL 20
C TALL 30
C SUBROUTINE TALLY TALL 40
C TALL 50
C PURPOSE TALL 60
C CALCULATE TOTAL, MEAN, STANDARD DEVIATION, MINIMUM, MAXIMUM TALL 70
C FOR EACH VARIABLE IN A SET (OR A SUBSET) OF OBSERVATIONS TALL 80
C TALL 90
C USAGE TALL 100
C CALL TALLY(A,S,TOTAL,AVER,SD,VMIN,VMAX,NO,NV,IER) TALL 110
C TALL 120
C DESCRIPTION OF PARAMETERS TALL 130
C A - OBSERVATION MATRIX, NO BY NV TALL 140
C S - INPUT VECTOR INDICATING SUBSET OF A. ONLY THOSE TALL 150
C OBSERVATIONS WITH A NON-ZERO S(J) ARE CONSIDERED. TALL 160
C VECTOR LENGTH IS NO. TALL 170
C TOTAL - OUTPUT VECTOR OF TOTALS OF EACH VARIABLE. VECTOR TALL 180
C LENGTH IS NV. TALL 190
C AVER - OUTPUT VECTOR OF AVERAGES OF EACH VARIABLE. VECTOR TALL 200
C LENGTH IS NV. TALL 210
C SD - OUTPUT VECTOR OF STANDARD DEVIATIONS OF EACH TALL 220
C VARIABLE. VECTOR LENGTH IS NV. TALL 230
C VMIN - OUTPUT VECTOR OF MINIMA OF EACH VARIABLE. VECTOR TALL 240
C LENGTH IS NV. TALL 250
C VMAX - OUTPUT VECTOR OF MAXIMA OF EACH VARIABLE. VECTOR TALL 260
C LENGTH IS NV. TALL 270
C NO - NUMBER OF OBSERVATIONS TALL 280
C NV - NUMBER OF VARIABLES FOR EACH OBSERVATION TALL 290
C IER - ZERO, IF NO ERROR. TALL 291
C - 1, IF S IS NULL. VMIN=-1.E75, VMAX=SD=AVER=1.E75. TALL 292
C - 2, IF S HAS ONLY ONE NON-ZERO ELEMENT. VMIN=VMAX. TALL 293
C SD=0.0 TALL 294
C TALL 300
C REMARKS TALL 310
C NONE TALL 320
C TALL 330
C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED TALL 340
C NONE TALL 350
C TALL 360
C METHOD TALL 370
C ALL OBSERVATIONS CORRESPONDING TO A NON-ZERO ELEMENT IN S TALL 380
C VECTOR ARE ANALYZED FOR EACH VARIABLE IN MATRIX A. TALL 390
C TOTALS ARE ACCUMULATED AND MINIMUM AND MAXIMUM VALUES ARE TALL 400
C FOUND. FOLLOWING THIS, MEANS AND STANDARD DEVIATIONS ARE TALL 410
C CALCULATED. THE DIVISOR FOR STANDARD DEVIATION IS ONE LESS TALL 420
C THAN THE NUMBER OF OBSERVATIONS USED. TALL 430
C TALL 440
C ..................................................................TALL 450
C TALL 460
SUBROUTINE TALLY(A,S,TOTAL,AVER,SD,VMIN,VMAX,NO,NV) TALL 470
DIMENSION A(1),S(1),TOTAL(1),AVER(1),SD(1),VMIN(1),VMAX(1) TALL 480
C TALL 490
C CLEAR OUTPUT VECTORS AND INITIALIZE VMIN,VMAX TALL 500
C TALL 510
IER=0 TALL 511
DO 1 K=1,NV TALL 520
TOTAL(K)=0.0 TALL 530
AVER(K)=1.7E38 TALL 540
SD(K)=1.7E38 TALL 550
VMIN(K)=-1.7E38 TALL 560
1 VMAX(K)=1.7E38 TALL 570
C TALL 580
C TEST SUBSET VECTOR TALL 590
C TALL 600
SCNT=0.0 TALL 610
DO 7 J=1,NO TALL 620
IJ=J-NO TALL 630
IF(S(J)) 2,7,2 TALL 640
2 SCNT=SCNT+1.0 TALL 650
C TALL 660
C CALCULATE TOTAL, MINIMA, MAXIMA TALL 670
C TALL 680
DO 6 I=1,NV TALL 690
IJ=IJ+NO TALL 700
TOTAL(I)=TOTAL(I)+A(IJ) TALL 710
IF(A(IJ)-VMIN(I)) 3,4,4 TALL 720
3 VMIN(I)=A(IJ) TALL 730
4 IF(A(IJ)-VMAX(I)) 6,6,5 TALL 740
5 VMAX(I)=A(IJ) TALL 750
6 SD(I)=SD(I)+A(IJ)*A(IJ) TALL 760
7 CONTINUE TALL 770
C TALL 780
C CALCULATE MEANS AND STANDARD DEVIATIONS TALL 790
C TALL 800
IF (SCNT)8,8,9 TALL 801
8 IER=1 TALL 802
GO TO 15 TALL 803
9 DO 10 I=1,NV TALL 810
10 AVER(I)=TOTAL(I)/SCNT TALL 820
IF (SCNT-1.0) 13,11,13 TALL 821
11 IER=2 TALL 822
DO 12 I=1,NV TALL 823
12 SD(I)=0.0 TALL 824
GO TO 15 TALL 825
13 DO 14 I=1,NV TALL 826
14 SD(I)=SQRT(ABS((SD(I)-TOTAL(I)*TOTAL(I)/SCNT)/(SCNT-1.0))) TALL 830
15 RETURN TALL 840
END TALL 850