Trailing-Edge
-
PDP-10 Archives
-
decuslib20-05
-
decus/20-0137/bmd/bmd07s.for
There is 1 other file named bmd07s.for in the archive. Click here to see a list.
00100 CBD07S GUTTMAN SCALES NO. 2 - PART 2 OCTOBER 22, 1965
00200 DIMENSION A(8000),RANKSM(8000),INDIVD(8000),KOLSKR(8000),HOLDA
00300 1(8000),KVAR(25),INV(25),LVAR(25),KOLHLD(25),N2 (25),HOLD(26),MFRE
00400 2Q(25,8),ERROR(25,7),MVAR(25),N1(25),NCOMB(25),DUMMY1(200),DUMMY2(2
00500 37),KONTER(25,7),DUMMY3(1),KSTEP(6), KDUMY6(2),REF(25),NN1(6),NN2(6
00600 4),NN3(6)
00700 COMMON JOBNMB
00800 COMMON DUMMY2,FRSTMO,SECMON,A,LVAR,MFREQ,ERROR,NCASE,HOLD,NCOMB,KV
00900 1AR,INDRNK,INDKOL,ISCALE,LESTN,LEAVE,IERROR,KANEND,KOMPER,KORDER,IN
01000 2DTEM,IDAY,IYEAR,NUMPGE,JOYCAE,MAXLOC,N1,N2,DUMMY3,LASTRD,NDREDK,L,
01100 3IFINAL,ILAST,IFIRST,IXTRA,KK,ICHNGE,NFIRST,L1,IEND,MCOMB,IPUNCH,NP
01200 4ER,KDUMY6,INDEX3
01300 DOUBLE PRECISION DUMMY2,FRSTMO,SECMON,JOBNMB,KDUMY6,REF,KCHECK
01400 DOUBLE PRECISION DUM,QCTR
01500 C
01600 EQUIVALENCE(A,RANKSM,INDIVD,KOLSKR,HOLDA),(INV,LVAR),(HOLD,KOLHLD)
01700 1,(DUMMY1,MFREQ),(DUMMY2,MVAR),(DUMMY2(26),LASTNO),(DUMMY2(27),NVAR
01800 2),(ERROR,KONTER),(YES,IYES)
01900 C
02000 DATA QCTR/8H* /
02100 DATA DUM/8HFORCOM /
02200 DATA IYES/4HYES /
02300 IT1=1
02400 CALL USAGEB('BMD07S')
02500 C
02600 C BMD07S USES THE FOLLOWING SUBROUTINES FOUND IN BMD04S,
02700 C COMBIN DECTER FNDCMB FRSTCM
02800 C MOVE MOVFOR ORDER ORQUES
02900 C REORDR
03000 C
03100 C THIS PROGRAM REQUIRES THE TAPE UNIT DESIGNATED IT4 IN BMD06S.
03200 C IT4 IS THE SAVE TAPE WITH ALL OF COMMON STORAGE WRITTEN ON IT.
03300 C
03400 C IT1 IS THE TAPE WHICH CONTAINS THE ORIGINAL WEIGHTED RESPONSES.
03500 C
03600 LOPE=0
03700 IT4=4
03800 C
03900 4515 FORMAT('1BMD07S - GUTTMAN SCALE NUMBER 2, PART 2 - REVISED ',
04000 1'SEPTEMBER 23, 1968'/
04100 23X,40HHEALTH SCIENCES COMPUTING FACILITY, UCLA)
04200 C
04300 REWIND IT4
04400 READ(IT4) J
04500 READ(IT4) (REF(I),I=1,25)
04600 NPOINT=(J+127)/128
04700 IF (NPOINT.LE.1) GO TO 9991
04800 DO 9001 I=1,NPOINT-1
04900 NI=(I-1)*128+1
05000 NII=I*128
05100 9001 READ(IT4)(A(K),K=NI,NII)
05200 9991 NI=(NPOINT-1)*128+1
05300 READ(IT4)(A(K),K=NI,J)
05400 DO 9992 I=1,4
05500 NI=(I-1)*128+1
05600 NII=I*128
05700 9992 READ(IT4)(LVAR(K),K=NI,NII)
05800 READ(IT4)(LVAR(K),K=513,558),INDEX3
05900 READ(IT4) JOBNMB,(DUMMY2(I),I=1,27),FRSTMO,SECMON,(KDUMY6(J)
06000 1,J=1,2)
06100 REWIND IT4
06200 C
06300 C
06400 KDUMY6(1)=DUM
06500 C DUMMY3(17) HAS THE SAME LOCATION AS KDUMY6(1). THUS WE CAN USE IT
06600 C FOR THE FIXED POINT SUBTRACTION PRIOR TO FORTRAN STATEMENT NUMBER
06700 C 2029.
06800 C
06900 FKEEP=0.0
07000 IELIM=2
07100 KTIMES=0
07200 LAST=1
07300 KONE=1
07400 ASSIGN 445 TO INCKTM
07500 ASSIGN 3876 TO KOFPR
07600 ASSIGN 451 TO JTIMES
07700 ASSIGN 2006 TO LTIMES
07800 FLPTN2=LASTNO
07900 FLPTN3=NCASE
08000 KTEST=NVAR*5
08100 LL=1
08200 KSTEP(1)=3
08300 WRITE (6,4515)
08400 2019 NCARDS=(MCOMB+5)/6
08500 MCARDS=NCARDS
08600 IF(NCARDS)2018,2018,2021
08700 2018 KTIMES=1
08800 GO TO 2011
08900 C
09000 2020 IF(NCARDS)2001,2001,2021
09100 2021 NCARDS=NCARDS-1
09200 READ (5,1000)KCHECK,(KSTEP(I),NN1(I),NN2(I),NN3(I),I=1,6)
09300 IF(KCHECK.NE.KDUMY6(1)) GO TO 940
09400 2029 ILL=1
09500 2022 LL=ILL
09600 20222 IF(KSTEP(LL))2030,2030,2122
09700 2122 IF((KSTEP(LL)-KONE)-KTIMES)920,2023,2001
09800 2023 DO 2025 I=1,NVAR
09900 IF(NN1(LL)-LVAR(I))2025,2024,2025
10000 2025 CONTINUE
10100 GO TO 19
10200 2024 M=LVAR(I)
10300 IF(MCOMB)2127,2127,2128
10400 2127 LL=6
10500 GO TO 2124
10600 2128 MCOMB=MCOMB-1
10700 N1(M)=NN2(LL)
10800 N2(M) =NN3(LL)
10900 CALL CHECK(M)
11000 NCOMB(M)=NCOMB(M)+1
11100 CALL COMBIN(I,N1,N2(1))
11200 IF(KOMPER)998,2124,998
11300 2124 ITIMES=6
11400 IF(LL-6)2125,2120,2120
11500 2125 IF(KSTEP(LL+1)-1)2126,2026,2123
11600 2120 IF(1-KSTEP(LL))2123,2126,2126
11700 2123 CALL DECTER
11800 2126 GO TO INCKTM,(445,450)
11900 C
12000 2026 IF(M-NN1(LL+1))2030,2126,2030
12100 C
12200 19 N=NVAR+1
12300 DO 20 I=N,25
12400 IF(NN1(LL)-LVAR(I))20,25,20
12500 20 CONTINUE
12600 GO TO 930
12700 25 N=MCARDS-NCARDS
12800 WRITE (6,4019)NN1(LL),N
12900 MCOMB=MCOMB-1
13000 GO TO 2124
13100 C
13200 2027 IF(KTIMES-1)2028,2028,2030
13300 2028 KTIMES=0
13400 2030 LL=LL+1
13500 IF(LL.LE.6)GO TO 20222
13600 GO TO 2020
13700 C
13800 2001 IF(MCOMB)2011,2011,2012
13900 2011 ASSIGN 2031 TO KONTIN
14000 LL=1
14100 KSTEP(1)=KTEST
14200 IF(IEND.EQ.IYES) GO TO 2014
14300 2013 LAST=2
14400 GO TO 2014
14500 C
14600 2012 ASSIGN 202 TO KONTIN
14700 2014 ILL=LL
14800 GO TO LTIMES,(2006,2010,4655,4915,5207)
14900 C
15000 C COMBINE THOSE RESPONSES WHICH HAVE LESS THAN NPER PERCENT
15100 C OF THE TOTAL NUMBER OF RESPONDENTS, IF DESIRED.
15200 C
15300 2006 CONTINUE
15400 2135 ITIMES=5
15500 KTIMES=1
15600 ASSIGN 2010 TO LTIMES
15700 IF(NFIRST.NE.IYES) GO TO 2003
15800 2002 CALL FRSTCM(NPER)
15900 IF(L-INDKOL)2003,2003,2005
16000 2003 ITIMES=1
16100 IF(KOMPER)998,2009,998
16200 2009 IF((KSTEP(LL)-1)-KTIMES)920,2022,2010
16300 C
16400 2005 ASSIGN 449 TO JTIMES
16500 GO TO 450
16600 C
16700 2010 CONTINUE
16800 7005 ITIMES=1
16900 C
17000 C RANK RESPONDENTS USING CORNELL TECHNIQUE
17100 C
17200 201 INDEX2=0
17300 GO TO KONTIN,(202,2022,2031)
17400 202 ASSIGN 2022 TO KONTIN
17500 2031 K=INDRNK+1
17600 DO 204 JRNK=K,INDKOL
17700 RANKSM(JRNK)=0.0
17800 INDEX1=INDEX2+1
17900 INDEX2=INDEX2+NVAR
18000 DO 203 I=INDEX1,INDEX2
18100 RANKSM(JRNK)=RANKSM(JRNK)+A(I)
18200 203 CONTINUE
18300 204 CONTINUE
18400 C
18500 C ORDER ACCORDING TO HIGHEST RANK SCORE
18600 C
18700 240 CALL ORDER
18800 C
18900 C ORDER QUESTIONS IN INCREASING FREQUENCY OF SCORE 7
19000 C
19100 CALL ORQUES(0)
19200 C
19300 C REORDER THOSE INDIVIDUALS WITH THE SAME TOTAL SCORE
19400 C
19500 275 CALL REORDR
19600 7009 IF (KOMPER)998,3305,998
19700 C
19800 3305 GO TO (334,465,555),LAST
19900 C
20000 C DETERMINE CUTTING POINTS AND ERRORS FOR EACH QUESTION
20100 C
20200 334 KK=1
20300 336 CALL DECTER
20400 380 IF(IFINAL.NE.IYES) GO TO 384
20500 325 MINPR=1
20600 MAXPR=0
20700 INDEX2=0
20800 NDIFF=NCASE
20900 5010 IF(NDIFF-50)5020,5020,5030
21000 5020 MAXPR=NCASE
21100 NDIFF=0
21200 GO TO 5040
21300 C
21400 5030 MAXPR=MAXPR+50
21500 NDIFF=NDIFF-50
21600 5040 NUMPGE=NUMPGE+1
21700 WRITE (6,4503)JOBNMB,FRSTMO,SECMON,IDAY,IYEAR,NUMPGE
21800 326 WRITE (6,4002)
21900 WRITE (6,4008)
22000 2662 WRITE (6,4504)NCASE,NVAR
22100 WRITE (6,4506)KTIMES
22200 WRITE (6,4505)
22300 DO 2663 I=1,NVAR
22400 M=LVAR(I)
22500 HOLD(I)=REF(M)
22600 2663 CONTINUE
22700 WRITE (6,4508)(LVAR(J),HOLD(J),J=1,NVAR)
22800 327 WRITE (6,4500)
22900 DO 267 I=MINPR,MAXPR
23000 INDEX1=INDEX2+1
23100 INDEX2=INDEX2+NVAR
23200 JRNK=I+INDRNK
23300 INDIDV=I+LASTNO
23400 2665 WRITE (6,4003)I,INDIVD(INDIDV),RANKSM(JRNK),(A(J),J=INDEX1,INDEX2)
23500 267 CONTINUE
23600 GO TO (268,5050),IELIM
23700 268 WRITE (6,4030)
23800 5050 MINPR=MINPR+50
23900 IF(NDIFF) 384, 384,5010
24000 C
24100 C PRINT OUT ERRORS, IF DESIRED
24200 C
24300 384 FLPTN1=MAXERR
24400 COFREP=1.0-(FLPTN1/FLPTN2)
24500 KSUM=0
24600 DO 3874 M=1,NVAR
24700 I=LVAR(M)
24800 KEST=0
24900 DO 3873 J=1,7
25000 IF(KEST-MFREQ(I,J))3871,3873,3873
25100 3871 KEST=MFREQ(I,J)
25200 3873 CONTINUE
25300 KSUM=KSUM+KEST
25400 3874 CONTINUE
25500 SUM=KSUM
25600 FMINMR=SUM/FLPTN2
25700 IF(IERROR.NE.IYES) GO TO 390
25800 385 NUMPGE=NUMPGE+1
25900 386 WRITE (6,4503)JOBNMB,FRSTMO,SECMON,IDAY,IYEAR,NUMPGE
26000 WRITE (6,4004)
26100 WRITE (6,4504)NCASE,NVAR
26200 WRITE (6,4506)KTIMES
26300 WRITE (6,4500)
26400 WRITE (6,4505)
26500 DO 3861 I=1,NVAR
26600 M=LVAR(I)
26700 HOLD(I)=REF(M)
26800 3861 CONTINUE
26900 WRITE (6,4509)(LVAR(J),HOLD(J),J=1,NVAR)
27000 ASSIGN 388 TO MTIMES
27100 3862 WRITE (6,4500)
27200 DO 387 I=1,7
27300 DO 3865 J=1,NVAR
27400 M=LVAR(J)
27500 KOLHLD(J)=KONTER(M,I)
27600 3865 CONTINUE
27700 WRITE (6,4005)I,(KOLHLD(J),J=1,NVAR)
27800 387 CONTINUE
27900 K=0
28000 DO 3877 I=1,NVAR
28100 M=LVAR(I)
28200 KOLHLD(I)=0
28300 DO 3875 J=1,7
28400 KOLHLD(I)=KOLHLD(I)+KONTER(M,J)
28500 3875 CONTINUE
28600 K=K+KOLHLD(I)
28700 3877 CONTINUE
28800 J=FLPTN2
28900 WRITE (6,4024)(KOLHLD(I),I=1,NVAR)
29000 WRITE (6,4025)K,J
29100 GO TO KOFPR,(3876,3878)
29200 3878 WRITE (6,4501)
29300 WRITE (6,4018)COFREP
29400 WRITE (6,4021)FMINMR
29500 IF(COFREP-FKEEP)3872,3870,3870
29600 3872 WRITE (6,4013)
29700 3870 FKEEP=COFREP
29800 3876 GO TO (3880,3879),IELIM
29900 3880 WRITE (6,4030)
30000 3879 GO TO MTIMES,(388,475)
30100 388 WRITE (6,4502)
30200 WRITE (6,4006)
30300 WRITE (6,4500)
30400 I=0
30500 DO 389 JJ=1,NVAR
30600 K=26
30700 DO 3895 L=1,NVAR
30800 M=LVAR(L)
30900 IF(M-K)3891,3895,3895
31000 3891 IF(I-M)3893,3895,3895
31100 3893 K=M
31200 3895 CONTINUE
31300 I=K
31400 WRITE (6,4007)I,REF(I),(MFREQ(I,J),J=1,8)
31500 389 CONTINUE
31600 C
31700 C DETERMINE COMBINATIONS OF RESPONSES IN EACH QUESTION
31800 C
31900 390 GO TO (395,520,462,495,612,580),ITIMES
32000 395 KK=2
32100 CALL FNDCMB(FLPTN2)
32200 IF(KOMPER)998,425,998
32300 425 IF(L1)445,462,445
32400 445 KTIMES=KTIMES+1
32500 450 NUMPGE=NUMPGE+1
32600 WRITE (6,4503)JOBNMB,FRSTMO,SECMON,IDAY,IYEAR,NUMPGE
32700 WRITE (6,4009)
32800 GO TO JTIMES,(449 ,451)
32900 449 WRITE (6,4014)NPER
33000 ASSIGN 451 TO JTIMES
33100 451 WRITE (6,4504)NCASE,NVAR
33200 WRITE (6,4506)KTIMES
33300 452 WRITE (6,4510)
33400 J=0
33500 DO 457 JJ=1,NVAR
33600 K=26
33700 DO 4526 L=1,NVAR
33800 M=LVAR(L)
33900 IF(M-K)4522,4526,4526
34000 4522 IF(J-M)4524,4526,4526
34100 4524 K=M
34200 4526 CONTINUE
34300 J=K
34400 IF(NCOMB(J))456,457,456
34500 456 WRITE(6,4010) J,REF(J),NCOMB(J),N1(J),N2(J),KVAR(J),MVAR(J)
34600 4569 N1(J)=0
34700 N2(J)=0
34800 457 CONTINUE
34900 GO TO(4573,4577),IELIM
35000 4573 WRITE (6,4030)
35100 4577 CONTINUE
35200 458 GO TO (459,674,675,551,2002,2027),ITIMES
35300 459 IF(KTIMES-KTEST)201,990,990
35400 C
35500 C DETERMINE ERROR FOR FINAL COMPUTATIONS
35600 C
35700 462 IF(LEAVE.NE.IYES) GO TO 465
35800 463 LAST=2
35900 465 KK=3
36000 KTIMES=KTIMES+1
36100 IF((-MCOMB))4653,4654,4654
36200 4653 KONE=0
36300 ASSIGN 4655 TO LTIMES
36400 ASSIGN 450 TO INCKTM
36500 GO TO 2022
36600 C
36700 4654 CALL DECTER
36800 4655 NUMPGE=NUMPGE+1
36900 WRITE (6,4503)JOBNMB,FRSTMO,SECMON,IDAY,IYEAR,NUMPGE
37000 WRITE (6,4012)
37100 WRITE (6,4504)NCASE,NVAR
37200 WRITE (6,4506)KTIMES
37300 WRITE (6,4505)
37400 DO 466 I=1,NVAR
37500 M=LVAR(I)
37600 HOLD(I)=REF(M)
37700 466 CONTINUE
37800 WRITE (6,4509)(LVAR(J),HOLD(J),J=1,NVAR)
37900 ASSIGN 475 TO MTIMES
38000 GO TO 3862
38100 C
38200 C CHECK TO SEE IF CHANGING RANK OF INDIVIDUALS REDUCES ERROR
38300 C
38400 475 MAXERR=0
38500 DO 480 I=1,NVAR
38600 MAXERR=MAXERR+KOLHLD(I)
38700 480 CONTINUE
38800 485 CALL ORQUES(1)
38900 CALL RKCHNG(MAXERR)
39000 KK=3
39100 IF(KOMPER)998,490,998
39200 490 KTIMES=KTIMES+1
39300 IF((-MCOMB))491,492,492
39400 491 ASSIGN 4915 TO LTIMES
39500 GO TO 2022
39600 C
39700 4915 MAXERR =0
39800 DO 494 M=1,NVAR
39900 I=LVAR(M)
40000 DO 493 J=1,7
40100 MAXERR=MAXERR+KONTER(I,J)
40200 493 CONTINUE
40300 494 CONTINUE
40400 492 ITIMES=4
40500 ASSIGN 3878 TO KOFPR
40600 GO TO 380
40700 C
40800 C CHECK TO SEE IF FURTHER POSSIBLE COMBINATIONS MAY REDUCE THE ERROR
40900 C TO GIVE A GOOD COEFFICIENT OF REPRODUCIBILITY.
41000 C
41100 495 GO TO (496, 580),LAST
41200 496 FLPTN1=MAXERR
41300 REPERR=FLPTN1/FLPTN2
41400 IF(0.1-REPERR)497,500,500
41500 497 KING=1
41600 GO TO 520
41700 C
41800 500 IF(NDREDK)499,499,498
41900 499 KING=3
42000 GO TO 520
42100 C
42200 498 IF(NDREDK-20)512,512,499
42300 512 IF(LASTRD-1)499,510,499
42400 510 KING=2
42500 520 IF((-MCOMB))5205,525,525
42600 5205 KONE=1
42700 ASSIGN 445 TO INCKTM
42800 ASSIGN 5207 TO LTIMES
42900 GO TO 2022
43000 C
43100 5207 MAXERR =0
43200 DO 5209 I=1,NVAR
43300 DO 5208 J=1,7
43400 MAXERR=MAXERR+KONTER(I,J)
43500 5208 CONTINUE
43600 5209 CONTINUE
43700 5206 IF((-MCOMB))521,525,525
43800 521 CALL ENDCMB(NDREDK,KING,MAXERR,LASTRD)
43900 IF(KOMPER-50)522,5595,522
44000 522 IF(KOMPER-25)998,550,998
44100 550 KOMPER=0
44200 ITIMES=4
44300 GO TO 445
44400 C
44500 525 IF(IEND.EQ.IYES) GO TO 521
44600 GO TO 614
44700 C
44800 551 LAST=3
44900 ITIMES=2
45000 GO TO 201
45100 C
45200 555 KK=3
45300 CALL DECTER
45400 556 MAXERR=0
45500 DO 559 M=1,NVAR
45600 I=LVAR(M)
45700 DO 558 J=1,7
45800 MAXERR=MAXERR+KONTER(I,J)
45900 558 CONTINUE
46000 559 CONTINUE
46100 CALL ORQUES(I)
46200 KK=3
46300 CALL RKCHNG(MAXERR)
46400 KTIMES=KTIMES+1
46500 ICHNGE=ICHNGE+1
46600 IF(ICHNGE-20)5591,5591,5592
46700 5591 IF(KOMPER)998,380,998
46800 C
46900 5592 ICHNGE=20
47000 GO TO 5591
47100 C
47200 5595 KOMPER=0
47300 IF(ICHNGE-5)5599,5599,5597
47400 5599 ICHNGE=10
47500 5596 ITIMES=6
47600 GO TO 555
47700 C
47800 5597 ICHNGE=20
47900 GO TO 5596
48000 C
48100 560 KOMPER=0
48200 K=INDTEM+25
48300 DO 565 I=1,NVAR
48400 J=K+I
48500 IF(KOLSKR(J))565,565,567
48600 565 CONTINUE
48700 GO TO 575
48800 C
48900 567 FLPTN1=MAXERR
49000 COFREP=1.0-(FLPTN1/FLPTN2)
49100 NUMPGE=NUMPGE+1
49200 KTIMES=KTIMES+1
49300 WRITE (6,4503)JOBNMB,FRSTMO,SECMON,IDAY,IYEAR,NUMPGE
49400 WRITE (6,4016)
49500 WRITE (6,4504)NCASE,NVAR
49600 WRITE (6,4506)KTIMES
49700 WRITE (6,4018)COFREP
49800 WRITE (6,4021)FMINMR
49900 WRITE (6,4511)
50000 DO 570 I=1,NVAR
50100 M=LVAR(I)
50200 INDEX1=K+I
50300 IF(KOLSKR(INDEX1))570,570,563
50400 563 N=KOLSKR(INDEX1)
50500 N2(M)=KOLSKR(INDEX1-25)/8
50600 N1(M)=KOLSKR(INDEX1-25)-(N2(M)*8)
50700 WRITE (6,4017)M,REF(M),N1(M),N2(M),N,RANKSM(INDEX1+25)
50800 570 CONTINUE
50900 575 GO TO(600,576,600,700),LAST
51000 576 LAST=4
51100 CALL ORQUES(LAST)
51200 KK=3
51300 CALL RKCHNG(MAXERR)
51400 ITIMES=6
51500 KTIMES=KTIMES+1
51600 GO TO 380
51700 C
51800 580 KK=4
51900 CALL FNDCMB(FLPTN2)
52000 581 IF(KOMPER)998,560,998
52100 C
52200 C ELIMINATE SOME QUESTIONS,IF DESIRED.
52300 C
52400 600 IF(LESTN)700,610,610
52500 610 LESTN=NVAR-LESTN
52600 ASSIGN 685 TO KIND
52700 IF(LESTN)910,614,615
52800 612 IF(LESTN)910,614,615
52900 614 LAST=2
53000 GO TO 580
53100 C
53200 615 DO 620 M=1,NVAR
53300 I=LVAR(M)
53400 IF(MVAR(I)-2)620,620,625
53500 620 CONTINUE
53600 GO TO 650
53700 C
53800 625 KK=4
53900 CALL FNDCMB(FLPTN2)
54000 6255 IF(KOMPER)998,626,998
54100 626 KTEST=0
54200 K=0
54300 INDEX2=INDTEM+25
54400 DO 635 I=1,NVAR
54500 M=LVAR(I)
54600 INDEX1=INDEX2+I
54700 IF(KOLSKR(INDEX1))627,628,630
54800 627 KOLSKR(INDEX1)=0
54900 628 IF(MVAR(M)-2)629,629,630
55000 629 IF(MFREQ(M,1))630,630,6295
55100 6295 KOLSKR(INDEX1)=KONTER(M,7)+KONTER(M,1)
55200 630 IF(KTEST-KOLSKR(INDEX1))631,635,635
55300 631 KTEST=KOLSKR(INDEX1)
55400 K=I
55500 635 CONTINUE
55600 IF((-K))6355,680,680
55700 6355 L=LVAR(K)
55800 IF(MVAR(L)-2)661,661,636
55900 636 INDEX1=INDTEM+K
56000 N2(L)=KOLSKR(INDEX1)/8
56100 N1(L)=KOLSKR(INDEX1)-(N2(L)*8)
56200 NCOMB(L)=NCOMB(L)+1
56300 CALL COMBIN(K,N1,N2(1))
56400 IF(KOMPER)998,637,998
56500 637 ITIMES=3
56600 GO TO 445
56700 C
56800 650 KK=3
56900 CALL DECTER
57000 651 KTEST=0
57100 L=0
57200 DO 660 I=1,NVAR
57300 KOLHLD(I)=0
57400 M=LVAR(I)
57500 KOLHLD(I)=KOLHLD(I)+KONTER(M,7)+KONTER(M,1)
57600 IF(KTEST-KOLHLD(I))656,660,660
57700 656 KTEST=KOLHLD(I)
57800 K=I
57900 L=M
58000 660 CONTINUE
58100 IF((-L))661,690,690
58200 661 MFREQ(L,7)=0
58300 MFREQ(L,1)=0
58400 MFREQ(L,8)=0
58500 NCOMB(L)=NCOMB(L)+1
58600 N1(L)=1
58700 N2(L)=7
58800 MVAR(L)=1
58900 REF(L)=QCTR
59000 IELIM=1
59100 ITIMES=2
59200 665 INDEX1=LASTNO-NVAR+K
59300 DO 670 I=K,INDEX1,NVAR
59400 A(I)=0.0
59500 670 CONTINUE
59600 I=L
59700 GO TO 445
59800 C
59900 674 MVAR(I)=2
60000 FLPTN2=FLPTN2-FLPTN3
60100 LESTN=LESTN-1
60200 675 ITIMES=5
60300 LAST=3
60400 16755 CONTINUE
60500 GO TO 201
60600 C
60700 680 GO TO KIND,(685,690)
60800 685 ASSIGN 690 TO KIND
60900 NDREDK=0
61000 GO TO 615
61100 C
61200 690 WRITE (6,4031)
61300 GO TO 614
61400 C
61500 700 WRITE(IT4) MAXERR,COFREP,FMINMR
61600 WRITE(IT4) (REF(I),I=1,25)
61700 DO 9003 K=1,4
61800 NK=(K-1)*128+1
61900 NKK=K*128
62000 9003 WRITE(IT4)(LVAR(KKK),KKK=NK,NKK)
62100 WRITE(IT4)(LVAR(KKK),KKK=513,558),INDEX3
62200 WRITE(IT4) JOBNMB,(DUMMY2(I),I=1,27),FRSTMO,SECMON,(KDUMY6(J)
62300 1,J=1,2)
62400 MAXPR=0
62500 DO 725 I=1,NCASE
62600 MINPR=MAXPR+1
62700 MAXPR=MAXPR+NVAR
62800 NPOINT=(MAXPR-MINPR+128)/128
62900 NWED=MINPR-1
63000 IF (NPOINT.LE.1) GO TO 7726
63100 DO 7727 J=1,NPOINT-1
63200 NJ=(J-1)*128+NWED+1
63300 NJJ=J*128+NWED
63400 7727 WRITE(IT4)(A(JJJ),JJJ=NJ,NJJ)
63500 7726 NJ=(NPOINT-1)*128+NWED+1
63600 WRITE(IT4)(A(JJJ),JJJ=NJ,MAXPR)
63700 725 CONTINUE
63800 DO 750 I=1,4
63900 MINPR=MAXPR+1
64000 MAXPR=MAXPR+NCASE
64100 NPOINT=(MAXPR-MINPR+128)/128
64200 NWED=MINPR-1
64300 IF (NPOINT.LE.1) GO TO 7732
64400 DO 7731 J=1,NPOINT-1
64500 NJ=(J-1)*128+NWED+1
64600 NJJ=J*128+NWED
64700 7731 WRITE(IT4)(A(JJJ),JJJ=NJ, NJJ)
64800 7732 NJ=(NPOINT-1)*128+NWED+1
64900 WRITE(IT4)(A(JJJ),JJJ=NJ,MAXPR)
65000 750 CONTINUE
65100 END FILE IT4
65200 REWIND IT4
65300 998 STOP
65400 C
65500 910 WRITE (6,4910)
65600 GO TO 998
65700 C
65800 920 KTIMES=KTIMES+1
65900 WRITE (6,4029)KSTEP(LL),KTIMES
66000 GO TO 998
66100 C
66200 930 NCARDS=MCARDS-NCARDS
66300 WRITE (6,4028)NN1(LL),NCARDS
66400 GO TO 998
66500 C
66600 940 WRITE (6,4940)
66700 GO TO 998
66800 C
66900 990 NUMPGE=NUMPGE+1
67000 WRITE (6,4011)NUMPGE
67100 ITIMES=3
67200 GO TO 201
67300 C
67400 C
67500 8000 FORMAT(20A4)
67600 1000 FORMAT(A6,6(I4,3I2))
67700 C
67800 4002 FORMAT(1H ,41X,28HRESPONDENTS AND SCALE SCORES/37X,37HRANKED ACCOR
67900 1DING TO CORNELL TECHNIQUE)
68000 4003 FORMAT(1H ,I4,I5,2F5.0,24F4.0)
68100 4004 FORMAT(1H ,40X,30HERRORS AND NUMBER OF RESPONSES/42X,27HTO THE VAR
68200 1IOUS SCALE SCORES)
68300 4005 FORMAT(1H ,5X,I3,6X,25I4)
68400 4006 FORMAT(1H0,3X,8HVARIABLE,19X,55HFREQUENCY OF OCCURRENCE OF SCORES
68500 11 TO 7 AND SCORE ZERO/7X,2HOR,44X,5HSCORE/4X,8HQUESTION,13X,1H1,9X
68600 2,1H2,9X,1H3,9X,1H4,9X,1H5,9X,1H6,9X,1H7,4X,11HNO RESPONSE)
68700 4007 FORMAT(1H ,5X,I3,A1,6X,8I10)
68800 4008 FORMAT(1H ,26X,57HWITH QUESTIONS ORDERED IN INCREASING FREQUENCY O
68900 1F SCORE 7)
69000 4009 FORMAT(1H ,45X,25HCOMBINATIONS IN QUESTIONS)
69100 4010 FORMAT(1H0,I10,A1,I16,I17,5H AND,I3,I14,I8)
69200 4011 FORMAT(1H1,105X,4HPAGE,I4//117HAFTER COMBINING AS MANY OF THE RESP
69300 1PONSES IN EACH QUESTION AS POSSIBLE, SOME QUESTIONS STILL HAVE RAT
69400 2IOS OF ERRORS TO/39HNON-ERRORS WHICH ARE GREATER THAN 0.50./6X,112
69500 3HIT SEEMS UNLIKELY THAT THE RESULTING SCALE WHICH THE PROGRAM WILL
69600 4 NOW COMPUTE IS GOOD. PLEASE CHECK THE PREVIOUS/114HPAGES OF OUTPU
69700 5T AND EITHER ELIMINATE SOME QUESTIONS AND/OR RESPONDENTS OR DETERM
69800 6INE THOSE RESPONSES WHICH YOU FEEL/74HSHOULD BE COMBINED AND USE T
69900 7HE FORCED COMBINATION FEATURE OF THIS PROGRAM.)
70000 4012 FORMAT(1H ,42X,27HERRORS FOR EACH SCALE SCORE/50X,11HFINAL STEPS)
70100 4013 FORMAT(1H0,16X,84HTHE COEFFICIENT OF REPRODUCIBILITY DECREASED IN
70200 1THIS LAST STEP. IT IS SUGGESTED THAT//15X,86HYOU MAKE A DIFFERENT
70300 2COMBINATION USING THE FORCED COMBINATION FEATURE OF THIS PROGRAM.)
70400 4014 FORMAT(32X29HTHE FIRST SCORE HAS LESS THANI3,23H PERCENT OF RESPON
70500 1DENTS)
70600 4016 FORMAT(1H ,34X,41HPOSSIBLE COMBINATIONS WHICH WILL INCREASE/25X,61
70700 1HTHE COEFFICIENT OF REPRODUCIBILITY AND THE AMOUNT OF INCREASE)
70800 4017 FORMAT(1H016XI3,A1,16XI3,5H AND,I3,19X,I4,20X,F5.4)
70900 4018 FORMAT(1H ,36X,33HCOEFFICIENT OF REPRODUCIBILITY = ,F7.5)
71000 4019 FORMAT(1H0,12X,8HQUESTIONI3,61H NO LONGER INCLUDED IN STUDY. FORCE
71100 1D COMBINATION READ ON CARDI3,17H WILL BE IGNORED.)
71200 4021 FORMAT(1H0,34X,35HMINIMAL MARGINAL REPRODUCIBILITY = ,F7.5)
71300 4024 FORMAT(1H0,14HQUESTION ERROR,25I4)
71400 4025 FORMAT(1H0,36X,11HTOTAL ERROR I6,5X,15HTOTAL RESPONSES I6)
71500 4028 FORMAT(1H0,24X,37HTHERE IS NO QUESTION CORRESPONDING TO,I4,26H WHI
71600 1CH WAS READ IN ON CARD,I4)
71700 4029 FORMAT(1H0,18X,31HTHE COMBINATION DESIRED AT STEP,I4,20H WAS READ
71800 1IN AT STEP,I4,21H TOO LATE TO BE DONE.)
71900 4030 FORMAT(1H0,45H* INDICATES THIS QUESTION HAS BEEN ELIMINATED)
72000 4031 FORMAT(1H0,6X,103HNO MORE COMBINATIONS OR ELIMINATIONS WILL REDUCE
72100 1 THE ERROR. HENCE, NO MORE QUESTIONS WILL BE ELIMINATED)
72200 4500 FORMAT(1H )
72300 4501 FORMAT(1H0)
72400 4502 FORMAT(1H0//)
72500 4503 FORMAT(1H1,15H PROBLEM NUMBER,2X,A6,57X,2A6,I3,1H,,I5,3X,4HPAGE,
72600 1I4)
72700 4504 FORMAT(1H ,18X,23HNUMBER OF RESPONDENTS =,I5,22X,21HNUMBER OF VARI
72800 1ABLES =,I3)
72900 4505 FORMAT(1H ,44X,22HVARIABLES OR QUESTIONS)
73000 4506 FORMAT(1H ,54X,4HSTEP,I4)
73100 4508 FORMAT(1H ,15HRANK RESP SCOR ,25(I3,A1))
73200 4509 FORMAT(1H ,3X,8HSCORE OF,4X,25(I3,A1))
73300 4510 FORMAT(1H0,5X,8HQUESTION,6X,15HTOTAL NUMBER OF,6X,15HSCORES COMBIN
73400 1ED,6X,15HNUMBER OF PARTS/18X,19HCOMBINATIONS SO FAR,7X,9HTHIS TIME
73500 2,9X,15HORIGINAL NOW)
73600 4511 FORMAT(1H0,64X,8HDECREASE,15X,11HAPPROXIMATE/15X,8HQUESTION,15X,11
73700 1HCOMBINATION,15X, 10HIN NUMBER,14X,11HINCREASE IN/64X,10HOF ERRO
73800 2RS,12X,15HREPRODUCIBILITY)
73900 4910 FORMAT(1H0,21X,70HTHE MINIMUM QUESTIONS DESIRED IS GREATER THAN TH
74000 1E NUMBER OF QUESTIONS./26X,62HNO QUESTIONS WILL BE ELIMINATED BUT
74100 2SAVE TAPE WILL BE WRITTEN.)
74200 4940 FORMAT(1H1,32X,52HCONTROL CARDS OUT OF ORDER. PROGRAM CANNOT CONTI
74300 1NUE.)
74400 C
74500 END
74600 CCHECK SUBROUTINE CHECK FOR BMD07S DECEMBER 13, 1963
74700 SUBROUTINE CHECK(M)
74800 C
74900 DIMENSION A(8000),RANKSM(8000),INDIVD(8000),KOLSKR(8000),HOLDA
75000 1(8000),KVAR(25),INV(25),LVAR(25),KOLHLD(25),N2 (25),HOLD(26),MFRE
75100 2Q(25,8),ERROR(25,7),MVAR(25),N1(25),NCOMB(25),DUMMY1(200),DUMMY2(2
75200 37),KONTER(25,7),DUMMY3(8)
75300 COMMON JOBNMB
75400 COMMON DUMMY2,FRSTMO,SECMON,A,LVAR,MFREQ,ERROR,NCASE,HOLD,NCOMB,KV
75500 1AR,INDRNK,INDKOL,ISCALE,IRANK,IQUES,IERROR,KANEND,KOMPER,KORDER,IN
75600 2DTEM,IDAY,IYEAR,NUMPGE,JOYCEA,MAXLOC,N1,N2,DUMMY3,KK,ICHNGE
75700 C
75800 DOUBLE PRECISION DUMMY2,FRSTMO,SECMON,JOBNMB,KDUMY6,REF,KCHECK
75900 EQUIVALENCE(A,RANKSM,INDIVD,KOLSKR,HOLDA),(INV,LVAR),(HOLD,KOLHLD)
76000 1,(DUMMY1,MFREQ),(DUMMY2,MVAR),(DUMMY2(26),LASTNO),(DUMMY2(27),NVAR
76100 2),(ERROR,KONTER)
76200 C
76300 25000 THETA=0.0
76400 MTIMES=MVAR(M)
76500 C
76600 N=N1(M)
76700 NN=N2(M)
76800 IF(N)920,920,1
76900 1 IF(NN)920,920,2
77000 2 IF(N-7)3,3,920
77100 3 IF(NN-7)4,4,920
77200 4 IF(MTIMES)900,900,5
77300 5 IF(MTIMES-7)10,10,900
77400 10 GO TO (900,920,30,40,50,60,70),MTIMES
77500 C
77600 30 GO TO (31,920,920,34,920,920,37),N
77700 C
77800 31 GO TO (920,920,920,800,920,920,920),NN
77900 C
78000 34 GO TO (800,920,920,920,920,920,800),NN
78100 C
78200 37 GO TO (920,920,920,800,920,920,920),NN
78300 C
78400 40 GO TO (41,920,43,920,45,920,47),N
78500 C
78600 41 GO TO (920,920,800,920,920,920,920),NN
78700 C
78800 43 GO TO (800,920,920,920,800,920,920),NN
78900 C
79000 45 GO TO (920,920,800,920,920,920,800),NN
79100 C
79200 47 GO TO (920,920,920,920,800,920,920),NN
79300 C
79400 50 GO TO (51,52,920,54,920,56,57),N
79500 C
79600 51 GO TO (920,800,920,920,920,920,920),NN
79700 C
79800 52 GO TO (800,920,920,800,920,920,920),NN
79900 C
80000 54 GO TO (920,800,920,920,920,800,920),NN
80100 C
80200 56 GO TO (920,920,920,800,920,920,800),NN
80300 C
80400 57 GO TO (920,920,920,920,920,800,920),NN
80500 C
80600 60 GO TO (51,62,63,920,65,66,57),N
80700 C
80800 62 GO TO (800,920,800,920,920,920,920),NN
80900 C
81000 63 GO TO (920,800,920,920,800,920,920),NN
81100 C
81200 65 GO TO (920,920,800,920,920,800,920),NN
81300 C
81400 66 GO TO (920,920,920,920,800,920,800),NN
81500 C
81600 70 GO TO (51,62,73,74,75,66,57),N
81700 C
81800 73 GO TO (920,800,920,800,920,920,920),NN
81900 C
82000 74 GO TO (920,920,800,920,800,920,920),NN
82100 C
82200 75 GO TO (920,920,920,800,920,800,920),NN
82300 C
82400 800 RETURN
82500 C
82600 900 WRITE (6,4000)M,MTIMES
82700 KOMPER=1
82800 GO TO 800
82900 C
83000 920 WRITE (6,4020)M,MTIMES,N1(M),N2(M)
83100 KOMPER=1
83200 GO TO 800
83300 C
83400 4000 FORMAT(1H0,12X,31HTHE NUMBER OF PARTS TO QUESTION,I3,3H IS,I3,51H
83500 1A VALUE NOT PERMITTED. THIS OCCURRED IN SUB CHECK.)
83600 C
83700 4020 FORMAT(1H0,6X,8HQUESTION,I3,4H HAS,I3,14H PARTS. SCORES,I3,4H AND,
83800 1I3,63H WERE TO BE COMBINED BUT ONE OR BOTH OF THEM IS(ARE) INCORRE
83900 2CT.)
84000 C
84100 END
84200 CCOMBIN SUBROUTINE COMBIN FOR BMD04S, 05S AND 07S JUNE 3, 1963
84300 SUBROUTINE COMBIN(I,N1,N2)
84400 C
84500 DIMENSION A(8000),RANKSM(8000),INDIVD(8000),KOLSKR(8000),HOLDA
84600 1(8000),KVAR(25),INV(25),LVAR(25),KOLHLD(25),N2 (25),HOLD(26),MFRE
84700 2Q(25,8),ERROR(25,7),MVAR(25),N1(25),NCOMB(25)
84800 DIMENSION DUMMY2(27)
84900 COMMON JOBNMB
85000 COMMON DUMMY2,FRSTMO,SECMON,A,LVAR,MFREQ,ERROR,NCASE,HOLD,NCOMB,KV
85100 1AR,INDRNK,INDKOL,ISCALE,IRANK,IQUES,IERROR,KANEND,KOMPER
85200 DOUBLE PRECISION DUMMY2,FRSTMO,SECMON,JOBNMB,KDUMY6,REF,KCHECK
85300 EQUIVALENCE(A,RANKSM,INDIVD,KOLSKR,HOLDA),(INV,LVAR),(HOLD,KOLHLD)
85400 EQUIVALENCE(DUMMY2,MVAR),(DUMMY2(26),LASTNO),(DUMMY2(27),NVAR)
85500 25000 THETA=0.0
85600 M=LVAR(I)
85700 C
85800 INDEX1=I+LASTNO-NVAR
85900 FLPTN1=N1(M)
86000 FLPTN2=N2(M)
86100 DO 25 J=I,INDEX1,NVAR
86200 IF(A(J)-FLPTN1)25,10,25
86300 10 A(J)=FLPTN2
86400 25 CONTINUE
86500 L1=N1(M)
86600 L2=N2(M)
86700 MFREQ(M,L2)=MFREQ(M,L2)+MFREQ(M,L1)
86800 MFREQ(M,L1)=0
86900 IF(MVAR(M)-6)27,60,70
87000 27 IF(MVAR(M)-4)28,40,50
87100 28 IF(MVAR(M)-2)900,900,30
87200 30 IF(MFREQ(M,1))910,31,32
87300 31 MFREQ(M,1)=MFREQ(M,4)
87400 SCORE2=1.0
87500 310 SCORE1=4.0
87600 MFREQ(M,4)=0
87700 LTIMES=1
87800 GO TO 500
87900 32 IF(MFREQ(M,4))910,600,33
88000 33 MFREQ(M,7)=MFREQ(M,4)
88100 SCORE2=7.0
88200 GO TO 310
88300 40 IF(MFREQ(M,1))910,41,43
88400 41 LTIMES=2
88500 SCORE1=3.0
88600 MFREQ(M,1)=MFREQ(M,3)
88700 MFREQ(M,3)=0
88800 410 SCORE2=1.0
88900 GO TO 500
89000 42 SCORE1=5.0
89100 MFREQ(M,4)=MFREQ(M,5)
89200 MFREQ(M,5)=0
89300 425 LTIMES=1
89400 SCORE2=4.0
89500 GO TO 500
89600 43 IF(MFREQ(M,3))910,42,44
89700 44 IF(MFREQ(M,5))910,45,46
89800 45 SCORE1=3.0
89900 MFREQ(M,4)=MFREQ(M,3)
90000 MFREQ(M,3)=0
90100 GO TO 425
90200 46 LTIMES=3
90300 SCORE1=5.0
90400 MFREQ(M,7)=MFREQ(M,5)
90500 MFREQ(M,5)=0
90600 465 SCORE2=7.0
90700 GO TO 500
90800 50 IF(MFREQ(M,1))910,51,54
90900 51 LTIMES=4
91000 515 SCORE1=2.0
91100 MFREQ(M,1)=MFREQ(M,2)
91200 MFREQ(M,2)=0
91300 GO TO 410
91400 52 LTIMES=5
91500 521 SCORE1=4.0
91600 MFREQ(M,3)=MFREQ(M,4)
91700 MFREQ(M,4)=0
91800 525 SCORE2=3.0
91900 GO TO 500
92000 53 LTIMES=1
92100 SCORE1=6.0
92200 MFREQ(M,5)=MFREQ(M,6)
92300 MFREQ(M,6)=0
92400 535 SCORE2=5.0
92500 GO TO 500
92600 54 IF(MFREQ(M,2))910,52,55
92700 55 IF(MFREQ(M,4))910,56,57
92800 56 LTIMES=5
92900 565 SCORE1=2.0
93000 MFREQ(M,3)=MFREQ(M,2)
93100 MFREQ(M,2)=0
93200 GO TO 525
93300 57 IF(MFREQ(M,6))910,58,590
93400 58 LTIMES=6
93500 581 SCORE1=4.0
93600 MFREQ(M,5)=MFREQ(M,4)
93700 MFREQ(M,4)=0
93800 GO TO 535
93900 59 LTIMES=1
94000 GO TO 565
94100 590 LTIMES=7
94200 591 SCORE1=6.0
94300 MFREQ(M,7)=MFREQ(M,6)
94400 MFREQ(M,6)=0
94500 GO TO 465
94600 60 IF(MFREQ(M,1))910,61,63
94700 61 LTIMES=8
94800 GO TO 515
94900 62 LTIMES=2
95000 621 SCORE1=3.0
95100 SCORE2=2.0
95200 MFREQ(M,2)=MFREQ(M,3)
95300 MFREQ(M,3)=0
95400 GO TO 500
95500 63 IF(MFREQ(M,2))910,62,64
95600 64 IF(MFREQ(M,3))910,42,65
95700 65 IF(MFREQ(M,5))910,45,66
95800 66 IF(MFREQ(M,6))910,67,68
95900 67 LTIMES=3
96000 671 SCORE1=5.0
96100 SCORE2=6.0
96200 MFREQ(M,6)=MFREQ(M,5)
96300 MFREQ(M,5)=0
96400 GO TO 500
96500 68 LTIMES=9
96600 GO TO 591
96700 70 IF(MFREQ(M,1))910,71,74
96800 71 LTIMES=10
96900 GO TO 515
97000 72 LTIMES=11
97100 GO TO 621
97200 73 LTIMES=1
97300 GO TO 521
97400 74 IF(MFREQ(M,2))910,72,75
97500 75 IF(MFREQ(M,3))910,73,76
97600 76 IF(MFREQ(M,4))910,600,77
97700 77 IF(MFREQ(M,5))910,78,79
97800 78 LTIMES=1
97900 GO TO 581
98000 79 IF(MFREQ(M,6))910,80,81
98100 80 LTIMES=12
98200 GO TO 671
98300 81 LTIMES=13
98400 GO TO 591
98500 500 DO 510 JJ=I,INDEX1,NVAR
98600 IF(A(JJ)-SCORE1)510,505,510
98700 505 A(JJ)=SCORE2
98800 510 CONTINUE
98900 GO TO (600,42,45,52,53,59,58,62,67,72,73,78,80),LTIMES
99000 600 MVAR(M)=MVAR(M)-1
99100 610 RETURN
99200 900 L=2
99300 WRITE (6,4000)I,N1(M),N2(M),M,L
99400 KOMPER=1
99500 GO TO 610
99600 910 WRITE (6,4010)I,N1(M),N2(M),M
99700 KOMPER=1
99800 GO TO 610
99900 4000 FORMAT(1H ,20X,54HMACHINE ERROR. UPON ENTRY TO SUBROUTINE COMBIN W